Idolatry

Monday, 14 May 2001
  1. Are OO concepts not too complex to use for an average programmer?
    Answer
  2. Does the usage of OO concepts in programming languages not lead to software that is very hard to maintain?
    Answer
  3. Are we in an Echnatonian phase?
    Answer
These questions were posted last weekend in a column on page 43 of the Dutch magazine Computable (computable.nl/...archief... sorry all in Dutch).

OO not to complex?

No, OO is too complex for the average programmer.

The average programmer is content to understand the syntax of a language, write a while loop and if statement, and use SQL efficiently. The average programmer will not have a problem developing functionality of average complexity.

Logical data modelling, to third normal form, is already too complex for the average programmer. And in OO logical data modelling is just a first step. A true OO expert is a master in the art of programming, data modelling, and has the additional mental capacity to

No, an average programmer will never succeed here. And he does not have to. There are plenty of conventional languages for the average programmer.

Does OO make maintenance difficult?

No, what nonsense. With a good OO approach every method has one and only one logical place.
  • Shared functionality has one shared solution, therefore shared development costs.
  • Shared functional changes share maintenance effort, with shared maintenance costs.
In a maintenance phase it is quick and easy to find the one spot that needs maintenance. Yes, heavy functional changes sometimes require a severe shake-up of the class tree. But even such a heavy operation mostly takes just one or two days. OO decreases the software maintenance costs.

The one thing that does lead to high maintenance costs is conventional 'island approach', build every function separately, until the overview on the whole archipelago is completely lost. Every functional change hopefully starts with a quest in the code, but more likely with a long quest for the code, with budget and time overruns as a result.

Is OO in a Echnatonian phase?

No, nonsense again.

OO has never been the one and only false god that offered a solution for all automation problems. Consultants that recommend OO as panacea for all your computing problems are in the wrong job.

OO has matured for decades now, rules longer than Pharao Echnaton (att.net/...) ever did. But, OO does not rule the whole computing world. OO has a specific area of application, at the top of the market, projects that have the following characteristics:

  • complex logic,
  • many exceptions,
  • complex graphical user interface
So these are projects that can only be dealt with by using polymorphism, inheritance and encapsulation well.

Advice

Use OO where needed Use conventional tools for the rest
Hire an OO professional for a complex OO project. What 1 OO expert can do in a day, 10 average programmers will not be able to achieve in 10 days. Use a conventional case tool for simple applications, with just list-new-change-delete functionality.
Examples of typical OO projects: Examples:
  • data-entry systems
  • order entry systems, such as simple e-commerce
  • a simple CRM system.
Yes, good OO experts are hard to find and ask higher rates that the average programmer. You won't hear any complaints from me about it! Given the current crazy market you can settle for average programmers, for an average rate.
Recommended approach: Ask for multiple quotations, with or without OO. Don't just look for the hourly rate, compare the totals as well. Don't be surprised to see big differences in quotations. Every IT specialist is allowed to enjoy his own Idolatry, but why should you have to pay for it?

Till next week,
Nut