Agile software development: a process that puts you in command
What is agile methodology, and how does the agile software development process work?
Editor’s note: This piece was originally published in 2016. It’s been so popular that we updated it in 2019.
Determining if it’s time to create custom software is a major consideration for any company, and one that is not taken lightly. The decision to build software usually stems from one of two main events:
- You have a specific pain point that needs resolution
- You have a breakthrough idea that could set you apart in your industry
Software development is often seen as a gateway to innovation, or used as a way to increase efficiency and boosts profits. Although ample thought and planning go into the process, in business (and in life) it’s impossible to foresee and plan for every bit of good news and every pitfall we encounter. Software is no different. Ideas pop up over time, new business challenges present themselves, users interact with software and have needs that no one could have predicted. Inevitably, you end up with a long list of features you want for your new software, or a list of features that’s completely different from those you originally outlined. This is the reason why we use Agile software development at Praxent.
What Is Agile Methodology?
Agile development is defined as an iterative method of software development that is inherently flexible. Agile’s adaptability makes it possible for projects to evolve during development — without impacting the overall timeline or budget. With agile, it’s easy to make changes to functionality, course corrections based upon user research, or even large pivots in direction or overall scope. Agile not only allows for change but accounts for it, enabling the team to uphold the schedule and propel the forward momentum of the project.
How Does Agile Development Work?
Agile is a unique approach to the software development lifecycle, which is becoming increasingly common. In agile development, all work occurs concurrently, as opposed to in the linear (“waterfall”) manner characteristic of traditional development methodologies. In waterfall, project tasks fall in a sequential order with each task dependent on completion of the one before it. Making changes in waterfall is costly and inefficient as issues cannot be addressed until the end, thus requiring massive interruptions to timeline and budget. With agile, changes are anticipated and thus built in. Agile employs a process called “scrum,” and work is completed in two week periods referred to as “sprints.”
The Agile Software Development Process: Working In Sprints
The agile software development life cycle involves a series of short two-week phases referred to as “sprints.” All work is organized into specific lists, and prioritized according to the business value it will create. These lists are managed using a software tool, with JIRA being the industry standard. The project manager manages the queue of items, which are organized into the following 3 categories:
Working in sprints allows for fluidity, and the ability to adjust for changes or concerns that arise. At Praxent, our developers meet with our clients once a week for about an hour. During this time, they will discuss with the client any business requirements or changes that will affect the design and how to manage them. This way, they prioritize the features and figure out what to work on during the next sprint. This is often referred to as “sprint planning”.
When new features pop up, we size them for you. Sizing, also often called estimation, determines how much work will go into the feature, so you can make an informed decision when prioritizing it. At the end of each sprint there’s an opportunity for a recap or review of work completed and any issues encountered – this is the project “retrospective”.
Creating that free flow of information between you and the developers is critical to getting the software you want. Ultimately, you make the decisions that affect the final product and lifecycle, while we provide guidance to get you there. In Agile, you come first, not the technology.
Why Use Agile Software Development?
Software development is a fluid and complex process. To be effective, the initial plan shouldn’t attempt to encompass everything that could arise during the course of the project. The Agile software process recognizes this, and provides teams with a series of meeting rituals to ensure the project remains flexible to changing business requirements, features, timeline and budget. It begins with the initial consultation and continues beyond the initial release to encompass ongoing support and evolution. In this way, we like to define agile development as the flexibility to change your mind. This flexibility is agile’s biggest benefits.
At Praxent, we practice Agile development and have rituals in place to help define the development lifecycle. Going into a new project you know what to expect; ongoing communication and collaboration allow insight throughout every phase. We work to reduce setbacks that can occur and this starts with a frank discussion about how new features can impact the project.
One of our Solution Architects, Ryan Ostrom, explains Agile development as “Defining the first priority for the business and then delivering it before working on the next priority.” Together with our clients, we explore which ideas are most practical and effective and which ones are less likely to work.
Do you have questions about whether agile is the right software development process for growing your business at scale? Schedule a free consultation with our software development team. We have a 98% success rate delivering software that exceeds client expectations.