5 Levels of Spaghetti, Databases and Life
Shôn Ellerton, February 14, 2019
Are you a perfectionist or someone who just wants to scrape through with the minimum amount of effort? How does Spaghetti relate to life and, in my case, databases?
I remember, many years ago, my friends and I were cooking up spaghetti for dinner in one of the communal kitchens at the university dorms I was staying at. Spaghetti was, by far, the most popular of all student dishes being relatively cheap and filling. We were discussing how each of us cooks up spaghetti quite differently from each other; from throwing in a tin of spaghetti into a pot or going the ‘whole hog’ and cooking everything from scratch. I observed and mentioned during the discussion that the art of spaghetti cooking could be broken up into 5 different levels. Little did I realise that, some decades later, my observations could be applied into so many aspects of life.
The memory of this was ignited back in 2014 when I was working on mobile telco deployment in Sydney, Australia. A colleague of mine at the time equated the projects we were working on as ‘spaghetti-type projects’ consisting of hundreds of small similar-sized projects related to each other to complete a program of works. Having worked in the mobile telco space as designer, project manager and database designer, I can relate my experience of database design to five levels of spaghetti, or more specifically, spaghetti beef bolognese.
Let me give you a run-down on these 5 levels of spaghetti each divided into three parts. The first part simply describes making a spaghetti beef bolognese, you know, the one with the meat and tomato sauce. The second part describes how one might undertake how they generally do things in life as spaghetti goes. The third part describes a specific experience to me, in this case, creating a database for a project or series of projects. If the mere thought of reading up on databases is a fate worse than chewing off your hand, than skip those parts!
LEVEL ONE: The simple tin of spaghetti
What is it literally?
It’s exactly what it says on the tin, precooked spaghetti complete with tomato sauce (sometimes with beef) already in a tin, which you open, chuck in a pot and warm up. The spaghetti, of course, is as soft as wet tissue paper, the tomato sauce tastes purely of sugar and salt, and, in general, this is a fairly disgusting way to eat spaghetti. I have never cooked spaghetti this way. Never did. Never will. Unless, in the near future, I am holed up in a nuclear bunker and there is nothing else to eat.
What is it in terms of life?
This is the way of life for those who will do the absolute minimum to get something achieved. Results are generally not satisfactory but manage to just scrape by in terms of something to work with. One could equate this to ‘band-aiding’ a solution with a bandage that will fall off at the first opportunity. Those who simply take the money and run belong here!
What is it in terms of database design?
There is no database. Everything is thrown into a spreadsheet guaranteed to get corrupted and fail. I have never stored corporate data on a spreadsheet unless it is temporary. You may be surprised that many respected businesses still do this! But what the eye can’t see…
LEVEL TWO: Dry spaghetti and tinned bolognese sauce
What is it literally?
This is when you get two simple ingredients: dry spaghetti and a tin of beef bolognese sauce. Throw the spaghetti into boiling water. Warm up the sauce. Combine. Simple. Sauce is usually bland and beef tends to have a texture much like chewing tiny beads of plastic. Hey, at least you can have the pasta al dente! Certainly an improvement from Level One and certainly the most popular for students in terms of ease and satisfactory taste. I might have cooked spaghetti bolognese this way out of sheer convenience at some time or another in the far past.
What is it in terms of life?
This is the way of life for those who wish to do no more than what is necessary. The difference here is that, unlike those in Level One above, what they set out to achieve will work albeit with no room for any extras or any other service which could potentially delineate them to be a cut above the rest. The job is simply done.
What is it in terms of database design?
An off-the-shelf file-based database package like Microsoft Access could contend for a spot in Level Two. A great bit of software, comprising of a database engine, query designer, form designer and reporting tools, often overlooked by small groups in project teams where an existing database is not available. Easy to build but performance suffers dramatically as data requirements and number of users grow. I built a database using this method back in 1997 but very quickly became disenfranchised by the performance. In less than a year, I jumped straight to Level Four.
LEVEL THREE: Dry spaghetti, tinned sauce and fresh beef
What is it literally?
The same as Level Two except that tinned sauce (without meat) is used and minced or ground beef is purchased fresh. This requires a skillet to brown and cook the meat which is then added to the warmed-up sauce. The addition of an onion to the meat could be included in Level Three. As a student, I remember this method as being my most frequent as I did not find the meat in the tins to be particularly flavoursome. Nor did I care to wish where the meat came from either! A vast improvement over Level Two in my view.
What is it in terms of life?
This is the way of life for those who want to get a good job done and be confident that what was achieved will be appreciated and worthy of recognition. Perhaps most of us sit in this bucket for most of the time although there will always be occasions where we may jump up or fall down a level or two depending on our particular circumstances at a given moment.
What is it in terms of database design?
Instead of using a file-based database such as Microsoft Access, a Level Three database could consist of a proper server-based RDBMS (relational database management system) like Microsoft SQL Server, MySQL or Oracle as the database itself and then use easy off-the-shelf products like Microsoft Access to create easy-to-use form designs and reporting templates. At this stage, minimum programming is required if at all. Level Three databases give the most ‘bang for buck’ if resources are scarce in the IT department. Being a programmer myself, I quickly saw the benefits of thin-clients offering fast query speeds, so jumped immediately to Level Four in terms of database building.
LEVEL FOUR: Dry spaghetti, fresh beef and homemade sauce
What is it literally?
The same as Level Three except that instead of buying the ready-made sauce, you need to make your own sauce. This involves a reasonable dollop of time to meticulously chop onions (inducing tears), carrots, celery and other vegetables of your choice. Moreover, making a good sauce can take at least two to three hours. The only item in the sauce pre-prepared I will make an exception for is the tomato paste, which, to make from scratch might exceed the ‘pain barrier’ of cooking. Anyone worth their salt wishing to impress someone with a spaghetti bolognese meal will strive for a minimum of Level Four!
What is it in terms of life?
This is the way of life for those who want to, not only do things well, but also to make a difference in the community. Whether it is volunteering, coaching, providing charity to those who need it or some other selfless activity, those sitting in this camp will strive to do things better for themselves and for others. I strive to reach this level as much as I can but it is all too easy to ‘slip back’ a level or two, so perseverance is required.
What is it in terms of database design?
In terms of databases, this level tends to separate the ‘geeks’ from the rest of the crowd who embark on the steep learning curve of programming, often needing to have a reasonable knowledge on how the inside of a database works and how to put together a thin-client application or web solution. Knowledge of database functions, stored procedures, security and the code that runs a thin-client including how to manipulate datasets in code is often a prerequisite for those striving to achieve this level. Database solutions running off a well-designed RDBMS using deployed thin-client applications or a web service can offer the highest level of performance and support and can practically support any number of users depending on the constraint of the bandwidth, central DB core and processor capacities. I have single-handedly put together high-performance databases using thin-client applications for many years and some are still running happily today. These may not be perfect solutions and often involve a large degree of off-the-cuff changes at the spur of the moment to service the project it is intended for, but they tend to work admirably without enormous expenditure.
LEVEL FIVE: Everything from scratch including the pasta
What is it literally?
As you would expect from the top level, this means making everything from scratch including the pasta and the tomato paste. There are no short cuts here. I have never made homemade spaghetti and, frankly, I do not ever contemplate myself making it in the future either. Whether fresh spaghetti tastes better is a vexed question as you need to consider the quality of the ingredients and the skill of the chef. In any case, it is a lot of work for, usually, minimal returns except to impress your friends and trash your kitchen. But yeah, if the pasta tastes great, that’s a great result!
What is it in terms of life?
This is the way of life for those who will not let anything get in the way of achieving the very best regardless of what the motives are. Whether the motives are altruistic, self-edifying, or purely down to perfectionism is moot. The results brought about from those in this camp are usually spectacularly good; however, there is always a price to pay, and often at somebody else’s expense!
What is it in terms of database design?
This is the ultimate all-singing-and-dancing system. The one which will support all the projects in the company. The one which is being talking about for years promising all sorts of wonderful things but also being potentially crippling in terms of expenditure. Such a system requires highly complex generic database modelling to support any number of separate data modelling depending on the project with which it is intended for. A good example of this is the well-known system, SAP, a very successful off-the-shelf solution which has the ability to support an enormous wide variety of projects although considerable ‘tinkering’ is required to do so. The enormity of the consequences of when such a system has failed to deliver can be significant especially considering the large timescales and costs incurred. However, if the system does succeed, it will be part of the organisation’s backbone and, hopefully, make everyone’s work more efficient.
And….to conclude
Where do you fit within the 5 levels of spaghetti?