Back

10. Simplicity – the art of maximizing the amount of work not done – is essential.

Much like the documentation of waterfall methods, traditional development does a large amount of unnecessary work. This work wastes time and resources and reduces how much the team can accomplish on the product. As such, the team is overall less efficient.

Agile development seeks to only do what is absolutely necessary. Documentation is kept to a minimum. Research is done at the last minute. Bugs are caught and fixed before developers move onto other tasks. For developers, this often means spending less time writing and reading specifications, and more time writing code.

11. The best architectures, requirements, and designs emerge from self-organizing teams.

As with focusing on methods over the individual, traditional development assigns teams rather than allowing them to organize themselves. This often results in a team that is less cohesive. Certain team members may not work well together. Team members may have different plans for a project, and it can be difficult to reconcile these differences.

In Agile, teams organize themselves. This improves the architectures, requirements, and designs that the team creates. With developers, this allows them to find an environment where they work best. With the right teammates and ideas, a self-organized team is much more efficient.

12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Since waterfall development handles each step in one pass, there are no stopping points to look back and examine progress. The team must stick with their current methods until the end of the current project at least. After each project, the team can examine how things went and adapt for the next project. The problem with this is that every project is different, and what worked for one project may not be ideal for the next.

The cyclical nature of Agile software development means that there are numerous stopping points to look at the team’s progress. The end of every sprint shows a small slice of every step in the process. Therefore, after each sprint, the entire team can look back on what went well, what went badly and adjust to improve the next sprint. These are accomplished within the same project, so there is ample time to improve the project before the end. For developers, this means being more cognizant of their own work, and how they interface with others. By the end of each sprint, developers need to know how the process can be improved. Without an opinion, things will remain at status quo.

The twelve Agile principles are obviously a lot of material, but they all do have tremendous value. For developers, especially, the Agile principles create a cohesive and more productive team. By cutting out all of the unnecessary parts of traditional development and encouraging communication, Agile creates an environment that generates quality code efficiently.

Recommended Further Reading

The following materials may assist you in order to get the most out of this course:

Section 2: Using the Agile Manifesto to Deliver Change

Section 3: The 12 Agile Principles

Section 4: The Agile Fundamentals

Section 5: The Declaration of Interdependence

Section 6: Agile Development Frameworks

Section 7: Introduction to Scrum

Section 8: Scrum Projects

Section 9: Scrum Project Roles

Section 10: Meet the Scrum Team

Section 11: Building the Scrum Team

Section 12: Scrum in Projects, Programs & Portfolios

Section 13: How to Manage an Agile Project

Section 14: Leadership Styles

Section 15: The Agile Project Life-cycle

Section 16: Business Justification with Agile

Section 17: Calculating the Benefits With Agile

Section 18: Quality in Agile

Section 19: Acceptance Criteria and the Prioritised Product Backlog

Section 20: Quality Management in Scrum

Section 21: Change in Scrum

Section 22: Integrating Change in Scrum

Section 23: Managing Change in Scrum

Section 24: Risk in Scrum

Section 25: Risk Assessment Techniques

Section 26: Initiating an Agile Project

Section 27: Forming the Scrum Team

Section 28: Epics and Personas

Section 29: Creating the Prioritised Product Backlog

Section 30: Conduct Release Planning

Section 31: The Project Business Case

Section 32: Planning in Scrum

Section 33: Scrum Boards

Section 34: Sprint Planning

Section 35: User Stories

Section 36: User Stories and Tasks

Section 37: The Sprint Backlog

Section 38: Implementation of Scrum

Section 39: The Daily Scrum

Section 40: The Product Backlog

Section 41: Scrum Charts

Section 42: Review and Retrospective

Section 43: Scrum of Scrums

Section 44: Validating a Sprint

Section 45: Retrospective Sprint

Section 46: Releasing the Product

Section 47: Project Retrospective

Section 48: The Communication Plan

Section 49: Formal Business Sign-off

Section 50: Scaling Scrum

Section 51: Stakeholders

Section 52: Programs and Portfolios

Translate »