If you have been around any software development since the 1970’s, there is a good chance you have heard of Agile Methodology. From very large companies, such as IBM, to businesses with only 2 or 3 individuals, Agile has become one of the most common and effective methods for developing and delivering software solutions to customers.
At CloudMyBiz, we also use the Agile process to run our Salesforce development and implementations. From the beginning, we have found that Agile not only makes the most sense from an internal perspective but that it helps us deliver the best possible results for our clients.
However, not all of our clients are immediately knowledgeable or familiar with Agile when they begin speaking to us. So, in this post, we will be giving a quick overview of Agile, shine a little more light onto how we use it at CloudMyBiz, and then talk about how it helps us deliver high-quality results to our clients.
Agile vs. Traditional Development
Agile is basically a methodology and project management concept for software development. There is no single definition of what the Agile process is, rather, Agile is an umbrella under which many different methods live. Some of the various Agile Methods include Kanban, Scrum, XP, Crystal, and more!
Traditional project development can be thought of like a waterfall. It requires a thorough plan from the beginning, (which can take a lot of time) and then the different parts are developed from the top down. Which this process can deliver quality results, it has enough drawbacks that people began looking for new solutions.
Agile was a reaction to the traditional method, which developers realized was in-efficient, wasted resources and after all of the effort, didn’t always deliver the needed results.
As the name suggests, Agile methods allow developers to respond quickly to changing circumstances or new requirements. Rather than running from the top down, Agile processes allow for a fluid development, often based on levels of priority, and allowing for constant re-evaluation of how the project is doing and where it is going along the way.
What are some of the benefits and characteristics of using Agile?
- Projects are completed faster than traditional development
- Stakeholders and clients are actively involved, which helps ensure satisfactory results
- Agile helps us develop the right product – and not be handcuffed to a project that won’t deliver the needed results
- Project costs are predictable and can be regularly assessed or modified.
- Results in higher quality results
- Ongoing development and change allows the project to continue to evolve and meet whatever new requirements may arise
- Agile creates transparency that holds all peers accountable for their actions.
- The agile hierarchy is based on competence, not authority
Agile at CloudMyBiz
CloudMyBiz follows an Agile process that entails identifying high-level requirements and then prioritizing and defining these. We work on short “sprint” cycles, where developers are assigned work to be completed each week, with each week’s output adding up to key project milestones.
As mentioned above, there are many management practices that fall under the umbrella of Agile. At CloudMyBiz, we primarily use two of these, Kanban and Scrum.
Kanban is primarily a way of organizing, visualizing and prioritizing what work is being done, and when. Kanban is always done on a ‘board’, either virtual or physical. Kanban boards are generally divided into 3 sections, “to-do”, “in progress” and “done”.
Each task that needs to be done will be placed into one of these divisions, allowing us to manage the entire project in this way. By being able to visualize everything in the scope of the project, we are able to prioritize what needs to be done and have an overall sense of where things are.
One of the best things here is that it helps us limit how much work we are doing at any one time – so nobody gets overwhelmed, and so work doesn’t fall through the cracks. Once a task is done, we simply can move on to the next one.
While the Kanban boards we use in our development projects are generally much more complex than the example above, the foundational principle remains the same no matter how complex and organized you make your divisions and tasks.
Scrum is where we get our practice of using sprints to divide and organize what is being done at all times. Sprints often range from 1 week to 1 month, depending on the project.
At the beginning of each sprint, our team sits down, discusses what was done in the previous sprint, what needs to be done in the next sprint (based on what is remaining “to-do”), and how we are going to go about it. Once roles are assigned and everyone knows what needs to be done, the team is able to break and get into their individual projects.
The Scrum process has a few major benefits:
- It streamlines the project management process
- It ensures everyone has something to do
- It allows us to regularly evaluate what has been done, and make any changes to the scope or content of the project
- The entire project gets done fast!
So there you have it. While no two projects are ever identical, we have found that the combination of Agile methodologies, talented team members and a dedication to providing quality solutions has been our recipe for success!
-Ryan and the CloudMyBiz Team