Lot of Misconceptions
Agile software development tends to confuse many, being agile in software development is not following a set of rules and traditions, nor setting up standup meetings daily. There are a lot of misconceptions when people think about a company that follows a particular derivative of agile software development such as Kanban. These misinterpretations have to be interpreted in the best way in reverence to the real Agile Software Development Methodology.
Agile is a set of values and principles when followed by a creative and intelligent team, which can make very dynamic decisions based on their beliefs, produce working software. Being agile means being flexible, to be flexible in such a way that the team is capable of itself making super dynamic decisions based on their principles, their beliefs on being Agile.
I agree to the fact that Scrum is a good methodology to be implemented while developing a software but why not Kanban or Crystal or XP? Scrum is a good methodology in general, its tactics and principles produce good results, but when considering an end user’s or a client’s perspective, the ideals of XP may eclipse over Scrum. The team should be flexible and should possess the courage to hold on to their beliefs that software development should be agile.
The 12 Principles
Agile software development methodology is based on its 12 principles, to be understood by the team, that entrust the team the ability to make good decisions.
- The highest priority is to make early and continuous delivery of working software and hence satisfy the customer.
- To welcome changing requirements, even late in development, harnessing changes for the customer,s competitive advantage.
- Frequent delivery of working software, with a preference to a shorter time scale.
- A collaborative effort from developers and clients throughout the project, daily.
- Build projects around motivated individuals, support and trust them to get their work completed.
- Get the best way to communicate information to the team. Face-to-face communication at its apex.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity – the art of maximizing the amount of work not done – is essential.
- Self-organizing teams produce the best architecture, requirements, and designs.
- Periodic fine tuning and behavioral adjustments by the team to become more effective.
Decision Making Matters
So, being agile is giving people a foundation to make decisions, 100s of decisions based on principles and values they believe in. Decision making matters the most to be agile, it should become clear that these principles and values formulate some practices and that those practices may change according to the decisions that allow the best way that works best in full potential to deliver the best software!