What is agile development
Updated: Mar 5
Agile or agile development is a software development methodology that has become popular with most software projects and has generally replaced older, less fluid methodologies such as waterfall. Agile involves team members building "pieces" of functionality and then constantly bringing together those developments so that you can see a finished product on a weekly or fortnightly basis. These "sprints" mean that you can showcase what is built regularly to the key stakeholders and allow them to provide specific feedback as the software develops. Often, a project will be broken down into a set number of sprints and at the end of those sprints the software will be deployed, even if some functionality needs to be delayed in later sprints. The first release is often called "minimum viable product" as it is the minimum functionality required to have the product usable in a production/commercial environment.
Key aspects of Agile
Agile sprints are broken down into daily "stand-ups" where all those involved in the development process quickly run through what they are planning on completing that day and highlight any roadblocks that they might be experiencing. Stand-ups are key to a successful project as there is where most of the key communication will take place as the software develops. If you are working with an offshore team, you need to be sure that the tools you are using will allow for these meetings to occur across countries and timezones to keep the level of communication high, and any vagueness to a minimum. make sure the tools you are using are accessible by all members of the team so that everyone can participate in the standup meeting.
Build the trust
Trust is key in any development, but particularly when delivering an agile project. This is because the specifications are usually not all written before the development begins and allows for some interpretation by key members of the team as they develop the software. The development team should be "showcasing" their development at the end of every sprint to build trust for the stakeholders and ensure the solution is moving in the right direction. Providing feedback during these meetings is key and all those on the team need to be ready to accept both positive and negative feedback and trust that everyone has the same goal in mind - and that is a great software product.
By be consistent I mean that you need to ensure you always attend stand-ups and you always attend showcases and you always provide honest feedback! You cannot have the team developing without regular and consistent feedback from the key stakeholders. This is where many projects go wrong when a key stakeholder is "too busy" working on other things to stay across the details of the product. You cannot afford to dip in on the development once or twice a month and expect the software outcome is going to meet your expectations. Being consistent with the team is critical to a successful project outcome and is non negotiable. Don't have the time to commit to the project? Then don't start it, or allocate someone else who has the authority to dictate direction and can be consistent in their involvement.