App Development

The fast beats the slow: be agile

21 August 2017 • 4 minutes

Written by Eban Escott

image for 'The fast beats the slow: be agile'

Agile is a buzzword that’s been circulating around the IT industry for some time now. It’s been gaining traction over the years and is now the favoured development approach for many development teams. Codebots is no exception.


Agile is a buzzword that’s been circulating around the IT industry for some time now. It’s been gaining traction over the years and is now the favoured development approach for many app development teams. Codebots is no exception. One of our basic rules is that Codebots should complement agile methodology. It’ll enable you to get the most out of the platform!

What is agile software development?

What is agile software development? The agile development lifecycle is a way of managing development teams and projects. It has moved away from a prescriptive approach where a developer spends weeks creating comprehensive documentation including a requirements backlog so long, it could be confused with a Harry Potter book. Agile stresses a lean project management model, with incremental work cadences. The lean software development model is comprised of sprints. They operate by abbreviating the entire app development lifecycle into smaller cycles and tasks.

Each sprint should have a defined period of time (usually 2-3 weeks). After that time, the direction and progress of the application is assessed. This gives the project stakeholders an opportunity to evaluate its trajectory and decide whether any new features or modifications are required. So your first sprint might be to develop a simple application with a payment wizard. The next sprint could be to add a chat interface to your application.

Ensuring stakeholders are engaged during development is a critical component of the agile methodology. Close collaboration keeps all team members (including the product owner) accountable and on the same page.

Did you know agile management software (provided by Atlassian) monitors the software that controls and communicates with the Mars Curiosity rover.

Agile’s origin

The concept of agile development stems from a group of seventeen individuals who believed that the traditional, waterfall methodology approach to developing software projects was failing far too regularly. In 2001, the agile manifesto was created, presenting a lean model for software development. The values comprising the agile model manifesto and lean development are represented in the infographic below.

Image

As seen in the graphic, agile project management stresses individuals and interactions, responding to change, customer collaboration and working software (getting to a MVP as soon as possible). At the bottom of the funnel are ‘agile offsprings.’ These are methodologies which stem from agile values but place a greater emphasis on specific areas. For example, Kaizen focuses on continuous incremental improvements whereas Scrum creates different roles (Product Owner, Scrum Master and Team) defining each person’s responsibilities. Each offspring embraces the movement towards agile development.

How to be Agile

“Doing Agile is just a first step; being agile needs to have a totally different mindset, and multidimensional perspectives.” - Pearl Zhu

Customise

Agile is not a blueprint you must follow rigorously. Rather, it is a methodology that should be customised to fit your business needs. Experimentation is the best way to find the right fit. Does your company work better with fixed or variable timeframes? Is a scrum master needed to help guide your team? How regularly will you meet during the sprint? How you answer these questions will shape the way in which you adopt the agile ethos.

Consider blending Agile with Lean

Combining agile with the lean methodology can often create value for an organisation. One company has suggested that its customers get to market 50% faster and are 25% more productive when they employ a hybrid of Lean and Agile development methods. The lean approach is centred around eliminating any unnecessary features of an application. Lean systems break the total work required into a set of value streams where the output of one stream leads to others. Large projects can be segmented into sequential and parallel sprints where at the end of each sprint you’re left with a refined version of the product.

Variable or fixed timelines?

When conducting a sprint you can either set a fixed timeframe whereby the sprint concludes on a particular date regardless of progress or a variable timeframe where the conclusion of the sprint is subject to change. Kanban (an agile methodology) uses variable sprints, allowing a team to react to unexpected occurrences by adjusting the end-date. Scrum on the other hand, implements fixed deadlines. This approach offers certainty and often becomes a motivator for team members to achieve the sprint goals.

Agile compliments Codebots

Being agile means reacting to change. However writing code is often a time consuming process, impairing a business’ ability to develop rapidly. This can be remedied. Codebots allows a business to be agile by using bots that can write the majority of the target code. This empowers teams to iterate rapidly without the fear of a sub-par product as a result of the time sensitive nature of sprints. By spending more time collaborating with consumers and less time manually coding, the end result will be a relevant product that’s easy to use.

It’s no longer the big eats the small. It’s the fast beats the slow.

Consumers have lost patience. They want everything and they want it now. Being agile will allow your business to determine what it is consumers need while still reacting fast enough to beat the hundreds of other businesses working on the same thing.

Eban Escott

Written by Eban Escott

Founder of Codebots

Dr Eban Escott received his Doctorate from UQ (2013) in Model-Driven Engineering and his Masters from QUT (2004) in Artificial Intelligence. He is an advocate of using models as first class artefacts in software engineering and creating not just technologies, but methodologies that enhance the quality of life for software engineers.