Let’s be honest with each other, shall we? Most of us – at least I hope most of us – consider ourselves honest people. We don’t purposely lie or mislead people. But we are developers, and as developers, sometimes ego and enthusiasm get in the way. As developers, most of us are optimists. We look at a problem and say “yeah, I can solve that”. Most of the time, we are right, we can solve that, but not usually in the timeframe we originally estimate.
How long will it take you?
As developers, we see projects not as a job that must be done, but as art that can be created, as a project that needs to be crafted. It’s not a spreadsheet of numbers to us, it’s a sketch on a napkin of something we want to build. As such, we see the big picture, but miss the details. So when we tell a customer/client/family member “Yeah, I can build that this weekend”. In our mind, we mean it. We honestly think the project is simple enough to be built in a weekend. It rarely is though.
I worked with one professional services company that even though they had professional developers estimating their projects, their average estimate was +/-100% of actual. It wasn’t because they were bad developers, and it wasn’t that they were liars. It wasn’t that they wanted the job so bad that they overpromised and underdelivered either. The problem they had was that they looked at their projects wrong. They looked at the big picture, saw the framework they had to put up and even fleshed it out a bit. But they refused to dig down into the project. To ask additional questions, the break tasks down into small enough tasks so that they could be fully understood. because until you do that, you can’t give an honest estimate of how long it will take.
Can you really do it?
A professional developer can also tell if a project is above their skill level. We’ve all done it, we tell someone “I can build that” when what we really mean is “I want to learn how to build that and this project seems as good as any to learn on”.
That’s not always a bad thing, as long as you are honest with the person you are talking to. If this is your own personal project, sure, why not, you are only answering to yourself. If it’s for a family member (and is unpaid) then yeah, it’s probably ok, but I’d still let them know. If it’s for a customer/client/family member/boss, you owe it to them to let them know that you are using this as a learning opportunity.
When will you be done?
Finally, a professional developer is honest about the amount of time they have to dedicate to a project. Remember Clock time !=Calendar time It’s not enough to say “This project will take 2 weeks” if you have other projects you are working on in those two weeks. Make sure you tell your customer/client/family member/boss/neighbor how many hours it will take to accomplish the task, and how long it will take you to slot those hours into your schedule.
Professional developers are honest.
- Honest about how long something will take
- Honest about their skill levels
- Honest about how much time they can devote to a project.
Be honest with your customer/client/family member/boss/neighbor/significant other, but more importantly, be honest with yourself.
Until next time,
I <3 |<