How Sourcetoad Values People Over Process
The software development process can involve a lot of uncertainty for both development teams and clients alike, especially in the early phases of a project. How can the long-term vision of an application be balanced with immediate needs of the client? And what blockers may prevent us from reaching our immediate and future goals? At Sourcetoad, we use the Agile approach to software development because it allows us to adapt quickly to uncertainty while delivering working software in predictable increments. In fact, the word “Agile” was chosen to describe this methodology because it best represents the adaptability in response to change that is at the heart of this approach. Since change and uncertainty are inevitable, the Agile approach helps us create a predictive delivery system organized around flexibility and adaptability.
Rather than being a prescriptive list of dos and don’ts, Agile is an umbrella term for the practices and frameworks that are guided by the Agile Manifesto and the 12 Principles behind it. The value statements that make up the Agile Manifesto were written to help guide decision making in complex situations. Using these value statements, our teams can better decide how to adapt to uncertainty and efficiently resolve unexpected problems—all while delighting our clients through a constantly improving software experience.
Today, we will discuss how Sourcetoad practices the first tenet of the Agile Manifesto: Individuals and interactions over processes and tools. While there is value in processes and tools, Agile environments place more value on the individuals. By empowering the people who are doing the work, we aim to foster a highly collaborative and adaptive environment. Not only do solutions emerge more quickly in collaborative environments, but we believe better, more innovative solutions come from empowered teams.
Scrum and Self-Organizing Teams
So how does Agile’s first value statement look in practice? At Sourcetoad, we use the Scrum framework, which is a toolkit and set of guidelines to help our software teams practice the values of Agile. In Scrum, teams are small, cross-functional, and self-organizing. Rather than working in a rigid hierarchy where work is delegated and highly micromanaged, our product managers strategize with clients what work will be prioritized and make sure teams have what they need, then step back to allow individual team members to decide which tasks they will each take on to deliver the product. By building projects in a supportive, team-centric environment, we seek to empower each team member to do their best work.
Each of our teams are composed of developers, a Product Manager, and a Scrum Master. Developers on each team have collective expertise in all facets of software development, including backend, frontend, architecture, databases, and quality assurance. Product Managers are the liaisons between the development team and the client, and they work to ensure the product vision is realized and development is on track to deliver the most value to the client. Scrum Masters serve as facilitators, making sure teams have what they need while continuously working to improve our processes. Together, our teams have complete skill sets needed to create software—from the initial design all the way to implementation.
Daily Meetings and Frequent Communication
Our self-organizing teams hold brief check-in meetings every business day called “Daily Stand-Ups” to communicate on the status of their work. While this may seem like overkill to non-Agile organizations, internal daily stand-up meetings are very important to how Sourcetoad operates. A highly-collaborative environment ensures our teams remain nimble in the face of a constantly changing landscape. Because solutions to problems emerge more quickly in a group setting, tactics such as developer “pair programming” and situational “swarming” help our cross-functional teams prevent bottlenecks and resolve potential delays.
At Sourcetoad, we value collaboration so much that it’s one of our company values! We believe that working closely with great team members inspires us to be the best versions of ourselves. We also believe that collaboration with our clients is just as vital within our own teams. Through frequent communication with our clients during each step of the development journey, we seek to remain transparent about the work being done while giving opportunities for feedback at every step in the process. We become true partners to our clients, and we measure our own success through the successes of our clients’ visions. By following the first tenet of the Agile manifesto, Sourcetoad aims to create an environment of highly motivated team members who care deeply about the work we do.