You are replaceable if what you do is replicable : Musings on software 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 to rock star engineers (i.e. those who do incredible 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, the most difficult it is, the less chances that you will be easily replaceable. Ok hoping I am not establishing a theory here. 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 values to what you do and also bringing 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, each engineer gets it going as per the defined protocol. Over the time, only certain engineers think different way, 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, how they do is difficult to replicate’, they are fit for ‘software product engineer’. 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, Watblog, Mashable?

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 sake of) than it wont be a great product ?

 

Note : This post is highly personal style, I am happy to hear strong arguments against it. 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’. 

 

2 thoughts on “You are replaceable if what you do is replicable : Musings on software product engineer

  1. Hi Santhosh, I have around 7 years of experience in IT and as per your definition I belong to "Software Outsourcing engineer". I have provided my answers below to the questions you have asked.1. Are you using same programming language for last several years? Based on the kind of projects i worked on, I have performed different roles (dev, tester, lead dev/tester, qa lead, onsite cordinator, engagement lead, process consultant etc). And hence I will say, I have worked in C, Java, VBA & Python. So the answer is No.2. Are you using one framework for your product development for years without even checking what’s coming on in the framework roadmap ?The answer to this question is Depends. Depending on the size/Complexity and other service level agreement, I may use the same framework. Please note that once u select a framework for a product, u usually wont change your framework simplay because u feel like doing it. neither will u change it because u think it aint cool. Unless there clearly a financial/technical advantage for doing so, people wont change the framework they use. I have seen applications which is using the same code base and framework for more than 15 years. If you are in serious business, you will think 100 times before changng the framework.3. Do you think more number of years of experience in product development means more expertise?I will consider this question as Experience in any kind of developement (As I only have the service sector background). My answer to this Question is Yes. I feel a person with experience really matters. Please note that Experience does not mean number of years spent in the industry. If you have used a given technology/framework before, that really helps. And Any experience always counts. check the industry and u can see that experince get paid always.4. Are you only a developer who writes code but who doesn’t know what a User Interface usability is?No. I am more of a visual person and for me user interface usability is very important. But given said that, i have worked with architects who prefer the command line instead of a GUI. But that doesnt make them any bad. Please note that different people have differnt abilities and expertise. a DB expert need not have to a UI specialist. It is up to the team lead to get the right person for the right job.5. Do you think writing more number of lines of code means lot of work? Yes. Because more number lines of code means, more chance for me to make mistakes, could result in more testing, and even for steping through the code during debugin may take up more time. And please dont forget the comments you need to provide for your code to make it more readable. 7. Do you only read/visit Infoq.com or stackoverflow.com and hardly visit tech-business blogs like Techcrunch, Pluggd.in, Watblog, Mashable?No. I read any crap that comes in my way. I was reading plugged.in (which i believe is simply a junk but has interesting desi startup masala), and i came across your blog. And to tell you the truth, reading those tech business blogs not make anyone irreplaceble. It sure does let u know about many startups, but unless you are sitting idle, you wont have time to check most of these startups.8. Do you think coding is fun but system administration/vi editor/server setup has no value? The answer depends on what one person wants to do. I for myself belive that any job/role has its own importance. otherwise that post itself wont be there. So ans is No.9. You don’t find time to write blogs, talk tech things in your company/city? Yes. I dont believe it matters. How does me writing a blog going to decide i am replaceble or not. please explan.10. Do you think if there is no complexity in software development (hi-fi patterns for sake of) than it wont be a great product ? I Belive in simplicity because i am a lazy person by habit. I love to do things which is easy. So Ans is no.May be it is my service sector mentality. I feel that anybody in this world is replaceble. I can replace anybody in any role easily and i have done it multiple times. And I can also setup the process which will ensure that anybody else can replace me with out impacting the quality. It is a differnt point, To replace a given person, you juzz need to find the right personl. Sometimes, it wont make sense financially as well as timely. But the fact remains that it can be done. Even the most influencial person on earth, The president of america can/may get replaced every 5 years. And I juzz cant resist telling you this. There is no differnce b/w a good product engineer and good service engineer. The only thing which can make a differnce is your attitude towards your work/co-workers and how much u are willing to learn and adapt. Unless you can work in team appreaciating each others work, learning from each others mistake u cannot make any diffence.

  2. Thanks Pai for sharing your thoughts.2. Your thought : If you are in serious business, you will think 100 times before changng the framework.[Santosh] yes I am not saying change often but keep looking ahead where the framework is evolving, how landscape changing and if you are not prepared you will be face serious issues of new breeds toppling your product business in few step.3. Your thought : I feel a person with experience really matters… check the industry and u can see that experince get paid always.[Santosh] having experience is good but thinking that I can’t do this or I will think this when I have more experinece is bad.That is where it becomes a rat race of life. Let a young engineer say : you want to setup a cloud environment, I haven’t done it but let me setup in our dev infrastructure … this is where an organization and an individual changes the dynamics of their thought about ‘expertise’.On 7 : your thought : And to tell you the truth, reading those tech business blogs not make anyone irreplaceble.[Santosh] In a world we live and we are going to, change will be much faster, hugely faster. Hence being an engineer (a product engineer), one must able to see what’s being discussed, how that impacts what we are trying to build. Hence such tech-business blog is must otherwise what ‘extra thinking power’ one will bring?On 9 : [Santosh] A tech geek must initiate/share their knowledge. Otherwise they live in a self-belief that I am great.Dangerous.On 10 : [Santosh] huge difference between a product engineer and a service engineer. Service engineer does what their client ask such as can you build a e-commerce solution for me? the service engineer simply builds. whereas a product engineer goes out, see what is the real problem, whether client needs ecommerce /something else, what are the various new /upcoming business in e-commerce, has client thought about ‘upcoming issues/legal issues with cookie’, etc etc.This is where a product guy is big time contributing to buils a successful product.Thanks once again for sharing, we live life for that.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s