In software development, it is really important to recognize what classic mistakes are in order to be able to face them. Here we dive into the most common mistakes made and how they affect our daily tasks.
It is really common to find the “software development best practices” or “how to deliver a good quality software” article. In this case, I would like to introduce you to some of the most common mistakes in the software industry.
We need to understand our enemies in order to know how to defeat them, in the same way it is really important to know what the classic mistakes are in order to face them. Avoiding them does not guarantee fast development, but making them ensures slower development.
What are they and why are they so important?
We could define a classic mistake as a mistake that is often made by many people, turning out in a predictable bad result that is hard to avoid.
Steve McConnell, author of software engineering textbooks, explained that some classic mistakes have a seductive appeal and that is one of the reasons why those mistakes have been made often enough to be considered classics.
Here are a couple of examples:
– You need to rescue a project that’s behind schedule so you add more people.
– You want an earlier delivery date so you set a more aggressive schedule.
Which are the most relevant mistakes?
Classic mistakes are commonly split into 4 categories: people, process, product and technology. Let’s break down each category and dive into the most common mistakes made:
People-related classic mistakes
Being too optimistic (about risks and schedules). For instance, a team sets an extremely tight deadline that is impossible to achieve, therefore the promises to the client cannot be fulfilled and the project is left behind schedule.
Another frequent mistake is to avoid task estimation due to the fact that they are simple tasks. Developers and QA could forget to perform those tasks or they could take longer than expected.
Adding resources to a project that is behind schedule
Sometimes when a project is behind schedule, the easiest and fastest solution seems to be adding more people to increase work speed but that’s not the result. On the contrary, what happens is that it takes away productivity since they need to be explained how things work, and the learning curve for how the team/tools/business work is not taken into account in the estimation. Adding a developer is not just plug and play.
Process-related classic mistakes
Insufficient risk management
Failure to manage risk is one of the most common classic mistakes. When a risk arises, a low level of knowledge along with a lack of planning to manage it, can cause a high impact on the development process in terms of time, cost or quality.
Eliminating necessary tasks
Due to lack of time or poor team commitment to their tasks, it is really common to eliminate or reduce quality by discarding necessary tasks such as testing or documentation. Maybe these tasks don’t seem important at the beginning, but they are essential in order to keep high-level quality standards.
Product-related classic mistakes
Requirements gold plating
Some projects have from their inception more requirements than they really need. It is common practice to believe the customer will be delighted to see additional or more polished features, and the project manager or developers work on that rather than what was asked for or expected. The client might be disappointed by the results, and the extra effort by the developer might be in vain.
Developer gold plating
New technologies come with the promise of new features, better quality products, easy-to-write syntax and better performance. Developers are fascinated by them and are sometimes anxious to try them out. The effort required to design, implement, test, document, and support features that are not required lengthens the schedule and those new characteristics are not really necessary for the product.
Technology-related classic mistakes
Silver bullet syndrome
Changes in technologies and processes without justification. There is too much confidence that new technology, methodology, language, platform, etc. will solve planning problems.
Tools switching in the middle of a project
Sometimes it can make sense to gradually upgrade within the same product line. But switching to a totally new tool or technology implies a learning curve, rework, and inevitable mistakes that usually cancel out any benefit when you are halfway through a project.
To Sum Up
As I mentioned before, you will not necessarily get fast development if you avoid the classic mistakes, but you will definitely get slow development if you do not avoid them.
If you can identify some of these mistakes, take heart. Bear in mind that many other people have made the same mistakes, and once you understand their effect on development speed, you can use this list to help you with your project planning and risk management.
Of course, these are just some of the most classic mistakes, but there are many more. It is highly recommended to watch out for other common mistakes so you are prepared for them. If you are interested in working with a company that can prevent these mistakes from being made in your most important projects, get in touch with us.
Comments? Contact us for more information. We’ll quickly get back to you with the information you need.