If you’re involved in a tech field to any degree, you have probably heard the terms “agile development,” “Scrum” and “sprint” to name a few. Because clients ask us more and more about our use of Agile, we thought it would be useful to clarify some if its basic concepts.
What is Agile Development?
Agile development is an iterative, collaborative software development philosophy. We use the term “philosophy” loosely, but we guarantee not even Plato or Socrates could’ve predicted the awesomeness that is agile. While there are certain activities and methods that have been designed to support an Agile development environment (like kanban and scrum), it is an approach, and a mindset rather than a specific method.
The Agile approach allows developers to work freely together on tasks. The most common technique within Agile is a subset called “Scrum.” The Scrum process utilizes a “lightweight” framing, which keeps the overhead small.
“Sprints,” are cycles where the product can be added to and tested. They consist of short time sets, usually lasting anywhere from 1-6 weeks. Sprints are consistently reviewed and improved along the way.
How Razoyo Approaches Agile Development
Because Ecommerce is so fast-paced and because we focus on medium-sized deployments (and smaller), waiting two weeks for a new feature to be implemented simply won’t do. For that reason, we use an approach that is closer to Continuous Integration. Our sprints are set to a single day. I.e., we don’t interrupt what developers are working on during the day outside of emergency situations).
Each day has multiple code reviews and multiple deployments to production environments (of which we currently manage more than 70). This requires coordination between Business Analysts and Developers, but, they like working together, so, it works out well.
Benefits to Using Agile Development
1. Client Involvement
Because of the visibility, clients are aware of which priorities are in place, as well as what progress is being made to their projects. The team can provide details on tasks, while the client gives feedback in return. If either parties have questions or concerns on certain aspects of the project, they can reach out, versus having to make a sporadic decision. This involvement is perfect for those who prefer open communication within the development process.
2. Allows for Change
Clients can make adaptations, or new additions to the project along the way in, in order to meet their ultimate goal. Despite alterations, it is still easy to measure the predictability of when the final product will be delivered, thanks to the short time-frame within sprints. Change is not only anticipated – but expected within the agile flow.
3. High Quality Outcomes with Low Risk
With team collaboration, material is reviewed by multiple individuals, which reduces room for error. Dividing tasks into subsets, rather than attacking them all at once, allows for a higher quality product through the power of focus. Think of it as a puzzle – if you will. Each piece is needed to make the big picture, and can be created independently, but this can’t be done without attention to small details.
The shift from traditional project styles to Agile has been prominent in recent years. It’s been reported that 71% of organizations use Agile development to some degree (Source: Project Management Institute). According to PwC, Agile projects have a 28% higher success rate than traditional projects. Factors such as cost-efficiency, customer involvement, and adaptability, all make Agile a desirable approach to software development.