After nearly 10 years of programming, I found some interesting and common lies told by developers. We unconsciously tell these lies to others or even to ourselves.
If you are a manager, product owner, girlfriend, or any other role who will cooperate with a developer, keep an eye!
Figure 1: source https://unsplash.com/@reskp
TODO seems vital for some development processes.
Simply, TODO means something important but not urgent will be completed some days later, such as adding comments for code, handling exceptions, refactoring, etc.
Sadly, in most cases, TODO means we won’t do it forever.
The Linux codebase currently has over 4k TODO comments, many of them from over a decade ago, and the average age of a TODO is 7 years!
Figure 2: source from tickgit.com
Could you please use a similar Shell command to count how many TODO in your projects?
find ./ -name *.js | xargs grep TODO | wc -l
And you may surprise by the result.
Figure 3: source tenor.com
Product owners and engineering managers aren’t usually working with the codebase, so they might not see TODO comments, but they need to be aware of the debt they represent.
Too many TODO means too much of technical debt, it’s considered harmful by some reasons. As a developer, we should take some time to clean up TODO periodically. imdone.io is an effective way to tracking your TODO in practice, it will show your TODO comments in a kanban board.
I can’t do this
Did you reject some requirements from the product owner?
Figure 4: source tenor.com
This seems to be the mantra of some programmers.
But the funny thing is:
- When they say “this can’t be done”, it usually means they do not want to do it because they don’t agree with the requirement, or they think it’s too onerous, time-consuming and worthless.
- When they say “this is very simple”, they often delay.
If a manager has no technical background, then God Bless him.
I’m almost done
- Manager: Will we ready for the next release on Friday?
- Developer: I’m almost done, this is the last Bug…
Figure 5: source tenor.com
In most cases,
almost done means another delay. Remember when they fix
the last bug they have the potential to introduce two more bugs.
On average, developers underestimate their work by a factor of 2. Keep an eye on the promises given in the spoken word. Such as these:
- Please give me a moment.
- I will fix it soon.
- This is easy.
This is a temporary solution
Figure 6: source tenor.com
There are many trade-offs in software development. When a temporary solution is implemented, it usually becomes a permanent solution.
This is because we may add more code based on this temporary solution, and eventually find that moving the temporary solution to a better one would take too much time for us to afford.
Figure 7: source tenor.com
- GF: Hey honey, Can we go to the movies this afternoon?
- Developer: Oh, sorry, I’m currently busy with the next release.
It’s a common lie that probably everyone could tell, but it’s much more natural for a developer.
Because a non-technical person wouldn’t know what exactly they’re doing on the screen.
They could be playing a game or watching a short Youtube video, they can not stop. If you approach them, they just use the Command-Tab key to move to the IDE and pretend they’re coding.
Of course, above listed lies are mainly for fun.
But in reality, some of them are communication tactics commonly used by developers.
Another truth is most young developers can not accurately handle the workload, or underestimated the difficulties involved in software development, which resulting in frequent delays.
This is what we developers need to improve.
Figure 8: source tenor.com
Hope you enjoy it.