m o t i o n l e s s
m o t i o n l se s
m o t i o n sle s
m o t i osn l e s
m o t i so n l e s
m o t si o n l e s
m ost i o n l e s
m so t i o n l e s sm o t i o n l e s s om t i o n l e s s o m t i no l e s s o m t ni o l e s s o m nt i o l e s s o m n t oi l e s s o m n oti l e s s o m n o t lie s s o m n o lt i e s s o m n o l it e s
I've been tracking my listening habits with last.fm since I was in high school. As I'm about to turn 30, it's nice to be able to look back on almost my entire adult life – to see how I've changed and how my tastes have changed with me.
In software development deadlines are a necessary evil. It is important to understand when they are necessary, and it is important to understand why they are evil.
Estimation: When estimating engineering work a substantial time investment is required by an engineer in order to get an accurate estimate.
Misaligned Incentives: There is an incentive to lie and give estimates much longer than the feature is truly expected to take.
Low Morale: Deadlines are likely to be missed often. Repeated failure has a cost to the morale of the team.
Micromanagement: Deadlines are wielded by middle managers as a whip to harass and annoy engineers working on features.
High Stress: When engineers feel the pressure of other stakeholders holding deadlines over their heads it creates an environment of high stress.
High Turnover: On teams with high turnover rates the best engineers have an easy time finding new work and leave quickly, the worst engineers have a difficult time finding work and remain. This selects for a lower quality team over time.
The resolution is simple. Never have internal deadlines. Operate on a prioritized and ordered list of features. Estimate only when necessary to prioritize and do so in a t-shirt sizing way. Trust your engineers and they will begin to love their work. Engineers who love their work are happy and productive.