When you were a child, your grandmother told you, “You’re special, you possess a unique charm; you’re like a hero!”
First, you laughed…then you started liking it and eventually started believing that you’re a hero… someone very special!
Then, after years of education, you became a software professional and got a good job with one of the top IT organization, but still, in the back of your mind, you have treasured the old image, “I’m a hero!”
That’s where the problem rests for many software teams.
Since you consider yourself a hero, you inevitably strive to reinvent everything. Right from what other team members should have done to organizational processes or what the customer should have expected instead.
Your coarse argument would be, “No one in this organization can work like me. If I were not in that team, that big problem could have never been solved.” Or “People out here do not know even 10% of what I know and I don’t think they will be able to perform the task so effectively when I am not in the team.”
Instead of being open and learning from past mistakes of colleagues or everything else around, you insist on doing everything on your own; at the cost of the client or the organization.
You spend most of your time in beautifying your own code, debugging your less experienced colleague’s code or re-creating architecture of the half-developed business application.
You need to understand that you’re not a hero. At least not at the workplace. If you become one, it is not going to give you benefits after a certain point. Reserve that narcism for your visit to your grandmother’s house.
Be less heroic. Be less special. Be more agile. Focus more on how your team can add value. Ship early; ship often rather than investing your time in less necessary artifacts in order to build a product or a service that works. Inspect and adapt. Remember, none of us is as powerful as all of us.