1 – Short Deadlines
Short deadlines are an unfortunate reality of the IT world.
Do you know Steve Jobs‘ famous quote “customers don’t know what they want until we’ve shown them”?
Managers and clients often think they are doing the best by developing software very fast with unrealistic deadlines.
They think that developing software quickly is better than developing high quality software. They don’t know how disastrous this can be.
If you ask a doctor to perform your heart surgery in 10 minutes, do you think she would do it? If she does it, she could kill you. The same situation happens with us developers.
Managers and clients often set unrealistic timelines for software development projects. Usually this is motivated by the goal of a fast plan. Unfortunately, doing this often results in unnecessary stress for the developers and a fragile product that is full of bugs.
We MUST negotiate better with our managers and clients and show them that if we develop software with more quality, we won’t have bugs and maintenance will be easier. As commonly known, software changes all the time, so expansion will also be easier. If you didn’t already know, software maintenance is a company’s highest cost.
By creating a high quality software everyone wins.
2 – Extremely generic architecture
Your code can get very confusing if you design it by thinking about all the possibilities and build, for example, your logic model to fit all of them. Don’t design this kind of model, instead, design the solution thinking about your needs.
You can also develop your model thinking about the future, but don’t exaggerate on your decision by making your architecture too generic and unnecessarily complex.
3 – Lack of knowledge
Developers write bad code when they don’t know the basics, for example, of the framework’s API and the chances for developing bad code are extremely high. You don’t have to be a ninja programmer, but you DO have to know what tools you have available. You can avoid this issue by studying at least the basics to know what you can use to solve problems. Also, keep on reading the NoBugsProject for more problem solving tips.
If you know the basics, you will know there is something you can use for solving the problem and you will be able to search what you need on Google.
For sure, if you master the language, the best programming techniques and the framework you are using, your code will be better than if you just know the basics!
4 – Bad code design
We’ve all seen bad code – poorly designed classes, badly implemented architecture and substandard programming techniques.
Consider doing a more deep refactoring for changing the bad code design. Most of the times this code becomes a monster very difficult to understand if we don’t do this.
To avoid it, always write high quality code using the programming techniques you will be receiving here. Think very carefully about your code design!
5 – Fixing bad code
Most developers fix bad code in a way that solves the immediate problem, but doesn’t take into account legibility.
This method can be problematic because the bad code still exists and can reappear elsewhere.
To avoid this, rewrite the code with the goals of:
– more cohesion, just one responsibility by method
– low coupling, separate code by classes and methods
– use method refactoring shortcut on your IDE, select the code you think can be a method and let the IDE extract it for you
That were the 5 great problems you will face on your developer’s career, use the techniques you learned and become the developer every company want to have working!
Keep up the good work!
Follow me on Twitter to learn more great programming techniques. I will be sending a new one each week!
Get the free E-Book:
Remember, practicing these techniques will make you an even greater developer!