Agile Developments Influence on System Analysis

Page 2
Page 3
Page 4
Page 5
Page 6

    “The last few years have seen the rise of a group of lightweight or agile methods (such as Crystal, Scrum and XP) as offering more flexibility, particularly in situations of unstable requirements.” (Henderson-Sellers, 2005) Now that we have a base understanding of the agile methodologies, we will look at some of the individual disciplines based upon the agile philosophy. We will begin an in-depth examination of several software development processes by first examining Extreme Programming (XP).

    Extreme Programming is a software development discipline that can be traced back to 1996 and is based on five core competencies: simplicity, communication, feedback, respect and courage. “Extreme Programmers constantly communicate with their customers and fellow programmers. They keep their design simple and clean. They get feedback by testing their software starting on day one. They deliver the system to the customers as early as possible and implement changes as suggested. Every small success deepens their respect for the unique contributions of each and every team member. With this foundation Extreme Programmers are able to courageously respond to changing requirements and technology.” (Wells, 2009) It is this agility that allows the programmers to be flexible to the changing requirements and technology as they work through a project.

    Ron Jeffries of states, “It works by bringing the whole team together in the presence of simple practices, with enough feedback to enable the team to see where they are and to tune the practices to their unique situation.” (Jeffries, 2001) “Agile methods such as XP rely on inputs from on-site customers instead of predefined requirements documents.” (Cao, 2009)

    When we include the stakeholders or the domain subject experts in the project working directly with the programming team, everyone brings their individual view of the project with them. It is this multifaceted view that allows everyone to learn something new about the problem that they are trying to solve. The project will need these domain experts if the best solution is to be found; one that is simple, yet easy to use and functional. Although documentation is important and provides a great amount of insight to the project overview, the most valuable information will come from the interaction of the knowledgeable subject experts.

    “Left alone programmers must assume they know everything they need. When asking questions is difficult or slow the knowledge gap grows. The system will get built, but it won't solve the problem like one guided by an expert on a daily basis.” (Wells, 2009) This issue can also be exasperated if it is difficult or slow to get responses from the subject experts and the knowledge gap widens in a nonlinear function as time passes.

    Although not having a domain expert working directly with the project team provides a great disservice to the project development team, the biggest problem with software development is the ever changing project requirements. The agile process accepts this reality of flexible requirements versus the fixation on project requirement due dates. The majority of agile methodologies address these issues in some way or another through their individual rules. We do see specific instances where project requirements cannot change. Although, for most of the projects we see they will indeed have changing requirements. If the development team has the agile tools needed to address the ever changing system requirements, it can actually cost less for the project stakeholders to produce the desired software program than if they held firm on guaranteeing the project requirements never changed.

ContactReport in PDF






























"I don't get it! You've designed Multi-Million dollar systems, but you can't figure out how to change a light bulb in this house?"