You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Instantly share code, notes, and snippets.
🌴
Mentoring software developers @ principal.dev
Eduards Sizovs
sizovs
🌴
Mentoring software developers @ principal.dev
dev, architect, ex-CTO, 15+ years of experience, growing world-class engineering leaders via https://principal.dev masterclass.
The Economics of Software Design or The Well-Balanced Programmer
I want to have one of these talks again because our new (online) audience is not familiar with them, and both talks are among the most highly rated at DevTernity. So the question is, which talk makes you feel more enthusiastic?
Revisted talk "X More Ineffective Coding Habits of Many Programmers". In one of your interviews, you mentioned that you do a lot of code reviews. I'm sure you've noticed recurring code smells. I am also sure our audience is not immune from them. If you could compile a list of "the worst habits" and provide solutions, the attendees would be happy.
You pay a lot of attention to words and language. I've watched all your talks, and whenever you show the code, it "speaks for itself," and has a high signal-vs-noise ratio. A talk that shows developers how to write code that speaks human/domain language and gives a good reason for doing so can make developers rethink how they see and write code.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
I see that the conversation has taken an emotional direction, so I'll try to get it back on track, hoping that logic and love will win:
1️⃣ The original statement of the author is: "Software development isn't like building a house. The effort, uncertainty, and risks are the main particles of it!"
2️⃣ My response: "Contrasting software development vs. construction to emphasize the extreme difference in the effort, uncertainty, and risk is a delusion. It's plain wrong."
❌ Velocity is not a sum of individual work hours multiplied by work days:
3x full-time engineers = 240 hours of work (40h x 3ppl x 2-week sprint).
Because Velocity must account for for meetings, interruptions, onboarding, rework, waiting, handoffs, uncertainty, productivity fluctuations, pair programming, it's impossible to calculate it in advance by just counting heads.
✅ Velocity is determined empirically, by running a number of sprints, and then seeing how much the team can actually accomplish. Comfortably, without cutting corners, on Wednesday or Thursday. Not on Friday 6pm.
💥 Velocity determined by counting individual hours is a recipe for disaster. Empiritally determined team's velocity will always be less than total work hours. And because velocity is less than sum of individual work hours, that leads to conflict, pressure, and micro-management.
The idea of "Behind every request, there is an unsatisfied need" comes from the Nonviolent Communication book by Marshall Rosenberg. It's the best communication book ever written and it has helped me understand people better, and build the family I always dreamed of.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters