While following a logical chain of activities is just a normal aspect of our human existence, it can also prove detrimental when it comes to software development.
Take the construction of a simple cottage as an example. If you were to install new working windows without first constructing a solid foundation and then later building strong walls to go with it, this would of course be a fruitless endeavour. Nevertheless, the Agile approach recommends just that, as long as the windows are where you find value.
Delivering value from the very start: the primary objective of Agile development
Value, of course, is the critical word here. Because the Agile approach is above all about focusing on people, any Agile software development company must provide its clients with business advantages, from the very beginning of project development. In practice, we must always prioritise software requirements while keeping their obvious commercial worth in mind.
If the primary benefit of a company’s reporting system is in the final report it produces, for instance, we could simply put off any so-called “logical” dependencies and begin development from this particular feature. Consequently, elementary parts of the system — including registration and login — might be considered less important and placed on the back burner.
A 0-Dependencies Strategy
But is it possible to actually pull this off? Logically speaking, at least, no software feature can be created without first developing its dependencies… right?
Wrong. As it so happens, the adage “fake it till you make it” is particularly useful in web development.
How Agile does away with software dependencies
Consider for a moment that we are building the aforementioned reporting system. We could just choose to depend on placeholders for the missing features of user login and registration. For example, “Charlie Sheen” could be the name of a “logged in” user.
By allowing software engineers to fill in the blanks of less valuable features, we can quickly move the project along and replace these “fake objects” when the time is right.
How Does Agile Prioritise Requirements?
There is another important aspect to consider: exactly who has the authority to decide what features offer business value to begin with? The Agile manifesto provides further clarification:
“…we have come to value […] customer collaboration over contract negotiation […] responding to change over following a plan.”
Thus, in accordance with these principles, no software requirement is ever considered unalterable. Working alongside the software provider, the client determines how essential it will be to their business. They can then finally prioritise their requirements.
The Minimum Viable Product in Web Development
Creating an MVP is just one of many strategies Agile teams employ to offer instant value to their corporate clients. This comprises a simplified, core-functionality-only version of the product that will eventually evolve into a complete solution. An MVP will undoubtedly be useful for businesses who are uncertain about which features to prioritise.
What are the advantages of an MVP in Software Development?
MVPs are designed primarily for early adopters and stakeholders, and as hinted at above, are much more than just a half-baked product. They are the perfect solution for determining the features and experiences that target users are looking for, as they enable a quick feedback cycle and a sense of moving in the right direction. By releasing essential features as early as possible, businesses can also adjust their strategy as necessary.
Final Recommendations for the Software Development Process
While it is perfectly fair to ponder whether it makes sense to create a feature before another, as was said in the beginning of this piece, a logical chain of activities will often create more negatives than positives. So with that in mind, the approach from any Agile team should always be the same: forget about dependencies! Instead, businesses would do well to adhere to the following checklist:
- Estimate the project’s size with user stories
- Arrange your list in order of greatest to least business value
- Pick the most important user stories for your team’s upcoming sprint.
With the help of a seasoned software development company, your firm will likely find that web development provides much greater value with Agile.
Illustrations courtesy of Tamanna Rumee and Patrick Perkins.