Wednesday, April 11, 2007

Software development is a mug's game

What's wrong with current software development?
  1. Emphasis on features rather than robustness or user friendliness.
  2. Despite the combinatorical explosion in the possible choices of language/gui framework/compiler/platform for development, there is no clear winner. All software lacks either ease of use, robustness, or portability.
  3. Defacto standards create monopolies, no matter how poor the standard... e.g., MS Word .doc format and Excel .xls. For an outsider, it's extremely difficult to penetrate both these formats and these markets.
  4. Good software developers are like gold... Google and MS can hire them on the principal that it's better to stop anyone else getting them. Everyone else is dealing with the rejects.
  5. Most universities are now geared to vocational studies rather than producing graduates that know anything about the fudamentals of software engineering or computer science.
  6. Most programmer employers don't know the difference between computer science and software engineers.
  7. Most companies don't follow fundamental software engineering practices, like requirements gathering and testing.... which frequently leads to problem 1.
  8. Insistance on legacy support causes robustness issues and stifles creativity.
  9. Insistance on binary legacy support creates Microsoft Windows.