Extreme Programming
One of the specialized programming techniques utilized by EcomSolutions, Inc., for the benefit of certain clients, is known as “extreme programming.” The method features a high degree of simplicity, communication and feedback. In it, the entire programming team communicates continuously, allowing for enough feedback to instantly fine-tune all aspects of the project.
Planning and tracking is a key part of extreme programming to move the project forward to completion as expeditiously as possible. Utilizing this technique is aimed at producing highly-integrated end-products that pass all usability tests.
In practice, extreme programmers sit and work together in pairs and as a group, sharing a single computer, with two monitors and separate keyboards. It encourages each programmer in a pair to both challenge and support each other. The programming team codes together to promote a consistent style, so that all of them can understand and revise the coding as necessary.
The team oftentimes includes a “customer” who provides the project requirements, sets the priorities, and administrates over the project. Testers may also be included, as well as a “coach” who helps the team remain on track. Everyone on an extreme programming team can contribute in different roles.
In one extreme programming practice, the “customer” lists his or her desired features and the programmers estimate the task details and how long each will take to accomplish. All costs are laid out during this process. With estimates and details established, the plan is laid out for the project.
On occasion, the team is given directions on a periodic basis. If the period is, for example, three weeks, the features to be integrated into the project will be established for that time interval. The programmers then estimate costs in finer detail. Based what has been done in the previous stage, goals can be set for current period.
These steps place a lot of control into the hands of the customer or end-user. By utilizing the periodic process, progress can be tangibly measured and there is no ambiguity about project success. For this reason, extreme programming projects provide a very good opportunity to deliver a project meeting a client’s specifications on time.
As part of the testing process, the client defines a series of tests to ascertain if a given feature has been coded correctly. These tests are used to verify, for the programmers and the client that any given feature has been implemented correctly.
As previously noted, all coding in extreme programming is done by two programmers, sitting side by side, at the same machine. This ensures that all work is reviewed by at least one other programmer, and results in better coding, design and testing.
Industry studies on “pair programming” indicate that does so produces better code than in the case with a programmer working singly. An extremely high percentage of programmers who learn to “pair” prefer it. The practice also serves to disseminate knowledge, as each programmer can benefit from specialized knowledge possessed by the other.
Another benefit of extreme programming is the ability to update builds multiple times during the day, which severely reduces the amount of bugs that have to be dealt with.
So as we see, extreme programming is an outstanding way to maximize productivity for certain specialized work projects. It is just one of the various programming methodologies utilized by EcomSolutions, Inc. to ensure that clients receive the best possible end-product.