The Agile approach to software development first emerged in response to the inflexibility of existing project management methodologies. Unlike traditional approaches that emphasize extensive documentation at every phase of development, Agile instead values the software itself as a measure of progress. In Part 1 of our Agile blog series, we discussed the first tenet of the Agile Manifesto and how Sourcetoad puts that value to practice. Today, we will dive into the principles behind the second tenet of the Agile Manifesto: working software over comprehensive documentation.
Agile vs. Waterfall
In traditional software development methodologies, like the waterfall method, the projects progress linearly. Detailed requirements and goals are created upfront, and each stage must be completed before moving onto the next phase of the project. This linear approach is well-suited for projects in some industries, such as aerospace. At NASA, development follows the traditional waterfall model, and the project lifecycle moves sequentially through many design and review phases. Since the stakes can be very high for projects at NASA, the waterfall approach ensures that each phase is heavily documented and many checks are in place.
However, for many other industries, the waterfall method can be rigid and inefficient. Not only do projects take longer to get off the ground, but the process of incorporating feedback and making changes can also be lengthy—requiring redesign and redevelopment work that can delay the next phase of the project. In the Agile approach to software development, there is less value placed on upfront requirements and documentation. Rather than trying to predict and specify every detail of the project upfront, the philosophy is more adaptive and iterative. Development teams focus on creating pieces of working software that are then delivered to the client incrementally to get feedback and adapt as needed. Since a client may have a better understanding of a project’s requirements after seeing a piece of software in action, extensive upfront design specifications can be limiting later on in the project if a problem arises. Agile also allows for a non-linear approach, enabling team members to work on different pieces of the software simultaneously, which speeds up the lifecycle of a project. Notably, privately-owned aerospace company SpaceX has embraced Agile over waterfall. Agile allows SpaceX’s engineers to develop, test, and deliver technologies much faster than the aerospace industry has historically done.
Agile in Practice
At Sourcetoad, we practice Agile following the Scrum framework. In Scrum, emphasis is placed on delivering the Minimal Viable Product (MVP), which is a working product that has the smallest set of functionality or features required to be usable. Empiricism is at the heart of Scrum and Agile, so the MVP allows us to collect feedback and user data and then apply what we learned. If an element of the MVP does not match the client’s vision, it’s easier for us to adapt and make changes early in the process.
Read more about Sourcetoad and Scrum in Part 1 of our Agile Manifesto series.
A few big reasons we value delivering working software over comprehensive documentation:
Faster Time to Market: Agile allows us to deliver software more quickly to our clients. By focusing on working software, Sourcetoad’s teams can deliver value to customers faster, allowing for quicker time to market and faster feedback loops.
Adaptability to Change: Requirements and priorities can change a lot during the course of a project. By prioritizing working software, our development teams can quickly respond to changes and pivot as needed to meet evolving needs of a project, rather than being tied down by extensive documentation that may quickly become outdated.
Collaboration and feedback: Agile encourages regular collaboration and feedback from customers, stakeholders, and team members. A working software product serves as a tangible artifact that can be used for feedback, allowing for more meaningful discussions and iterative improvements.
Transparency: Working software provides a transparent and concrete measure of progress. It enables our teams to track their progress, identify potential issues or roadblocks, and take corrective actions as needed.
The flexible nature of the Scrum framework also allows for the inclusion of specific kinds of documentation, when requested or necessary. It’s important to clarify that when Agile prioritizes working software over comprehensive documentation, it’s not discarding all forms of documentation. For instance, under Agile, updates to end-user-oriented documentation such as help files can be integrated seamlessly into each release version. This is a distinct type of documentation which is indeed part of the software development output, as opposed to the extensive project documentation often deemed excessive in Agile principles.
By following Agile principles, Sourcetoad delivers exceptional outcomes to our clients. Through the Scrum framework, we prioritize the delivery of the Minimal Viable Product to collect feedback and adapt as necessary. This approach allows us to accelerate time to market, respond swiftly to changes, foster collaboration and feedback, and ensure transparency throughout the development process. By valuing working software over extensive documentation, we empower our clients with tangible results, enabling meaningful discussions and iterative improvements.
At Sourcetoad, we believe that Agile provides the flexibility and adaptability necessary to deliver maximum value to our clients. Embracing this approach allows us to consistently exceed expectations and drive successful software development projects.