Agile Software Development Method
This method involves less emphasis on up front data gathering. The team is actually located on site with the client, so the need to get the information then leave is not there. The data gathering step happens at the beginning of every iteration of development, so that the team is ready for the next iteration. The key players are much the same as the Waterfall method except that the project manager is called a master of the process being used. For instance, if Scrum is the agile process being used, the project manager is called the Scrum master.
The difference agile methods offer is the process that takes you from conception to completion. The process starts out by having no periods of development that take over two week to complete. These iterations are called sprints. Each sprint starts with the information gathering phase where the analysts talk to the clients to determine what the next things they need from the product are. A plan to develop these items is made so that the team can complete the sprint in a two week time frame. There are no formal project plans or technical specifications made. Instead the two week sprint is laid out using post it notes and a big wall. Each activity is written on a color coded note and the note stuck on the wall. The programming team then updates the status of their assigned post it notes keeping the colors up to date. For instance, if the activity is on target it will remain green, if it is late, it may turn into a yellow note, and if it has hit a stopping point or roadblock it will turn into a red note. This board of activities is updated daily during the stand up meeting, in which all members of the team report what they did the day before, what they are working on currently, and what they plan to work on next. These sprints are repeated until the entire product is finished.
Advantages of the Agile Method
Agile methods work well for teams of experienced programmers. There are not as many rigid deadlines to meet giving it a more relaxed feel. The contact with the clients allows for questions to be clarified more quickly and problems assessed long before release. The stand up meetings allow programmers to get help on moving past their roadblocks meaning they are not spinning their wheels for days on something they can’t fix. For larger companies, agile programming also offers the possibility of pair programming, where two programmers are assigned to one computer to complete tasks. This produces higher quality more defect resistant code. Clients like this method only because it is much easier for them to see the progress of the project. Because the sticky note wall is visible, they just need to walk into the room and look for green notes to know the project is on schedule.
Disadvantages of the Agile Method
Agile methods are not without their disadvantages. The programmers do not know the whole scope of the project when they write their code. Programmers must be experienced enough to understand common problems that arise. Junior programmers often struggle with this method because there are no designs or technical specifications to fall back on when they do not understand something. Clients and management often do not like this method because it is very hard to predict outcomes. There is no project plan, so a timeline cannot be accurately described with milestones. A budget is then impossible to predict. Staffing also becomes an issue because certain modules may need or benefit from additional staffing, but you would not realize it until the module is in development.
This post sponsored by: Elizabeth Farms, the largest evergreen tree nursery in Lancaster County.