So what is my relevance to innovation? It is easy to make a claim that you are innovated, but more difficult to prove and demonstrate it or even convince that it matters.

To me innovation is the introduction of new ideas, goods, services, and practices which are intended to be useful. The main driver for innovation is often the courage and energy to better the world. An essential element for innovation is its successful application in a commercial and pragmatic way. Innovation can be at any scale, not just at the macro-technology level, but at the programming and system design level.


As Oracle introduces new feature, there are new opportunities to embrace it in innovative ways. In PL/SQL application design, the two most significant features that have provided the best innovation opportunities in my opinion have been Oracle Advance Queuing (AQ) and XML. AQ has been a big contributor to solving scalability issues by being able to manage processing asynchronously via background daemon processes. XML provides a flexible means of handling transient data as used in message payloads, procedure interfaces, and metadata.

So can the experience with using technology spanning back over decades be of any help? Oracle's core product and the organisation have come on a long way since my earliest encounter in 1986 with Oracle 4. Technology moves so quickly, and practices change, so it can be a struggle to claim that any experience of a technology spanning beyond more than even five to ten years has much of a benefit or advantage. It would be so easy to suggest that that a long and distant experience with Oracle 4 or even more recently Oracle 6 or 7 has absolutely no or very little relevance to today's core product. This is true to an extent, but what can be transportable over the many releases of Oracle are the intuitive skills, generic engineering practices, design performance considerations, and general development skills. I often see projects having a poor start because of the lack of appreciation for structured programming, data modelling, database design, problem solving, even simple code formatting, and the set theory approach used in SQL. These engineering principles are still very relevant regardless of technology, vendor, and era, and can be surprisingly deficient in the newest breed of developers.

The emphasis on CASE (Computer Aided Software Engineering) was a lot greater in the 1980s and 1990s. Oracle even had its own structured method called CASE*Method developed by Richard Barker (a forgotten about legend in the Oracle world) and supported by its own CASE tool called Oracle Designer (formerly known as CASE*Dictionary and CASE*Designer). You can still get Richard Barker's book Case Method: Entity Relationship Modelling on Amazon twenty years after it was first published - I still have a copy of the first edition.

There have been to supersede entity-relationship modelling, but until the relational database is successfully retired, it will continue to be a necessary skill. Those methods are now referred to as waterfall methods which there were many and all had their successes and failings. More recently, Object Oriented and Agile methods have dominated, but these do not seem to be well suited for application based on relational databases. The database is the foundation of the application and needs to be well scoped to form a solid foundation base to build upon the rest of your application on. Like a building, you cannot build upwards until you have the full foundations in place. It is a costly consequence if you try to build on an inappropriate foundation or try to change the foundations when you have built several stories on it.

The upfront thinking required to firm up a fully scoped model provides time to think through logical designs and and space to consider all ideas, and be inspired through the feedback from discussions and presentations - the breathing space to be innovative. The less structured approaches (rightly or wrongly) often practiced with Agile encourage solutions to be delivered more quickly and often under pressure and therefore suffer from the lack of database innovation.

Holistic Multi-Dimensional Thinking

Something I am keen to highlight and promote is an alternative style of thinking which is well suited to the problem solving and modelling tasks performed in database development.

The alternative thinking skills which inspire innovation and creative problem solving come from a more rounded education and it is not just about excelling in passing exams, but also learning to be pragmatic and apply the theory. A less recognised alternative style is a holistic multi-dimensional thinking one, which by the way is a characteristic style and talent of many dyslexics. Describing a positive view of dyslexia is not a common one, but these days it is a very well understood condition.

So what is holistic and three-dimensional thinking? The holistic aspect means that all facts need to be taken in as a whole. Nothing is going to come out until all facts can be formed into the "big picture" and visually understood. In contrast to the conventional analytical thinking, where facts can be taken in one by one in a procedural or two dimensional way, holistic thinking is not very good at giving intermediate answers, which sometimes adds to the perception of being stupid or vague. Three dimensional thinking means churning through the facts in different planes, in a visual or pictorial way, and producing answers sometimes without being able to explaining the steps to solving the problem. 

I attribute my strong affinity to data modelling, problem solving, and innovative database design, to my ability to think in this way. : Copyright 2005 - 2010 Database Innovations Ltd : Last modified: 26/09/10