Innovation
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.
|
Engineering
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.
|