We recognize and submit to the idea that software projects are sufficiently complex and require entire teams to navigate our way to success instead of expecting to predict success at the start of a project. Success is found by navigating the waters of software development through relationships, technical challenges, ideas, and mistakes. No two projects are the same, so teams should feel empowered to adjust the process as they see fit. We only ask that they retain the principles and share their results with the rest of Sparkbox.
As such, our guiding principles for navigating projects are:
- Limit surprises / Be transparent: We do everything in our power to eliminate surprises for our clients at all times in a project. Keeping an open, honest dialogue about positive and difficult subjects is the best way we’ve found to make projects successful.
- Small, frequent increments: Iterative delivery gives us the cues necessary to navigate early and often towards the most appropriate end.
- Shared responsibility: Our team members and our clients share in the success and failure of our project by being timely, sharing information, and supporting one another constructively.
When choosing tools to help our teams collaborate around work, we use the following principles as our guide:
- Be simple
- Be accessible
- Efficiently surface remaining work
To help counter the confusion that comes with using numerous tools and repositories for large projects, we find it's helpful to create a Project Hub (centralized repository of project information). This helps everyone access exactly what they need when they need it and can help as teammembers join the project.
Project Hubs help consolidate all the pertenent high-level project details in one spot.
No matter the tools, we aim to keep projects focused on goals, priorities, and removing barriers for the people doing the work and making decisions. We most often use GitHub to create user stories or other work that needs done as "Issues" to gather and communicate the scope of work that needs done in detail. We'll often use Zenhub to then provide estimates for the level of effort for those issues and to prioritize those same issues.
Kanban boards allow you to prioritize work to stay in ultimate control over the work that gets done and when it is done. It's a great way to view priorities and work iteratively.
Communication & Control
We estimate work early and do at least weekly transparent reality checks of budgets, timelines, and project health. We share those reality checks (typically via Basecamp with the whole team) and keep you on top of where things stand so that you can make smart decisions throughout the project. Using Zenhub and other kanban boards, while working hourly and giving frequent updates gives you ultimate control over proiritization and how your budget is spent.
Burndowns give a great visual view of project health.
We like to work in iterations, and can use your priorities to create appropriate milestones—and when we match up those issues with estimates, and milestones for a project, we get the power of burndown charts. We use all of these resources and tools to keep you updated on checkins/standup calls and walk through work/progress together. We get to a testing environment early to not only tell you the progress we've made, but actually show you and anyone else you want to see, the reality of where the project stands early and often.