The agile revolution has brought about some incredible advancements in the field of software development, completely changing the way applications and platforms are created from inception to release and beyond.
Among the many innovations that have resulted from the agile software development movement, pair programming offers some of the most compelling advantages for the telecom billing industry. With our constant drive to innovate and explore new technologies and techniques, our team at IDI Billing Solutions was naturally interested in pair programming's potential. After incorporating pair programming practices in many day-to-day operations, IDI has found that this approach to software development is as good as advertised, helping the team work faster and more effectively than ever before.
What is pair programming?
Traditional software development practices involve programmers working independently of one another, writing code alone at their own designated workstations before passing that code along to another member of the team for review and quality assurance. This workflow has been the accepted process for creating software for decades, but it's not without its flaws.
"Two programmers work side by side to write code and review software."
A single person may overlook a glaring error in the code, whether it's a simple typo or a fundamental problem with the software's design that could adversely affect its performance once it reaches production.
The well-worn phrase, "Two heads are better than one," readily comes to mind when considering such scenarios, as a second pair of eyes would help spot problems as they emerge in the code. This, in essence, is what pair programming aims to achieve. Two programmers work side by side at a single terminal or workspace to write code, review in-development software and find solutions to systemic problems.
Pair programming's inherent collaborative elements present significant time and cost savings, as development teams can work faster and remediate software errors earlier in the production cycle. Furthermore, organizations can incorporate pair programming practices into their onboarding and training processes to share knowledge between their most experienced programmers and newer members of the team.
Dispelling pair programming myths
With all of these incredible benefits, why is pair programming still only sporadically used in the telecom billing world? For one, the idea of adding a second programmer to tackle a task that traditionally only required a single employee makes some department heads nervous, believing that pair programming requires twice as many man-hours to achieve the same goal.
Although it is true that pair programming requires an increase in man-hours at first, the reasoning behind that initial uptick is often misunderstood. It takes time to adapt to any new workflow and software development process, especially when incorporating an approach that seems as alien as pair programming.
Once programmers adjust to this new technique – as well as build a close rapport with co-workers – the amount of time needed to complete tasks will decrease significantly. Although pair programming will always necessitate additional manpower to execute, the total cost of pair programming development is much lower than one might expect. Research suggests that an experienced duo will only spend 15 percent more man-hours on a given task than an individual working alone. That relatively small investment in time results in a significant improvement in the resulting software quality. In this light, the cost-benefit analysis definitely tips in pair programming's favor.
Old guard programmers and IT staff may present another barrier to adoption, since pair programming could be viewed as a disruptive approach to software development that will upend the natural order of things. Truly innovative companies realize that change is inevitable and wholly necessary to produce better solutions and meet the latest industry challenges. It may take a little time for veteran software developers to embrace pair programming, but they will come around once they experience its benefits firsthand.
IDI's eye-opening pair programming experiment
IDI Billing Solutions made the decision earlier this year to implement pair programming within certain development teams to test its efficacy. The results have been nothing short of phenomenal.
"Pair programming's results have been nothing short of phenomenal."
During the course of a standard, two-week iteration sprint, IDI's teams will use pair programming to tackle two or three different tasks. In particular, developers will employ pair programming to address complex tasks that require a great deal of collaboration to quickly find the best solutions possible.
"There have been times where we were pairing on a task and we realized our design just didn't quite work," stated Staff Software Engineer Vishal Shah. "Certain requirements won't work with the way we structured things. We can pause, turn to the whiteboard, and diagram out what needs to be changed and what the impact will be on the design."
IDI established a dedicated pair programming space where team members can work free of any outside distractions. Department heads deploy a different mix of pairings to encourage various dynamics to take root. For instance, a more experienced programmer may work with a more recent hire to impart his or her wisdom and mindset to problem-solving. The knowledge-sharing benefits of pair programming cannot be understated, as less seasoned employees pick up on time-tested tips, tricks and habits from more tenured co-workers.
"On our team, we encourage pairing with different people to support knowledge sharing as much as possible," said Senior Software Engineer Kevin Hart. "You want to share everyone's experience across the entire team whenever possible."
Meanwhile, two programmers with similar experience levels can work in tandem to tackle complex or difficult problems that may lack obvious solutions. Putting their considerable problem-solving skills together, these veterans can arrive at an answer faster than if they were working alone. They may even come up with solutions that would otherwise never materialize until much later in the development process – if at all.
"In theory, I would pair everything," said Hart. "I am completely sold on the benefits. It's great to have that second set of eyes and get different people in the room working on projects and adding their viewpoint."
Given the immediate impact that pair programming has had on the efficiency and efficacy of IDI's software engineers and developers, IDI will look to increase the use of this technique moving forward.
In the telecom billing industry, technological stagnation can be a death sentence. Businesses must continually strive to innovate, incorporate the latest best practices and craft better solutions for their customers. As a respected leader in this space, IDI Billing Solutions will continue to seek out cutting-edge technology and advanced development practices like pair programming.