Agile Development: An Overview

Agile Development: An Overview

By Paul Brownell, October 4, 2018      Categories: Software Development Process      Tags: , ,

In our last few blog posts, we’ve examined security and looked at some of the most common security myths and mistakes.  In this blog post we turn our attention to agile development. We look at what agile development means, and the benefits that agile software development can bring.

 

What is Agile Development?

In a nutshell, agile development is a software development practice that allows development teams to adapt and respond to change or unforeseen issues with little disruption to the overall project.  It encompasses methods and processes based on the principles of the Agile Manifesto. The objective is to promote efficient collaboration between multidiscipline, self-organizing teams that are working towards a common goal or outcome.

 

The History of Agile Development

Towards the end of the 90s, several software development methodologies were capturing the development community’s attention, each merging old and new ways of shipping software projects. These methodologies, unlike the waterfall model, emphasized close collaboration between the development team and business stakeholders.

 

Want the Short Version? Download our free “Key Agile Principles” Cheatsheet!

 

This more efficient way of delivering software projects came to be known as Agile Development.  With its accompanying manifesto, Agile was a departure from the old waterfall model where the business often had to wait months for new releases or even previews of new functionality.

Frequent delivery of software products by self-organizing, autonomous and adaptable teams was welcomed by business. As a development process, it is one of the most valuable things any team can deploy.

 

Agile development allows teams to adapt and respond to change or unforeseen issues with little disruption to the overall project Click To Tweet

 

Key Personnel in an Agile Team

Quite often, Agile teams are small, nimble and it’s not uncommon for professionals in agile teams to wear more than “one hat” and consist of:

 

Scrum Master

This role is responsible for ensuring that the development team sticks to agile principles during each stage of the development process.  The lead is also responsible for ensuring the team has sufficient resources to help them complete tasks and has the responsibility of helping the team solve problems and remove roadblocks.

 

Product Owner

Product owners are the champions of the product being built. They are focused on understanding business, user community, and market requirements.  They also prioritize the work to be done by the development team.

 

Stakeholder

This represents a broad range of people that can consist of end users, managers of users, operations, support, or even other Agile teams with dependencies, executive team, investors, and more.

 

The Development Team

The development team is vital to any agile project.  It is the development team’s responsibility to turn the product owner’s vision into a tangible outcome.  The development team is responsible for delivering the product on time and on budget, are often cross-functional and includes professions such as: front-end developers, back-end developers, QA engineers and much more.

 

The Main Stages of Agile Development

What follows are some loose stages that Agile Development teams typically follow when building software products that follow the Agile Methodology:

  • Concept – Projects are envisioned and prioritized
  • Inception – Team members are identified, funding is put in place, and initial environments and requirements are discussed
  • Iteration/Construction – The Development Team works to deliver working software based on iteration requirements identified by the Product Owner
  • Release – QA (Quality Assurance) testing, internal and external training, documentation development, and final release of the iteration into production
  • Production – Ongoing support of the software
  • Retirement – End-of-life activities, including customer notification and migration

Now that we’ve introduced what Agile Development is, and what the key stages of Agile Development involve, it’s time to turn our attention towards some of the benefits that deploying Agile practices into your existing business processes can bring.

 

Want the Short Version? Download our free “Key Agile Principles” Cheatsheet!

 

The Benefits of Agile for your Business

By now you might already be realizing some of the benefits that Agile can bring to your existing teams or software projects. Agile isn’t a “one size fits all” and there are many different agile frameworks each have their own unique set of benefits.

Companies such as Thoughtworks, Sky, CA Technologies, Cognizant and Ivar Jacobson all deploy agile practices and frameworks to give them a competitive edge and you can too.

 

SCRUM

One of the most popular agile frameworks is called SCRUM.  As an agile framework, it has been used since the 90s on many projects of varying complexity.  One of the main tenets in SCRUM is breaking large projects into smaller iterations and adapting the project along the way.

Each software iteration in a SCRUM project is called a Sprint which can range from one week to one month (two weeks is typical).  These are deliberately short to help keep the project moving at the fastest pace. Daily meetings (or stand-ups) which last for typically 15 minutes help keep tabs on the team’s progress and potential issues can be resolved as soon as they arise, unlike a project that is being developed using a waterfall model.

When time is of the essence and you need to iterate quickly, the SCRUM framework might just be the agile framework for you.

 

KANBAN

