Although solitary software development has its benefits, teams of programmers can develop large applications much more quickly than an individual. Breaking an application down into components or modules and assigning those modules to different team members can bring the delivery time down from years to months (Farrell, 2008). Unfortunately, increasing the size of the development team from one to many comes with its own set of challenges. Every programmer has his or her own particular style. The different, and sometimes conflicting, styles of programmers is one challenge that faces software development teams. As more programmers work on a project, another challenge is overcoming the bugs these programmers introduce that cause the application as a whole to fail.
The most evident aspect of a programmer's style is the physical characteristics of the written code such as naming conventions, tab sizes, and brace formatting. Additionally, programmers tend to adopt specific methodologies that set their code apart from that of other programmers. In a group programming environment, these individual styles cause disharmony as programmers try to comprehend the style of their fellow team members. Software development teams create coding standards to overcome this challenge. A coding standard is a stylistic guideline that each member of the team agrees to in order improve the overall efficiency of the team. Once the team has reached consensus on the coding standard, the shared aspect of the code base ensures adherence to the standard (Shore & Warden, 2008).
Even the best programmer occasionally makes mistakes. As a software development team grows, the chances of mistakes occurring increases. Additionally, different programming ideas may lead to incompatibilities between components developed by different programmers. In order to protect against these mistakes, many software development teams have implemented unit testing into their development practices. Unit testing is a development method that develops tests for code as its written. These tests are designed to test very small portions of code. As a programmer works on new code, she can immediately determine if her code is working properly by running all the unit tests associated with the code. Additionally, other team members can modify that code and quickly test their changes (Thomas, 2005).
A solo programmer can only be as successful as the effort she puts into her programming project. In a team environment, many programmers can work together to produce software that far exceeds the abilities of any one team member. The software development team creates opportunities that the individual development environment can not. Although the complexity of a team creates challenges, these challenges can be overcome if they are met head on with proven strategies. Coding standards and unit testing are two strategies that have proven successful for many development teams.
Farrell, J. (2008). Programming logic and design, comprehensive (5th ed.). Boston: Thomson Course Technology.
Shore, J. & Warden, S. (2008) The art of agile development (1st ed.). Sebastopol, CA: O'Reilly.
Thomas, D. (2005) Programming Ruby: The pragmatic programmer's guide (2nd ed.). Raleigh, NC: The Pragmatic Bookshelf.