While these are not hard fast rules (and the Rule of Specificity applies), we try and approach all of our work through these practices. If we’re ever not doing one of them, we’re doing so very intentionally and with a solid reason for that specific client or project. We don’t need to do them all the time in every situation, but they ought to be present at least sometimes in almost all of our work.
For example, we likely will pair some of the time, not all of the time. And we likely will unit test some of the things, not all of the things. And oftentimes it will make sense to build and deploy a feature without doing user testing in advance because it’s cheap and easy to do so and we strongly believe it will be successful.
These are the default.
We start from here.
- Test-Driven DevelopmentWe have programmatic confidence & programmatically executable documentation in our code. We use TDD to achieve this and to positively influence design.
- PairingWe pair to share knowledge, maintain deep focus, increase code quality & discipline, maintain momentum, onboard team members, interview, and mutually level up.
- User ResearchWe get out of the building and talk to users.
- RetrosWe iteratively evaluate and modify the meta of our process during engagements.
- BacklogWe maintain a force-ranked list of things that generate business value and keep a record of the lifecycle of those things.
- RoadmapWe maintain a high-level, executive-facing roadmap broadly outlining our plan and our progress.
- UpdatesWe provide daily or weekly updates to stakeholders.
- Infrastructure AutomationWe programmatically deploy our software via CI/CD pipelines.
This is just a start. We will apply these along with other practices and criteria to each engagement, team, and product. Some of which we’re aware of, some of which we have yet to discover. I expect each Craft will go much deeper into the state-of-the-art defaults; and that those will change over time. But hopefully, this provides a good set of fundamentals, and I expect that these will remain relevant for a long time.
- Ross Hale, CEO at Artium