Everyone remembers (usually from experience) the most common mistakes made by novice developers. Missing code lines. Inconsistencies. We’ve all experienced them in one way or another. But what about the bigger mistakes? The ones made by even expert developers? These errors are less often found within the code itself, but in the strategy of project management and career trajectory.
Let’s take a look at and learn from some of the most common mistakes made by even expert developers:
1) Forgetting the Business Side of Development
As expert developers continue to advance in their field, they become more and more entrenched in the technical layer of software development. As a result, it’s all too easy to become completely estranged from the business end of development. While some highly technical engineers argue that the business end is “not their job” or “just not their thing,” the truth is that 99% of the time, the client is a business person. The business end of development—marketing, scalability, and management—needs to be of prime interest to developers who want long-term success in their field.
2) Poor Communications
For those with the technical mind of a developer, communication can be difficult. Yet regularly communicating where you are in the coding process and participating in teams is an essential part of the development process. Whether it’s forgetting to communicate altogether or failing to effectively explain processes, communication is a real struggle even for expert developers. In fact, it sometimes seems the more senior a developer is, the more they struggle with communicating advanced areas of their craft with laymen clients.
3) Inaccurate Time Estimations
It’s no secret that developers hate estimating time for clients. With the number of variables that go into how long a project will take, it can feel paralyzing to give an accurate estimate. If your estimate is too optimistic, the client may try to hold you to an impossible standard. Yet if you overestimate, you risk losing the bid to a competitor who can get the job done in less time. Even so, accurate time estimations are essential to the business side of software development. Developers who fail to set a reliable estimation process and stick with it sell themselves short in the long run.
4) Forgetting Details in Estimates
A major factor contributing to inaccurate time estimations is leaving out time-consuming detail components in the overall time estimate. This is particularly true of “waiting time,” or time in which a developer isn’t necessarily hands on with a project, but there is a delay all the same (testing or processing time, for example). As you give estimates to project managers and clients, be sure to break down the job into each and every component part to account for all of your time.
5) Excessive Multi-Tasking
Multi-tasking is a buzzword that project managers love to hear. They think it means they can get more work out of developers in less time and that productivity will improve. But while touting your ability to “multi-task” may be useful in a job interview, the reality of trying to juggle too many things at once is likely to impede both your workflow and the quality of your output in the long run.
Studies show that focusing on a single task from start to finish is the optimal method for speed and accuracy in task completion. Even expert developers are likely to make novice errors if they are constantly reorienting between different tasks.
6) Committing to a Single OS or Programming Language
Every developer under the sun has a favorite operating system and a favorite programming language. Most, when provoked, will emphatically argue the pros of their personal choice. That’s all well and good, but keep in mind that not every project is going to be built under the same OS or using the same language. Different systems are designed for different purposes. Developers do themselves a disservice when they pledge loyalty to a single OS or language to the exclusion of all others. Eventually there will come a point where lacking skills outside of your favorite genre will cause you to miss out on opportunities. So have your favorites, but take the time to learn the others, too.
7) Undervaluing SEO
This category applies specifically to web developers, but is significant all the same. Like it or not, SEO is a huge component of a successful website—and it is more complicated than developers like to assume. An accurate and current understanding of how search engines index the web is paramount to creating a website that will be search engine friendly, and the process should begin as early as the site’s basic architecture. If you’re not well versed in SEO, take significant time to do your research or consult an expert to optimize the performance of your projects.
8) Not Considering Scale
In the current development market, speed is king. There is high pressure to get a minimum viable product on the market as soon as possible to compete with a constantly innovating industry. The problem with this sprint development pace is that programming is written in a way that is not prepared to scale if the application’s popularity grows. Expert developers would be wise to resist the pressure for speed (to a certain degree) and prepare for the eventual scalability issue, preparing for the eventuality that the coding would need to be rewritten for processing that can meet the increasing demand.
9) Overengineering Products
Expert developers, eager to flex their programming muscles, are famous for making projects more complicated than they need to be. While expertise is a wonderful thing and can ensure that a product is created to its best possible potential, over-engineering simply for its own sake can backfire in the long-run. Introducing too many frameworks into a product or infinite layers of coding can make handing off a project for maintenance nearly impossible, not to mention adding unnecessary time to the project estimate.
10) Underestimating the New Guy
Senior developers tend to wear their expertise like a badge of honor, as well they should. They won the title through hard earned effort and experience. But it’s important that senior developers keep an open mind for what they may learn from their junior counterparts. What novice developers lack in experience, they make up for in enthusiasm and fresh ideas. So resist the urge to be jaded against these young newbies. Teach them what you know, and be open to what they have to contribute.
Have you been guilty of any of these mistakes? What other misguided choices have you often seen from expert developers? Share your thoughts with us in the comments below!