Recently, I was asked if I possessed a crystallized list of the worst crimes and mistakes committed in IT projects. Though I did not, the question, once put, set off an unstoppable process of crystalisation.
Voila: my list of the 9 circles of IT hell!
1. Carrier Limbo
Automation in carrier management is an extremely dangerous common law at companies where position and responsibility is an assumed reward for x years of service.
"- he/she’s been coding for 3 years and wants to be senior."
Of course, loyalty and tenacity must be respected and rewarded, yet automatic promotion solely on these terms can be disastrous.
Pushing a person upwards just because he/she has collected office miles is nonsense and can result result in "pagan" architects out of their depth, and a company culture that has forgotten the most important rule of IT: lifelong learning.
Wisdom and wit may well be built up over time, but technologies are always changing and ’experience’ should be judged qualitatively as well as quantitatively. Ability to act will fade away in a pedestrian environment where the primary incentive is to just ’do the time’.
Ultimately, your project will be stuffed by "once upon a time" heroes who sadly have lost their touch.
2. Autotelic development.
IT is about creation, and the joy of the digital LEGO is constantly tempting us to commit that fleshly pleasure: to build pyramids for one’s own satisfaction - ignoring the interests of the work you are paid to do!
Simplicity is king. Always. One does not need a space armada to go fishing. Patterns, abstractation, layers, decoupling etc. are great things but within reasonable limits, i.e. getting the job done! When a creation of a single service goes through multiple factories, wrappers, and facades – you know you were overcome by vanity, for sure.
3. Overindulging technologies
"Too much stuff" as George Carlin said once.
Another deadly sin requiring more caution: gluttony. There is a certain type of IT person who always wants to introduce more and more tools and technologies just because they are new and shiny, whether or not they really resolve anything and bloat the project (there is a new king every quarter or month, so temptation is constant and overwhelming).
Please do not make me wrong, the intention is very-very good: development is no different than science, math, art, music, photography, or any other endeavor in which people are trying to creatively solve problems, so pushing forwards is very much wanted and welcomed as described here.
However, I have seen many projects fail because shiny new toys have been introduced at such a rate and with such a lack of rationale that their addition inevitably interferes with management and development processes.
Let's not bloat things, mix paradigms and orthogonal concepts. IT stack should be thin and straightforward.
4. Jurisdictional jealousy
Jurisdiction is always a draw when you deal with people management.
Geographical - or any kind of – distribution will make concealed elbowing appear for sure. It is one of the human factors but a very hard one to cop. Protection of jurisdiction will be manifested in many small ways:
- un/badly documented code
- overcomplicated interfaces
- common law introduced and forcefully complied with
- pulling down new technologies to cover the missing touch of new-wave stuff etc.
I can call to mind many an architect to whom everything new must be criticised or shot down, even to the point of sinking the whole project out of pure jealousy and a perceived need to protect his/her own position.
Are you sure your projects, your company is free from this? Think hard...
5. Wrathful working against each other
Flaming is the road rage of the 21st Century and is certainly not confined to teenage tantrums, but is in fact equally manifest in professional forums too.
Beyond the fact that ’it is just a projection of internal unconfronted frustrations and fears’, lots of people feel the urge to hit on others just because they use a different tool or solution.
Even if it takes the shape of professional argument and the tone is decent enough, the focus is most often to gain superposition – token pointscoring and having the last word.
The fact that so many serious professionals engage in this fruitless and destructive pursuit emphasizes both how and why people management is a rare skill, a valuable profession beyond the reach of many.
6. The Heresy of MS office
I cannot imagine who the heretic was who built this road to hell, but he/she should be condemned to a suitable eternity in fiery chasms. :)
- Have you ever seen class or sequence diagrams drawn in MS excel? I have and I was unable to sleep for days afterwards.
- Have you ever seen MS excel used as productivity tool? As a basis of any kind of administration on a large-scale project involving multiple teams? Or even as a de facto tool to document business processes?
I have seen it tons of times – when once was more than enough.
We are talking about a format one cannot really parse, distribute, cooperate with, version, etc. Lacks everything you need in a working environment aiming for the number one spot.
Just underlines the need to push everything toward the web-world and open human readable formats.
7. "Violence" toward other people and property
Cooperation in a team is essential. To learn to share and to play nicely. Individual excellence never should be allowed to take priority over the common interest: to succeed on the company level.
Let's not be hypocrites and consider this as some distant and hypothetical field of some possible distant world we are not part of.
The need to be creative and intuitive will bring with it the appearance of being violent, disrespectful or unpatient regarding the work of others. We share and learn much more from each other than we anticipate. Patience is the key to observing this.
Recently, I met a developer who happened to be a poet, writing code in verse and almost in "rhymes". Yes, I know. I thought the same...
She was unable to comply with code structure and code style completely; almost a failure as a developer in a fact, but she was found to have unrivaled talent for highly structured design concepts. I ended up giving her the lead in designing the architecture, because she fit better in that responsibility.
Sometimes you have to take a step back and think about the big picture on the company level, rather than fighting over some small part of the picture.
8. Fraudulent comfort
Comfort and accommodation walk hand in hand as they open the gate of work fraudulency. Professionals can become lazy, slow, and spoiled.
Working 8 hours a day is what one is paid for but one should also do your duty to the IT itself and learn-learn-learn. New languages, new tools, new technologies, new design methods. Discuss, contribute and share...
Being an IT professional is not like being a potter where basic methods become a virtue over time. Going to war with a pointed stick might be fine if you intend to wage war against fruit, but keeping up to date with the constantly-changing tools of the trade – as well as the nature of the playing field and the competition – is a much better strategy than simply learning one thing well and ’muddling through’ the rest.
Companies must motivate the employees’ professional development in any way or projects will be implemented by potters making the same old pots, as the gap widens between your project and the real world.
9. Treacherous computing
Standards should be respected and followed and not ignored or twisted. Once, I called MVCs the “devil in the shadow” with a reason: MVCs want to become the standard while not following any other.
How maintainable is your code if your custom framework will become outdated and you need to switch stack or solution?
How flexible is your system if a custom ecosystem or culture is followed?
Your project is happy now. How about tomorrow or the day after?
Sorry for the literary references, the number devoted itself. Don’t sink deeper and deeper within the ice... ;)
Feel free to share your thoughts in comments below, I am willing to exchange thoughts with you.
If you consider to start a new project soon or to move your stack to NodeJS and do not mind some support and consulting, please let us know.
We are open for business at NLV8 Technologies.