What does it mean when we say that developers spend most of their time figuring the system out?
Why is it important?
And how else could we look at this problem?
You probably need to do fewer things right now. Prioritization, the other definition There’s two loose definitions of prioritization. Prioritization(1): Ordering a todo list. You make a giant list of things you could do, things you should do, things you’d like to do… and then you put a unique number...
As a Director of Engineering, I have monthly 1:1s with all of my direct reports. A 1:1 (one-on-one) is a recurring meeting with no set agenda between a manager and one of their reports. The internet is full of valuable insight into how to run them from my perspective, (ex. The Update, The Vent, and The Disaster) but somewhat more limited in advice on how to make the most of them if you’re on the other side of the table.
In another case of military metrics gone wrong, the US military reported success in undermining Taliban financing after it paid Afghan farmers to destroy their crops of opium poppies. What went unreported, however, was that the farmers planted larger fields of opium poppies in response, in the hopes that they might be paid by the US military to destroy the crops again. When US payments didn’t come through, the opium was harvested and entered the international drug trade. Much of the ...
At large company B (LCB), ICs agreed that it's problematic to reward creating new features more richly than doing critical grunt work. When I talked to managers, they often agreed, too. But nevertheless, the people who get promoted are disproportionately those who ship shiny new things. I saw management attempt a number of cultural and process changes at LCB. Mostly, those took the form of pronouncements from people with fancy titles. For really important things, they might produce a...
Co-authored with Dr Paidi O'Raghallaigh and Dr Stephen McCarthy at Cork University Business School as part of my PhD studies, and originally published by Cutter Consortium’s Business Agility & Software Engineering Excellence practice on 22nd of July 2021 Take a minute and write an answer to the question, “What is technical debt?” Then read this…
Standardizing on a given platform or technology is one of the most powerful ways to create leverage within a company: improve the tooling a bit and every engineer will get more productive. Exploration is, in the long run, an even more powerful force, with successes compounding over time. Developing an investment thesis to balance the ratios and timing of standardization and exploration is a core challenge of engineering strategy.
A good philosophy to live by at work is to “always be quitting”. No, don’t be constantly thinking of leaving your job 😱. But act as if you might leave on short notice 😎. Counterintuitively, this will make you a better engineer and open up growth opportunities. A thread 👇.
For varying levels of seniority, from senior, to staff, and beyond.. “An incomplete list of skills senior engineers need, beyond coding” is published by Camille Fournier.
As a caveat, the system fix is to hire net-new people, increasing the overall capacity of the company. Sometimes folks instead attempt to capture more resources from existing company, and I’m pretty negative on that. People are not fungible, and generally folks end up in useful places, so I’m skeptical of reassigning existing folks to drive optimality. By nature, it’s also impossible for this kind of discussion to not become political, even when everyone involved has deep trust and r...
In my experience, most professional software engineers in industry have little to no experience doing competitive analysis. That’s a shame, because competitive analysis is one of the most useful skills that an engineer can have.