Agile software development refers to a group of software development methodologies based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. [1]
An example of this is Extreme Programming or XP. Extreme Programming (XP) is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development, it advocates frequent "releases" in short development cycles, which is intended to improve productivity and introduce checkpoints where new customer requirements can be adopted. [2]
Other elements of Extreme Programming include: programming in pairs or doing extensive code review, unit testing of all code, avoiding programming of features until they are actually needed, a flat management structure, simplicity and clarity in code, expecting changes in the customer's requirements as time passes and the problem is better understood, and frequent communication with the customer and among programmers. The methodology takes its name from the idea that the beneficial elements of traditional software engineering practices are taken to "extreme" levels, on the theory that if some is good, more is better. [2]
The Project Management Body of Knowledge (PMBOK) is a collection of processes and knowledge areas generally accepted as best practice within the project management discipline. As an internationally recognised standard (IEEE Std 1490-2003) it provides the fundamentals of project management, irrespective of the type of project be it construction, software, engineering, automotive etc. PMBOK recognizes 5 basic process groups and 9 knowledge areas typical of almost all projects. The basic concepts are applicable to projects, programs and operations. The five basic process groups are: initiating, planning, executing, monitoring and controlling and closing. Processes overlap and interact throughout a project or phase. Processes are described in terms of inputs, tools and techniques and outputs. The nine knowledge areas include the management of project integration, scope, time, cost, quality, human resources, communication, risk and procurement. Each knowledge area contains some or all of the project management processes. [3]
From what it is earlier defined, it can be inferred that XP takes the conventional programming methodologies to its full potential. Since these have already been following standards set for by proper institutions, some of which are found in the Project Management Book of Knowledge, it is very much likely that XP adopts the same. It is just noteworthy that the compliance to these standards should be closely monitored as this style of programming is very fast-paced and negligence could happen at a much higher rate. Coordination between team members in an XP environment can also be critical therefore it should also be strictly followed. The documentation part in XP also draws significant attention like many other programming methods for natural tendencies to miss out on important details more so that meetings with the client are done frequently.
Although things are examined thoroughly in XP, the demands could still pull possible complications especially with changing user requirements. Things that have been previously agreed upon could change over the course of the project and conflicts can arise from these. These could put at risk the success of the project if things will not be managed properly and every possible factor affecting the project will not be taken into consideration.
[1] http://en.wikipedia.org/wiki/Agile_software_development
[2] http://en.wikipedia.org/wiki/Extreme_Programming
[3] http://www.projectsmart.co.uk/pmbok.html
No comments:
Post a Comment