Over the past decade, software developers over the world have adopted a new project management framework known popularly as Agile Development. This framework ostensibly seeks to put the customers first to develop and deploy software that most directly meets customer needs. Simply put, it proposes breaking down the software development process into incremental stages that continuously create increasingly complex versions of software. This entire process is meant to be responsive to changing customer demands. Agile Development has really picked up steam both amongst major software developers and tech start-ups over the years as they look to achieve more with smaller development teams. In Ghana as well we are seeing a rise in the teaching of agile methods in tech education as well as its use by local developer teams in organizations. So what exactly is ‘Agile’?
Agile Development is the overall framework and consists of several more specific methodologies that all have their peculiar advantages. Dynamic Systems Development Methods (DSDM) is one of the oldest methods and has been described as the most ‘complete’ agile development method. This is because it specifically outlines a detailed development process that addresses the several parties involved in the process. Scrum, is currently the most popular agile method in use. This is perhaps because it is relatively simple to understand and implement for small teams. Scrum is especially useful in situations where long-term planning is difficult and especially in entrepreneurial settings where the new product must be rolled out quickly yet remain quickly adaptive to customer feedback. Other agile methods such as Extreme Programming (XP) and Lean Software Development have their adherents and add to quite an active community of developers who follow agile methods.
Why Is It Useful?
So what exactly are the benefits of using agile development methods? Here are three:
- This is just as important to the established software developer as to the tech entrepreneur. For the Software Development Company such as DreamOval, developing for clients usually operates within a limited time frame. Agile Development methods allow us to present clients with working versions of the product at frequent incremental steps. By focusing on a few features at a time and building incrementally value can be delivered quickly and efficiently to the client. This benefit is just as important to tech startups that frequently must move quickly to bring their idea to market. Agile methods allow startups to deploy their services rapidly and iterate further in direct response to early user feedback. M.E.S.T. teaches its young Entrepreneurs-in-Training (EITs) agile development methods precisely because of this.
- Client – Focused
- Agile development methods focus on building software in development cycles where a set of features are chosen, developed, tested and displayed to the client or users (or their representatives) for feedback. This feedback will inform the next set of features and development priorities. This user-centered approach allows the developers to react easily and quickly to client feedback or changing priorities. It represents perhaps the best solution to allow the client exert continuous oversight over the development process and ensure that the final product meets the exact needs of the client. Contrast this with the ‘usual’ process where a business would grant the contract to a software developer and wait months before being presented with a final solution for review. If this final solution is not acceptable or is missing key features the business wants that’s a lot of time and money gone to waste.
- Optimized for Small Teams
- Many Agile development methods, especially Scrum, are optimized for small teams to handle. This is suitable, especially in our Ghanaian locale, where most organizations (including software developers) have relatively small development teams. Scrum allows these small teams to break down large projects into more manageable sets of features and focuses on building in these features as quickly as possible. This happens through a process involving constant documentation and analysis.
Agile Development has its critics, many developers have claimed it is merely for show and deplore the apparent lack of proper code documentation inherent in these systems. Some have also pointed out and criticized cases where the switch to Agile Development has not yielded significant performance improvements. Recent research into the agile movement such as one commissioned by Voke Inc. revealed that a majority (64%) of businesses found the switch to Agile ‘confusing, hard, or slow’. It must also be mentioned that agile development is not applicable for all development projects. A careful, considered decision must be made as to whether to follow an agile framework before any team begins development work.
Many of the criticisms of Agile Development appear to arise from cases where the switch to Agile has been handled far too lightly. Many IT managers or business heads end up thinking that imposing short, frequent deadlines on software developers is all that it necessary in being ‘agile’. For Agile development to be truly embraced and implemented it requires a concerted effort from both business stakeholders and software developers to adhere to ALL the principles of Agile and jointly create a product/service that meets customer expectations.
Executive, Product Marketing and Media Relations