-
Software engineering has "Diseconomies of Scale" - the more developers you add to a team, the less output you will get per team member. The co-ordination overhead is dramatically under appreciated, even on small teams.
-
At the same time, the amount of software that a single developer can produce today has risen dramatically in recent years, driven by libraries, patterns, and AI-assisted tools. Put simply, with the right guidance and the right attitude, a well equipped developer can produce 4 to 5x more output than the average developer with the same level of industry experience - this is not an exaggeration.
-
This phenomenon is now becoming more widely known, and DHH (The creator of the technology that powers huge applications like Shopify) has referred to these kinds of developers as "Renaissance Developers"
-
At Really Good Software, most of our projects are run by teams of one or pods of two. This approach is atypical for the industry, but works remarkably well. Some of the things we do
-
AI Tooling: Our developers use Github Co Pilot and ChatGPT as a way to substantially increase their speed of output when working on new features.
-
Pattern Libraries: As well as our in-house libraries - static tailwind and mini js, we have a large collection of patterns that we deploy for common UI patterns (modals, tooltips, tabs etc).
-
Training: All incoming Tonic developers are trained on the above patterns from day one after starting here.
-
Complexity Reduction: We've spent a lot of time seeking out, and removing incidental complexity across our stack, in tooling and codebases, leaving only Essential Complexity.
-
Shortened feedback loops (a daily demo call), paired with remote development, remove the black box phenomenon ("It's implemented on my computer but not merged yet") and delayed feedback phenomenon ("I was waiting for feedback on X before continuing").
-
-