Examples of guiltI'll start with something specific to the world of CMS's. CMS Wire have worked hard to survey a lot of CMS vendors on their plans and thoughts. But just look through the comments the vendors are giving. I don't think they relate at all to what real users actually care about. Real users come to us wanting front-facing features, or want better usability, or better ability to make style changes, or care about issues relating to performance, or other measures that have a very real impact on their ability to meet their goals (I feel for all CMS's out there there is a lot that still needs to be done). But look through this and you'll see a load of stuff that you probably have never ever seen anyone ask for, in my case not even marketing or IT departments. To be fair, a lot of these CMS vendors focus on Enterprise CMS (which basically means big intranet systems) which we do not, but it is widely known that most IT projects fail, and just looking at this it says why – people are focusing on requirements that simply do not matter to end-users, and they are doing it because of the buzz factor.
Even when the focus is right, the thoughts are expressed so abstractly: "multi-channel delivery"? Do you mean you want shared content on your Facebook page, Twitter stream, and the mobile version of your website? Being specific is so much more meaningful to everyone involved, whether they be marketing advertising the functionality, programmers implementing it, or end-users selecting it.
I just read what 2011 holds for cloud computing. Apparently PaAS (platform as a service) will be more important than SaAS (software as a service). Well, in 99% of cases it hardly matters what technologies someone chooses as long as the team implementing something are smart. There are few projects that push this technology to the kind of limits that such distinction will really make much difference. I think the only people who write about this kind of stuff are consultants trying to big up their status and sales pitch to equally technically-naive purchasing managers in the IT departments of large enterprises. Programmers will just shrug it off in most cases. Here's another little secret about cloud computing: the vast majority of 'cloud computing' is simply pre-existing web-services and pre-existing 'virtual servers' just rebadged with a new name. There's nothing new under the sun (any by the way Sun thought providing access to their computing cloud would be big, a few years before they had to be taken over to avoid going under).
Here's a video comparing web-scalable databases. Full credit to the speaker for doing a good job, but I see a dozen articles on "NoSQL" each day and the reality is hardly any websites are big enough to gain its advantages (do you honestly need to plan for millions of users?), but the infrastructure and developer cost for using it will be huge, and you lose the very real advantages of SQL (stability, standardisation, tool support, wide compatibility, …). A good engineer picks the right tool for the right job, and 99% of cases, the right tool is the mature understood tool people have been using successfully for years and does all you probably will ever need for the size your project will be (i.e. SQL).
Here's a business article about ideas vs execution. As an entrepeneur I just shudder at the philosophical debate about 'dichotomy' and 'memes' going on here. Anyone with an ounce of common sense knows that both ideas and execution are important, and anyone with experience will know that there are plenty of good ideas that are poorly implemented, and plenty of bad ideas that are overly engineered, and that lots of people have the same 'good idea' – there's no need for a debate, it's obvious. What I just don't get is why people just go on about it for pages, any real entrepeneur knows the score.
I'm increasingly seeing articles by 'Agile coaches'. Agile processes are meant to be simple, to take the complexity out of things and just focus on getting stuff done in a sensible, liberated, fast, flexible, prioritised, way. Most agile processes try and get rid of managers. So why do we need long discussions about agile processes by agile coaches, that almost always end up making the discussion and process just as complex as any traditional process? The whole point is to make things straight-forward, implemented by skilled engineers who don't have to do huge amounts of planning.
And lastly, an article on an open source community controversy. I despair a bit for Subversion if it's got to the point where the majority of people are in it for political reasons, and that is all I see from the discussion here. It's a power struggle amongst various people in a project that is seen by most as being far behind the times. I think the primary motivation of all the people arguing here should be to fix the project. If people were focused on project goals rather than personal positions (be it commercial exploitation, or foundation pride), Subversion might just be in a better position now.
Why does it happen?I think this kind of irrational punditry comes down to a number of things:
- Lots of people think they're going to be the next Google
- Lots of people want to be seen to be seen as Google-ready, for reasons of professional development
- Some people are so scared of making mistakes that they will analyse things forever or try and know every new technology ("analysis paralysis")
- People with a marketing background often are trained to think in very abstract terms, which make sense when very occasionally stepping back to plan high-level strategies, but no sense at all when considering concrete plans
- Academics don't face real-world problems and constraints often
- Inflating simple ideas to academic importance is a great way to forge a career as a consultant or speaker
- People just generally are so easily drawn to the latest tech; in the tech world the wheel is constantly reinvented, each new generation of engineers throwing away what was learnt by the last.
Closing thoughtsTo summarise, I just wish that people would focus on the user, and not on politics, careers, academic validity, and all the other ephemera that people seem more caught up in. I'm not saying what people talk about so much has no merit, but I am saying the whole framing of so many discussions is completely wrong, and I think people need to do some serious introspection of their own motivations.
I have been thinking a lot recently how the world of software has not actually advanced much in 10 years. Heck, since Windows 95 not a whole lot has changed. Contrast the difference between what we had in 1995 and what we had in 1980, with what we have had since - the tech world (and human population) has grown a lot, things should be accelerating. But with maturity, and generational shifts, comes a lot of hubris, and I just wish it would be washed away.
There's so much to be solved still. Software is still too slow. Software is still too buggy. Backing up is still too hard. Computers are still too stupid. In the CMS world authoring designs is still way too difficult.
We all need to look at these very real issues, and forget the irrelevant discorse that so often drives things.
I feel usually my posts on my blog here are rather negative. I think it's because as an entrepeneur and a technical guy, I see things done wrong in most places I look, and I dearly want to see people in the industry fixing them. So I apologise if this was a bit of a rant . There are of course some very good things that have happened in recent years: the iPhone, Mac OS, Facebook, Google Maps, and Google Chrome all spring to mind.