Bloggo back to the blog
I don’t believe in Rocket Science-->
Have you ever heard the expression ‘it’s not rocket science’, when trying to describe a seemingly easy task. I once worked on a data warehouse system that had six reference data feeds and twelve types of transaction data. These were well specified; “all” that was required was that elementary validation took place and the data was transformed and loaded into the warehouse. For reference data files, individual incorrect records would be rejected, whereas for transaction data, validation problems would result in the whole file being rejected, but data integrity issues (quoting non-existent reference data) would cause only the individual transaction(s) to be rejected.
This was a straightforward matter to design, and to test. Complications came in the order that files were loaded into the warehouse itself (reference data before transaction data), and the volume and data complexity of the inputs. A file would be received for each transaction type once a month, and although theoretically any of the input files could be available on a particular business day, input would normally be confined to the first eight working days of the month. Loading of transaction data may reveal missing reference data, and the loading of the amended reference data (cumulative in nature) would result in any error transactions being re-presented and, hopefully, loaded successfully.
There! In two short paragraphs, the important parts of the system have been described. Was it an easy application to design, write and test? Well, it is not rocket science!
The process can be described. Perhaps some parts are not sufficiently detailed in the ‘specification’ above, but these could be. If it cannot be described, then it cannot be designed, coded and tested. The point that I am trying to make is that anything can be described, no matter how seemingly complicated. If you can describe it, then it is simple. If you can’t describe it, you can’t do it. Of course, ‘specifications’ do not necessarily need to be written, but primarily well understood by all parties. The quip from Brett Gonzales – “An oral specification is not worth the paper it is written on” – is just not true.
There is no such thing as a complicated system. Now that is a big claim! This is based on the notion that any ‘complicated’ idea (be it a scientific theory, an engine design or a computer program) is only complex in terms of the number of simple ideas that are joined together, and the order of these building blocks. Each part is simple, or is reducible to ideas that are in themselves simple. (I am using the idea of ‘simple’ rather than ‘self evident’; the latter can result in a philosophical nightmare of axioms that are ‘obvious’, with the immediate question of how do we prove the axioms).
Difficulties can and do arise with assumptions, where a simple idea, perhaps with a innate sense of ‘truthness’, is subsequently found to be untrue – and there can be degrees of untruthfulness: completely untrue, partially true, true in the following (restricted) circumstances, etc., etc. However, this does not negate the idea of breaking down a complex task or idea into its [simple] constituent parts.
There are some ideas that cannot be broken down any further, but can be “grasped in an instant”. This is something that is complete in itself, or “gestalt” in German. So complex ideas can be either described on an A6 piece of paper or broken down into a series of steps that can be each described on an A6 sheet. If it cannot be described briefly, the idea needs to be broken down until it can. When you have done that, it is understandable “by anyone”. It is no longer rocket science. In fact there is no longer such a thing as rocket science.
Even Rocket Science is not ‘rocket science’.