As the Director of Development at BitLoft, I’m proud of the results my team delivers for customer projects. But what I’m even more thrilled about is the repeatable process, culture, and team we’ve built that gives me the confidence to know that whatever comes next, we’re ready for it. Even though there will always be those occasional time crunches and late nights that come with working in a high-growth business, implementing a hybrid of agile software development methodologies and the Scrum framework has been a game-changer for our development team and brought process and sanity to how we tackle complex development needs.
What Is Agile Methodology?
Agile is a buzz word in the software development world — but with good reason. It’s a different way to tackle development work, and it helps developers not only to get things done, but get the right things done in the correct order.
Agile is a set of guidelines that ease some of the pain of creating complex coding solutions with changing priorities, ideas, and unknowns. The Agile Manifesto helps guide teams through the development process with its twelve simple principles on the immutable truths of software development. Essentially, the manifesto encourages developers to embrace people, interactions, customer collaboration, and change.
But, how can you give a time or cost estimate on a project that values responding to change over following a plan? At BitLoft, our answer was to also leverage Scrum…or a flavor of it, because, really, who follows the recipe to the letter?
What Is Scrum?
Scrum is a framework that focuses on fast, iterative software development with self-organizing teams. Scrum is well-defined and documented, but in a nutshell, the development team works on a chosen set of tasks in a defined block of time known as a sprint. At the end of each sprint, the team delivers high-value, functioning code.
Scrum defines roles for the project, such as Scrum Master and Product Owner. The Scrum Master keeps the project on track, and the Product Owner works with stakeholders to negotiate the priority of outcomes and deliverables. The Product Owner also works with the development team to ensure the right things are being built in the right order.
How Does BitLoft Use Agile and Scrum?
When I joined the BitLoft dev team in 2017, we were working hard but not always moving forward. Even worse, we were regularly staying up until 3 am to hit deadlines. This craziness existed mostly because we didn’t have a tool or process in place to show all of the projects that we were working on and what our priorities should be. In the middle of one project, priorities would frequently shift so that we’d have to work on something else, and meanwhile the cost of that change (in terms of project completeness, efficiency, and job satisfaction) went undefined.
It was a huge problem, and it needed fixing.
A few of us finally decided enough was enough, and we began researching effective project management techniques, along with leveraging our past experiences to evaluate what really works. This led to a company-wide Scrum training day with Jeff McKenna, one of the original designers of the Scrum methodology.
Our training was a great experience and got everyone familiar with the concepts and purpose behind agile software development methodologies and the Scrum framework of implementing it. Jeff explained the framework in a hands-on, multi-day training workshop, from the big picture down to the specific goals of the roles, meetings, and methods. We all left with Scrum Guides in our pockets and high hopes for changing the company for the better.
With all this in mind, we have experimented over the last couple of years with the meeting times and cadence, regularly evaluating our methods to ensure that they were working for us. Here are some of the key Scrum techniques, along with our own tweaks and improvements to them:
Currently, the dev team works in two-week sprints with daily stand-ups in the morning. Sprints begin and end on Wednesday afternoons with a meeting to review the sprint and then kick off a new one.
We use a product backlog, which basically is a fancy name for a to-do list for the project. On Fridays, we have a backlog grooming session where the team looks at the incoming work and makes sure there is enough information to complete the task as well as working together to assign points to the tasks. If the task is too large, we break it into multiple tasks and start the process over.
The backlog is simply a list of tasks or product features, prioritized by Product Owners, for the development team to complete. The points are numbers that are assigned by the team to describe how complex the task is. If the point value is above a certain threshold, our rule is that it needs to be broken up into smaller, more manageable tasks. Over time, we’ve discovered approximately how many points we can consistently fit in a two-week sprint, a Scrum concept known as the team’s velocity. This enables us to give management a confident estimate of how much work we’re going to accomplish and when we should look at bringing on more developers.
The team has also reduced the number of meetings to about half of what Scrum prescribes, and we’re able to complete all planning and prioritization more efficiently. Part of our sprint retrospective meeting is the evaluation of our process for improvement. This is key to ensuring team buy-in and a healthy work environment.
BitLoft maintains a constantly improving Scrum-like development framework, and it has led to increases in team performance, planning, prioritization, and even hiring. We’re ready for ever more complicated and challenging development needs, because we have not only the talent but a process that is fine-tuned to deliver outcomes to our customers.
Ready to start developing your new website, mobile app, or game? Contact Us to find out how we can help.