AGILE SOFTWARE DEVELOPMENT
Our team observes Agile development as its software process methodology tool. This tool is mostly based on repetitive and incremental development, where results and necessities progress through alliance between self-organizing, cross-functional teams. "It promotes adaptive planning, evolutionary development and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change. It is a conceptual framework that promotes foreseen interactions throughout the development cycle," Agile methodology is not a new thing for most of the software developers. Most folks know that Agile was the straight response to the dominant project management example - waterfall, and borrows numerous ideologies from lean manufacturing. To sum Agile up, below are its 4 important values (from the Agile Manifesto) that are as significant nowadays as they were back then. It says:
"We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more."
AGILE - SCRUM METHODOLOGY
Of all agile methodologies, our team best fit on SCRUM. It has its unique characteristic: it introduced the idea of "empirical process control". Scrum uses the real-world progress of a project and not a best guess or ununiformed forecast to plan and schedule product release. Instead of providing complete, detailed descriptions of how everything is to be done on the project, that is left up to the software development team. Scrum methodology may have many essentials but none of them is unsystematic and redundant.
The team consists of: the Product owner, Scrum Master, and Developers.The product owner decides the features of the product. He establishes the most important functions that need to be implemented. He represents the other important people on the client side.
The scrum master supervises the process and the development team. He collects all user stories from the product owner, set deadlines, and converts all user stories to tasks. He represents the development team.
The developers as the last part of the scrum team, works directly on creating the product. Every developer is part of the project tasks whether it is software programming, creating a document, or projecting. Developer coordinates with the scrum master for the interpretation of the product owner's user stories.
The structure of this methodology is not as easy as it seems. It is very compound and expects many skills from the people who work at it. It assumes that the whole process of developing software is unpredictable and products may change any time as new requirements come along the way.