Agile Methodology vs Waterfall
Agile Software Development manages and develops software in an interative and incremental way.
There are many agile methodologies, but most share the same philosophies, characteristics and practices.
In this context the word agile is derived from the Agile Manifesto. In 2001 a small group of experienced developers got together to discuss traditional approaches to managing software development projects.
The consensus was that software development was failing far too often and there had to be a better way.
So they came up with the Agile Manifesto. It describes four important values that guide the principles of Agile Development.
These are:
1. "Individuals and interactions over tools and processes"
2. "Working software over comprehensive documentation"
3. "Customer collaboration over contract negociation"
4. "Responding to change over following a plan"
Also the Manifesto describes twelve principles.
And they are:
1. "Our highest priority is to satisfy the customer through early and continuous delivery of valuable software"
2. "Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage"
3. "Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale"
4. "Businesspeople and developers must work together daily throughout the project"
5. "Build projects around motivated individuals. Give them the environment and support they need and trust them to get the job done"
6. "The most efficient and effective method of conveying information to and within a development teams is face-to-face conversation"
7. "Working software is the primary measure of progress"
8. "agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely"
9. "Continuous attention to technical excellence and good design enhances agility"
10. "Simplicity - the art of maximizing the amount of work not done - is essential"
11. "The best architectures, requirements and design emerge from self-organizing teams"
and finally
12. "At regular intervals, the team reflects on how to become more effective, and then tunes and adjusts its behavior accordingly".
These 12 principles are focused on the customer using the software, the expectational change during the development process, feedback, communication and iterative working software.
Agile practices can have many benefits for the organization and for the project. From a business perspective, the two biggest wins are visibility and the continuous delivery of business value. Also the Product Owner because is the part of the team that builds the software, he can visualize the progress towards a working product through every iteration. If necessary the PO can make changes from iteration to iteration.
From a Business Perspective the higher management always know how the project is progressing. Despite in a traditional waterfall development cycle, the communication between Product Owners and development team happens frequently at the start of the project, but declines as the project progresses.
In Waterfall, in later stages, when the Product Owner does get an update and requests changes, these can be really difficult to make. From a development teams perspective, it changes the scope and affects the product timeline. This can understandably cause friction between the owners and the developers.
But in an Agile approach is deliberately more iterative. You deliver working software from the every beginning, instead of a mass of half-working features that only work near the end of a project cycle. This way, the target dates are less critical and the scope and dates can be easily tweaked up and down.
Another key differentiator of Agile is communication.
Frequent communication between the team members and with external stakeholders during the entire project lifecycle allows the whole team to be more adaptable. The development team can anticipate upcoming changes in scope... Product Owner can see iterative progress ... and test deployment teams are aware of what's coming up and can be prepared.
So, it seems that the entire team is working in synchronization, from here the overall status and risk of the project is known in a manner that's impossible in traditional development processes. The developers on the team can raise concerns about complexity or issues with specific features to the PO during the implementation phase, giving him the change to revisit worklog and requirements. The added communication reduces risk and gives everyone further visibility into where features actually stand.
And finally may I ask which methodology you like best? Agile or Waterfall?
Leadership in technology
4 年It doesn't meater as long as you deliver, it's just a methodology. The real deal is to deliver at request