Kanban is another agile framework that you can deploy which focuses on real-time communication and promotes full transparency across the team.  Visualization sits at the center of the Kanban framework, as user stories and work items are drafted, they are represented visually on a Kanban Board.  This is a great way for your agile team and business to easily see the status of a project, if there are any blockers and how much work is left. Kanban is nothing new and as a methodology dates back to the 1950s where Toyota decided to optimize their engineering process and based it on the model that supermarkets used to stock their shelves!

image1

Some of the benefits of adopting kanban as an Agile framework include, but are not limited to:

  • Flexibility
  • Focus on continuous delivery
  • Reduction of wasted work / wasted time
  • Increased productivity
  • Increased efficiency
  • Team members’ ability to focus
  • Easy visualization

 

It’s not uncommon for professionals in agile teams to wear more than “one hat”... Click To Tweet

 

Kanban Boards are fantastic tools for daily stand-up meetings with agile development teams and has five columns which flow from left to right that generally contain the following.

  • Backlog
  • To-do
  • In progress
  • Review
  • Done

As work items make their way from the backlog and are completed, the team can quickly look at the Kanban board during daily stand-ups to see the state of play in a project, where blockers are and help keep a project on track. Products like Azure DevOps offer free web-based Kanban tools that can help your business get up to speed quickly and realize all of these benefits!

Teams are increasingly blending some of the practices of SCRUM with Kanban, creating a hybrid called Scrumban. Whether you use SCRUM, Kanban, or Scrumban, agile frameworks are especially effective if you have a distributed team located around the world.  

 

Want the Short Version? Download our free “Key Agile Principles” Cheatsheet!

 

Summary

In this article, we’ve introduced Agile Development, looked at the key members that form an Agile team, their responsibilities and saw how by deploying an Agile framework and accompanying processes, you can help keep your software projects on budget and deliver on time.

We’ve seen how things like daily stand ups can help maintain team accountability and how frameworks like SCRUM can help to break down complex tasks into smaller, easy to deliver chunks of functionality that can be shipped and tested in regular sprints.  We’ve also seen how the Kanban framework is structured around visual management of development tasks. Both are very effective when it comes to running projects that have distributed teams.

Here at Growth Acceleration Partners, we have extensive expertise in many verticals.  Our nearshore business model can keep costs down while maintaining the same level of quality and professionalism you’d experience from a domestic team.

Our Centers of Engineering Excellence in Latin America focus on combining business acumen with development expertise to help your business.  We can provide your organization with resources in the following areas:

  • Software development for cloud and mobile applications
  • Data analytics and data science
  • Information systems
  • Machine learning and artificial intelligence
  • Predictive modeling
  • QA and QA Automation

If you’d like to find out more, then visit our website here.  Or if you’d prefer, why not arrange a call with us?

The following two tabs change content below.
For Paul Brownell, the sky’s the limit. Be it application development or skydiving, Paul recognizes that vision, dreams, and action are required to achieve results. Paul joined Growth Acceleration Partners (GAP) in 2009 to establish processes to mold a client’s vision and concepts into applications that exceed expectations. Paul specializes in Agile software development and outsourcing, two strategies that result in superior-quality software developed on-time with high levels of customer satisfaction. His goal is to always exceed client expectations, solve business problems and turn unimaginable into what is real and valuable. At GAP, he has led hundreds of projects including the development of mobile and cloud-based applications geared for healthcare, consumer, and business-to-business users. He reiterates that app dev does not have to be chaotic or costly, as proven by GAP’s success and client roster. Before joining GAP, Paul served as product line director for BMC Software, where he established world-class processes in outsourcing and Agile Scrum development for teams in the United States and around the globe. Under Paul’s leadership, his teams achieved double-digit revenue growth and the company’s highest customer satisfaction ratings. Paul earned a bachelor’s degree in electrical engineering from the University of Tennessee. He serves on the boards of directors for local not-for-profits. One is College Forward, a non-profit college coaching program that offers one-on-one support to students, eleventh grade through college graduation. Another is The Next to New Shop, a charitable consignment shop. Paul enjoys playing video games, riding motorcycles and pursuing martial arts with his son. He’s also a skydiving enthusiast with more than 350 jumps to date.

Latest posts by Paul Brownell (see all)

Comments


Leave a Comment

Your email address will not be published Required fields are marked *

Subscribe to our Newsletter