What I believe about software and the teams who build it
This is b.s.
Long term, you get all 3 or you get none
Software systems have cumulative complexity
So software teams must focus on ratcheting productivity
Velocity is the wrong metric
Acceleration is what actually matters
Why?
Process may get you velocity
but...
Culture gets you acceleration
How do you build an accelerating software team?
Mission-driven
Intellectually curious
Trusted
Mission-driven
Engineers who understand, care about, and legitimately drive the business generate more value, more quickly
Business understanding and unity of purpose allows individual engineers to make decisions without being told what to do
Intellectually curious
Surface-level solutions crumble in the face of a changing business and growing engineering team
Engineering for acceleration requires mastering abstraction
Serendipitous connections between disparate verticals yield the highest-impact ideas
Trusted
Engineers need to be captains of their own time
Having established a shared vision and provided the right context, engineers are the ones best-positioned to prioritize
Operating Model
Do what's right
Survive
Win in the long run
We don't compromise on integrity
Compliance matters, building systems the right way matters, doing the right thing for customers matters
There will come a point when we will have to compromise a short-term business win to maintain our integrity. We will do it and our team will never forget it.
We survive
We strive to build elegant systems with abstractions that enable acceleration
That couldn't matter less if our company ceases to exist or the opportunity disappears before that acceleration is realized
We do whatever it takes to survive except compromise our integrity
We win in the long run
Every organization pays lip service to long term value; actions reveal what's really important
Whenever it doesn't jeopardize survival and it doesn't run afoul of doing the right thing, we build the long-term correct solution
Operational teams should run operations; engineering teams should build general platforms
Engineering Values
A great engineer is curious, skeptical, meticulous, and precise while architecting and designing
A great engineer is curious, a great storyteller, elegant, and, above all, practical while coding
A great engineer has impeccable judgement
A great engineer has mastery of abstraction
A great engineer is a fantastic debugger
A great engineer understandsthat the only valid measures of success are functions exclusively of what users can experience
A great engineer has an inclination towards storytelling, teaching, and egoless debate
A great engineer is passionate about something and focuses on the business and the customer
Hiring
Hire for potential
Raw intelligence is table stakes
Past experience and knowledge are useful only as indicators of future capabilities and tendencies
Hire generalists who have the requisite mental horsepower and innate drive to learn to allow them to specialize in new areas as needed
What should interviews look like?
Customize the interview to the candidate; dig into past projects, demonstrated passions, or prior teams
Tweak past situations to uncover the reasoning and motivations behind decisions and actions
Managing
A great manager...
Challenges
Supports
Mentors
Protects
Leads from the front
Set an example, share a vision, and make your team aspire to reach it
Managing rapid growth
Central dichotomy: deep ownership but quick to relinquish past work
Handoffs must be proud moments
Building for acceleration means that doing your job implies that the next hire has an easier time generating value than you did
Always tie it back to the business vision, business progress, each individual's impact, and the team's impact
Structuring Organizations
Building for acceleration means accepting fluid org charts
Balancing impact visibility with agility
Tightly mission-oriented teams can easily measure their impact
Great storytellers as leaders can compensate for less rigidly-defined team missions
Teams should shift as platforms are uncovered, business needs shift, and resources enable temporary specialization