In an interview with Gerald Weinberg, he was asked the question ‘In your experience, what is the most notable “constant” in the world of software?’. His answer:
“The infatuation with the latest fad which is supposed to “increase productivity” by some arbitrary amount, with no clue as to how that “productivity” is measured. For the most part, these fads are usually a new set of names for old practices. Yet at the same time a segment of the developer population goes ga-ga over the fad, a much larger segment doesn’t even attempt to learn what is good about the fad. The majority of developers are working the same primitive way their predecessors did 50 years ago, just using more machine power to do it.”
I think these are wise words and we should all try to imprint whenever we ‘buy’ or are infatuated with the newest ‘fad’.
In the data-world I am in, this seems to be particularly true, although that might be because I am not very deep into other ‘worlds’. Examples are Big Data, data virtualization, data visualization, analytics, cloud, in-memory, mobile, data integration hubs, etc..
The promises are immense. Either an increase in productivity, a decrease in costs or a fantastic super-dooper increase of customer satisfaction. Another characteristic is the rebelling against the ‘old’ or the ‘traditional’ way of doing stuff. ‘That era is over, they say, we now have <fill-in tech trend>’ or 'xxx is dead, now we have <fill-in tech trend>'.
Basically, ‘we ’ get the message that we must be totally out of our minds not to use this <fill-in techtrend>.
From an architectural point of view it is shocking how analysts/experts or whatever can not seem to understand the difference between logical and technical views. They are constantly mixed; utter confusion being the result.
Now, do not get me wrong, I am a fan of progress in technology and I deem the above mentioned ‘trends’ extremely valuable……when applied appropriately….
In the end this technology needs to fit into a context. A context of people, their skills and experiences, a context of architecture, a context of legacy systems and a context of strategy and objectives.
Proper software development in data management is not about technology. It is about proper business analysis, information modeling, business rules, architecture and above all…it is about people, people and people. These are the constants over time - whatever tech you use. If you want to actually yield benefits, do the work.
You can’t buy your way out of the data misery you are in - it takes blood, sweat and tears. Or in other words; stamina, discipline and courage (especially by management!).