3 ms·
Great list. Ten years in, I have to say I completely disagree with #6 though. My 2c, never give estimates. They are a trap. As a developer, if you give an esti
by vegetablepotpie 3y ago
Great list. Ten years in, I have to say I completely disagree with #6 though. My 2c, never give estimates. They are a trap.
As a developer, if you give an estimate, it will be questioned, second guessed, and then negotiated down to 1/3rd of its former self. Then when you do the work, it always takes twice as long as your original estimate. The whole dance of estimation only succeeds to indoctrinate developers into the political environment of the organization, it turns developers into mini-managers over their own time and perturbs their productivity.
Software engineering as a discipline has to move away from developer estimates. If you’re articulating the work that needs to be done, estimating the work, then doing the work, the only function of your boss is to report on your execution. The demand for developer estimates are a consequence of managers trying to turn themselves into highly paid messengers with no skin in the game. I’ve seen what that does to developers: late hours and weekend work, horrible diet, stress, weight gain, divorces, it’s ugly stuff. Don’t let it happen to you.
Have your boss make the estimates. They have access to resources you do not have. They can look at past performance on similar projects, they can look at actuals. That’s their job. They need to do it.
If they ask you for an estimate, “how long would it take to do x?” never start by saying “it would take about …”. Ask a question, something like “what do you mean by x?” Or “have you considered y, is that something we should be concerned about?” etc. keep doing that until you’ve gotten your boss to the edge of their knowledge. How they react will be telling. You end up providing more value in the long run because instead of giving your leadership a false sense of security, you’ll be educating them about execution risk and setting your projects up for success by setting up future conversations to be constructive. If you do fall behind, you have ammunition to fall back on in meetings “last month I asked about x, because I was concerned, and now that concern has come up.”