In my opinion, software development decisions are often based on false knowledge: geek-gossip, guesses, techno-trends.
Recently, I read "The McKinsey Way". The book is uneven; some sections are very interesting, some are close to useless. But I learned that when facing a problem, the best business consultants gather relevant facts first. Then brainstorm to find options. Evaluate, test, and finally, based on the results, select the best one.
This should apply to software development too.
Too often, decisions are taken without (real) fact checking, (real) brainstorming or (real) analysis. This implies that there is a pretty good chance that the selected option is NOT the best one.
Some examples...
"I've heard that the CPU spikes are caused by the garbage collector, so we need to reduce memory usage."
Geek-gossip...if you do not double check your sources you might work a lot to reduce the memory usage just to find out that the CPU spike has nothing to do with it.
"What!? You want to gzip everything that is going on the network! I know we need to reduce the latency, but this will use way too much CPU."
Educated guesses are brainstorming worst enemies. Why not try a quick prototype instead of killing the idea from the start?
"We absolutely need to redesign our web site using Ajax. Our user interface is clumsy."
Humm...sounds like techo-trend. Is the interface really clumsy? Why not initiate some usability tests to find out?
Guesses are good for estimates. Techno-trends are cool to discuss at lunch time. Geek-gossip is...gossip.
Brainstorming and facts are good for decision making.

0 commentaires:
Enregistrer un commentaire