“This project is my baby, I don’t want to see it perform badly, I will give everything to protect it”, Does this sentence sound familiar to you? You may have heard it from your colleague or may have said it yourself.
In my view, ‘Like my baby’ is a metaphor which is over used and abused by many persons. What you will do when you found a really bad architecture based application whose programmers are just treating it like a baby? They love it, but afraid of losing it also.
Bad architecture happens, not just because someone was incompetent, bad things also happens due to things which were beyond control or unimaginable at the time of conceiving an idea or plan. But few people refused to understand that project may be like your baby, but they are not your real baby.
In real world, when we have a baby with different abilities, we try to help them to grow in different directions, we are supposed to support them in every sphere of life. We want to be with them, always; after all they are our babies.
Almost one year ago, I was discussing some serious flows in one of the application to his lead programmer who was also part of architecture and in fact was only “subject expert” available at time of idea conceiving and execution.
When I point out issues with architecture, he become little defensive and used the metaphor that a child cannot run from his first day. Things will improve with time. I tried to use the opportunity to tell him than if a child is born with bone disease, we cannot prepare him to run to fastest 100 meter run. He was really hurt with my statement. He was behaving like someone has pointed fingers at his own real child.
We need to understand that treating your projects like your real baby is a way to disaster. Projects got some specific objectives. If those objectives are not being met and current architecture does not support any way out, then we may need to discard them. So, we can start fresh. It may be difficult but only viable option for future use.
Love your projects, care for them, but understand that your projects have a purpose. … And this ‘purpose’ is the ultimate reason. Care for it.