When reviewing programs, projects and solution designs from an architecture perspective, I often see people doing the same mistakes as others have done before. I did some of them 25-30 years ago and I see people doing the same mistakes today.
”Learn from the mistakes of others. You can never live long enough to make them all yourself”, Groucho Marx
The question is why people doesn’t learn from earlier experiences.
One reason could be that you don’t share your experiences from failures and another could be the not invented here syndrome. I.e. you don’t look for experiences outside your organisation. A third reasons is prioritization or constraints. You know that you should do things correct, but you don’t have time or resources to do the right things right now.
I have done mistakes in all three categories and learned from them. What about you?
Do you share your experiences from failure?
As a consultant, I’m normally not allowed to talk about my customers, but if we share experiences, it’s always success stories. An exception was when we made an internal Behind the scenes after a three month project that didn’t go as well as we planned. Normally, if you make lessons learned in a team, those lesson are not shared outside the team.
One reason for not sharing mistakes are cultural. To fail, and succeed next time, is more acceptable in US than in Europe or countries outside the western hemisphere. Another reason is the culture in the organisation. If the consequences are severe for admitting mistakes, e.g. be fired, the chances of sharing failures are very low. It’s much easier to learn from your mistakes if your company have the same attitude as Kenneth Verlage at Post Nord. ”Failure is ok, if you fail quickly, inexpensively and learn from it."
Do you look for examples outside your own organization?
Very often, your work is done in isolation and you don’t challenge it from the outside. Neither you learn from experiences outside your company, because your situation is very special and the experiences other have is not relevant. It’s good when people like the company they working with, but if nobody resigns and get replaced with new individuals, it’s very hard to get new ideas. Especially if you are maintaining old legacy systems written in-house.
Do you make temporary solutions, that wouldn’t get fixed later?
Sometimes you make a temporary solution in order to solve a business problem. This is OK, if you have time and resources to do a proper solution later on when you know that the business proposition were successful. The problem arises when you have to many temporary solutions that you should maintain and the technical debt is growing for each project you start.
The remedy for all there issues is to have a passion for change and to improve what you have, from top management and downwards.