DEV Community

Cover image for 1. Scrum: Agile Manifesto
Tisha Jhabak
Tisha Jhabak

Posted on • Updated on

1. Scrum: Agile Manifesto

Heyya! Let's take a quick yet wholesome look at Scrum, one of the many Agile product or software developement methodologies, through this series of 8 articles. This is a ✔must-know for budding software developers, product managers, product designers in general.

Make sure you realize it's importance while you read, hope you have a fun reading!!😊

GIF

"Scrum is the gamification of Product Development" --Rick Waters

Before diving into the Scrum methodology, let's consolidate the Agile concepts, starting with the Agile Manifesto.

📌Agile Manifesto

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan agile manifesto Now, note that Agile emphasizes that the items on the left are more valued than those at the right. More importantly, let's examine the following examples of software failures stressing the important of these ideas.

Table show casing examples of software failures
Refer to this for more of such examples:

This is a list of notable custom software projects which have significantly failed to achieve some or all of their objectives, either temporarily or permanently, and/or have suffered from significant cost overruns. For a list of successful major custom software projects, see Custom software#Major project successes.

Thus, to summarize, the evident reasons to software failures, that may even scale up to significant harm to lives! are mostly:

  • Over-budget, over-time to develop it
  • Hard to maintain and evolve
  • Useless (or unwanted) product features

Thus, it becomes very important to keep in mind the main ideas that drives the success and efficiency of software project projects revolves around prioritizing effective team collaborations and support over adapting most advanced tools by individuals; focus on delivering a working version of the software over detailed documentations; supporting customer involvement in the development process via feedbacks over rigid contracts; and adapting changes over rigid development plans.

To consolidate the Agile process, we see that one of the primary causes of project failure was the extended period of time it took to develop a system or costs escalation and changing requirements or both while Agile methods intend to develop systems more quickly with limited time spent on analysis and design and more focus on customer expectations and feedback with strong collaboration within the team. Since software requirments is inherently flexible and can change and as requirements change through changing business circumstances, the software that supports the business must also evolve and change. This is where Agile practices and the tools comes into play to our aid.

📌Agile Principles

Set of 12 agile principles developed by Agile Alliance as follows:

  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 team 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 designs emerge from self organizing teams.
  12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

These principles are close to the Agile Manifesto discussed above.
Moreso, they guide the different practices adopted by different Agile methods.

📌The Agile Process

The main ideas are:
– Agile methods are considered, light-weight and people-based rather than Plan-based
– There are several agile methods, namely Extreme Programming (XP), Scrum, Lean software development, Kanban, etc.
– Agile Manifesto is closest to the definition of 12 principles developed by Agile Alliance

Agile

Agile advocates believe that the traditional Software development processes are too heavy-weight or cumbersome and too rigid, not compatible to go on with incomplete, unclear or changing requirements. Thus, more active customer involvement is needed for delivering working versions of software with desired features that adds business values as they are built on iteratively, in small cycles, based on the project size.

So, we can define it as a light-weight software development model wherein a small set of the functional requirements (the high-priority behaviour) of the software is delivered to the customers in each iteration; continuously adapting the changing software requirements monitored against the customer or stakeholder's feedback.

📌Some Important Notes

  • 📑Documentation in Agile is still important in Agile development. However, if it is the only kind of communication in your project, it isn’t good.
  • 📈Development plans are also important in an Agile project, in the form on “iterations”, which gives the team opportunity to get some feedback and improve the process as well as the next versions of the working software.
  • 💪Agile only works with the best developers, every project needs at least one experienced and competent lead person (Critical Success Factor) and each experienced and competent person on the team permits the presence of 4-5 “average” or learning people.
  • 🤝Mutual Respect is persistent between the teams working together in an agile project, including the dev team, the testing team, the analysists, the stakeholders, etc.
  • 🤷‍♂️ NO "Not-my-responsibity" attitude between and within teams. Say, you would never expect someone in an agile team say, "It works in our environments, it’s operations responsibility to make it work in production”, etc.

📌Short Notes

Agile Development is about:
– Keeping the process lightweight
– Making real progress in each iteration
– Communicating – face-to-face when possible
– Actively gathering customer input – early and often
– Willing to make minor changes to your process

Guys! Please make sure you realize it's not about understanding Agile or learning it, it's about BEING AGILE and this makes your product development phases and your end-product effective🎊!

Hope you enjoyed your time reading this post! Please feel free to comment your questions or concerns and share your feedback!
Make sure you like❤ this if you did, bookmark📌 for later use and follow🙌 me for more like this, till then, see you in the next✌!

P.S image and gif credits to the rightful owner.

Support and connect here:

linkedin

Github

BMC

Click here

Top comments (0)