“I can make a General in five minutes but a good horse is hard to replace.” – said Abraham Lincoln.
[Editorial Notes: Guest article by Santosh Panda, founder of Ayojak. Santosh shares a very important/key ingredient to become a great ‘product engineer’].
In professional life, no matter what you do, you are replaceable if what you do is replicable. This is more evident in software product development companies as access to rock star engineers (i.e. those who are simply incredible at what they do) is key for success. Hence a software product development company will always replace those who can be replicated. This replace & replicate must have been same even in agriculture age or industrial age (think Ford assembly line).
There is a distinct difference of replicating what you do vs. replicating how you do. Replicating ‘How you do’ is difficult and the more difficult it is, the higher is your irreplaceability quotient.
This thought came while running a startup, I find many people walk-in, work over the years and suddenly find that they are replaceable – it confuses them, irritates them, makes them feel that company is not understanding their value. However this is natural /bound to happen if you have stopped adding value to what you do and you fail bring your own differentiation to it.
Lets take an example, during a software product development start, a set of process, framework and learning process gets established and each engineer gets it going as per the defined protocol. Over the time, only certain engineers think differently, add/suggest a different process/framework/methodology and 90% others simply follow what has been written/established on day one. Now these 90% claim they didn’t have time, they thought ‘doing as per rule’ is the way to go forward. However irony is whatever this 90% engineers did, all their knowledge is captured, product has been established and there is no differentiation in their thought/action, hence they are replicable & replaceable. They are not going to go to next stage of product development life cycle for that specific product.
Only those key people who kept on modifying their approach, questioned ‘why we do the way we do‘, debated about different ways, forced some of their small initiative to be added by demonstrating advantages – these type of engineers are less replaceable.
Here is my own analysis that I use for evaluating during interviews/assessment for finding a product engineer. If you score 3 ‘yes’, you are replaceable as a software product engineer. oops..
1. Are you using same programming language for last several years?
2. Are you using one framework for your product development for years without even checking what’s coming on in the framework roadmap ?
3. Do you think more number of years of experience in product development means more expertise?
4. Are you only a developer who writes code but who doesn’t know what a User Interface usability is?
5. Do you think writing more number of lines of code means lot of work?
7. Do you only read/visit Infoq.com or stackoverflow.com and hardly visit tech-business blogs like Techcrunch, Pluggd.in, Mashable etc?
8. Do you think coding is fun but system administration/vi editor/server setup has no value?
9. You don’t find time to write blogs, talk tech things in your company/city?
10. Do you think if there is no complexity in software development (hi-fi patterns for the sake of), then it won’t be a great product ?
Based on observation, talking to friends, other startups, and communities, I think there are less software product engineers in India vs software service engineers a.k.a ‘software outsourcing engineer’.
What’s your opinion?
[Reproduced from Santosh’s blog]