In software development, Agile is the umbrella term that refers to a set of methods that share similar principles. These principles were established in February 2001 by a group of software engineers who wanted to find a better, more lightweight way to build software. Since then, Agile development has been adopted by countless organizations that seek to deliver software quickly and efficiently.
There are many types of agile development methods including but not limited to: Feature Driven Development (FDD), Dynamic Systems Development Method (DSDM), Extreme Programming (XP), Lean, Kanban, and Scrum. Scrum is the most common method and the one we use most at Timmons Group. It has become so popular that the terms Scrum and Agile are often interchanged. However, Scrum is the implementation method and Agile is the mindset and guiding principle.
The Agile process we use at Timmons Group focuses on six practices: adaptive planning, iterative development, early delivery, continuous improvement, rapid and flexible response to change, and promoting teamwork.
Adaptive planning helps individuals in a project understand that nothing is set in stone; to always expect and adapt to change.
Iterative development allows teams to work in small chunks so that risks are minimized. Whether it’s design, planning, documentation or testing, working in smaller increments will improve the team’s ability to deal with change as well.
Early delivery ensures that the team is on the right track by building the most valuable, highest priority items first and showing working product to stakeholders. Getting feedback early and often leads to more progress and keeps you from investing too much work in a project that could be going in the wrong direction.
Continuous improvement stresses checking work, progress, and process. The short iterations allow for quicker feedback and ability to adjust.
Rapid and flexible response to change requires that teams continuously assess their own performance and focus on getting better.
Last but not least, Agile is about promoting teamwork and collaboration. In the Agile model the success of a project and quality of the product requires the client to be engaged and in an actively collaborative role. There is constant interaction between the team, the product and our customers at every phase of the project, so this is an integral component of the Agile process.
The key to success is using these practices throughout the development process. Doing so causes the percentage of errors or conflicts to greatly decrease as the project progresses. Early deployments and testing, along with constant communication, ensures that large issues are discovered and alleviated early on in the project.
Agile teams endeavor to deliver a new version of their working product as often as every two weeks, called sprints. The client can see and personally interact with their app multiple times before they “go live”. Too often going live is a nerve-wracking exercise, as the team’s success or failure will be determined by a single event. With a successful Agile approach, the final release at the end of the project is a much more positive and exciting occasion, because the continuous evaluations during the development process have removed most of the risk and uncertainty.
Since 2011, Timmons Group’s GIS division has used Agile principles to successfully deliver over 150 projects for our clients. Working in this way has become embedded in our team’s culture and has allowed us to build award winning applications while forming strong relationships with our clients.