Civalgo Development Methodology
Numerous software development team organization methods exist, and studying them is both captivating and vital for my CTO role at Civalgo. I've come across traditional approaches like Scrum, Kanban, and Waterfall (which I find underrated with intriguing concepts like phase gates), as well as unconventional, inspiring methods like Spotify Squad Framework and Linear method.
Civalgo initially implemented Michael Seibel's (Y Combinator partner) methodology, used during Twitch's founding, before transitioning to our current method, Shape Up.
Shape Up's core principles are:
1️. Shaping: Product managers and stakeholders define rough boundaries, goals, and constraints instead of detailed specifications, guiding the team without prescribing solutions.
2. Bets: Project ideas are treated as "bets" within a six-week time frame, focusing on the most valuable projects. This is followed by a two-week "cool-down" period.
3. Fixed timeline over a fixed scope: Shape Up methodology emphasizes the use of a fixed timeline over a fixed scope for projects, allowing better control over the development process and preventing projects from dragging on indefinitely. Teams commit to a specific time frame (e.g., 6 weeks) and adjust the project's scope, including features and requirements, as needed during the development cycle. This approach facilitates prioritization, focus on crucial aspects, and adaptability based on feedback and real-world use cases. By using a fixed timeline, teams can set realistic expectations, maintain a sustainable pace of work, and foster better decision-making and prioritization.
4. No backlogs: Shape Up avoids long backlogs and encourages continuous evaluation of new ideas and opportunities, only shaping and betting on the most important projects.
5. Teams: Cross-functional teams collaborate on a single project for the entire cycle, promoting shared ownership and focus.
6. Breadboarding and wireframing: Visual artifacts communicate project goals and constraints, ensuring a shared understanding among team members.
Shape Up optimizes development by reducing waste, fostering collaboration, and promoting flexible decision-making. It balances planning and execution, enabling efficient software delivery.
After a few iterations, we adapted our process by introducing a rotating "support team" that focused on bugs and quick wins while other teams worked on substantial shapes. This improved our process significantly.
If you have any thoughts on our current approach or know of other intriguing development methodologies, please don't hesitate to share them in the comments. Let's learn from each other and continue to grow as professionals in the software development field.