In this article I’m going to explain the top 10 software development fallacies my offer avoids. By avoiding these myths and centering on excellence, we will make great quality software.
Myth 1) Software must be designed in detail before development starts, in order that a clear plan might be out-layed.
The truth) Greater complex a design, greater like software the look itself is. By perfecting a design, then writing the software to that design, you’re effectively writing the task twice. Instead, by doing just some simple design sketches and data modelling as opposed to a book-like design, a great development team can make a shell for that software and efficiently refine it towards finished product. This technique of refinement creates natural prototypes, allows easy adaptation when conditions that would be unforseen by way of a design arise (or brought up as fresh concerns by the client), as well as the total process takes considerably less time. To get this off uses a close team, skill, and experience, however it is by far the best choice for the majority of situations.
Myth 2) You can find programmers, designers, analysts, and users.
The facts) By structuring development to ensure all developers get some good exposure to each section of the development process, skills may be shared and greater insight could possibly be gained. If developers should preferably actually utilize the software chances are they’ll can use that expertise to consider improvements that otherwise would not come to light.
Myth 3) A cheerful team is a productive team.
The reality) A team of folks with a wide array of natural skills, experience and concern, that criticises one another and argues vehemently on the smallest details, will take up and resolve issues that otherwise wouldn’t be tackled. A furnace of relentless argument is the foremost way to forge understanding and reach perfection.
Myth 4) It’s important we understand our direction and compromise by it.
The truth) Our life is compromise, and compromise isn’t a weakness. Customers with rock-bottom prices issues (including efficiency, budget, ease-of-use, power, scope, and the need for easy internationalisation) that can’t be simultaneously met without such compromise.
Myth 5) We all know what the client wants, we understand what the issues are.
The reality) Without constant re-evaluation, you can actually lose a record of the objective. Developers are often faced with problems to unravel that they consider the issues, when those are in fact separated from the actual market goals and will become totally irrelevant. Developers should always understand the market goals and adapt when other activities change, or perhaps the goals themselves change.
Myth 6) Bigger is way better. Features are cool.
The reality) Features can easily confuse users, and their actual value should be considered up against the cost of confusion. Occasionally it is sensible to really remove working features due to such concerns.
Myth 7a) The consumer is always right.
Reality) Most customers try hard not to look ignorant facing software developers, so because of this phrase their suggestions inside a technical way. The consequence is that often suggestions aren’t really appropriate, because they’re not founded on a solid comprehension of technical issues.
Myth 7b) The customer is often wrong.
The reality) Although customers needs are often not best met by doing literally the things they say, they always understand what they want and why they really want it – and usually for very good reason. Understand them and adapt what you say, consult with them, but never ignore them.
Myth 8) Comment your code a whole lot.
The truth) Good code needs hardly any commenting, because sensible uses of naming and white-space are better alternatives. Comments should only ever explain the non-obvious, or provide standard API documentation.
Myth 9) Such and such is needed, such and such is great.
The truth) A bad workman blames his tools. Whilst some development tools aid development substantially, a good developer can do great results generally in most things served for them. There are a few exceptions, like Microsoft Access, or assembly language, usually the difference in quality results is a bit more due to the skills from the developers compared to quality of these tools.
Myth 10) The buyer will understand if there’s an effective and easy-to-use interface.
Reality) The interface doesn’t only need to be easy-to-use, it has to be navigatable without an overall systems understanding. Screens must be self-describing.