Being a Software Developer - Clarity in Mind
Chapter 1: Clarity in Mind
Let me start with the conversation I had with my 15-year-old sophomore. We were driving back home from Walmart, where I got a chance to ask him about what he wants to do with his life or typical parent's question about which career they want to choose. My son nicely dodged this question saying he is not sure, but he told me that he is very much sure of what car I should buy for him on his 16th Birthday. Then he asked me, papa, “At what age did you get your carâ€. I told him, the first motorbike, I got it when I was 25 years old when I could afford it for the first time in life and I got my first car when I was 30 years old when I could afford it. Both the times, I didn't know how to ride and drive,
He then changed the topic mentioning that it is not going to happen to him and he is going to get it when he is 16 years old.
I told him, that on one condition if he closes his eyes and other thoughts in mind and thinks and introspects of what he is going to do his life.
After five minutes, he opened his eyes and told me that he wants to become a Software Engineer.
I was surprised “Software Engineerâ€, the first thing that came to my mind and told him that dude, there are more chances of getting fired as a software engineer than to any other profession, He dismissed my viewpoint by mentioning that there are many companies where he can look for and what is important is the skill and being relevant to the industry rather than sticking to the old technology which we know the best.
The same thing happens when the software engineer ages like when he is reaching 30 plus, they have to introspect and decide what excites them in their profession, is it leading people, or consulting, or they are technical at heart, based on their intuition, they should slowly get into management or design or consulting or if their heart is still in love with technology then they have to upgrade on the latest technologies. They have to keep legs in two boats, one that they are using in their project and another what is happening around the industry at that time.
If we don't focus on what is happening in the industry, then when they decide to choose another job or they are being fired, they won't succeed in the interviews as they are not relevant, and most of the industries tend to work on bleeding edge technologies except finance, insurance, manufacturing, etc, who mostly work on the enterprise technologies like java, Unix, Oracle, etc.
The chart is an interesting anecdote of how technologies play a big role in the industry and if you are spending more time in finance or insurance you are not only a software engineer who is a technical person but also you are a subject matter expert in that domain.
You are the best person who acts as an interface between the business or the product development team and the group of young millennials who boast of working on the latest javascript stack (angular/ react / UX etc) or iPhone or Android developers or machine language or big data developers etc.
So, in America, you still see software engineers who are 50 plus or some around 60, because they have the sheer passion and they love to do quality work. And also they are more contented towards life and they are absolutely sure about themselves, they have the most clarity.
Being Relevant
My friend John asked me this question, “Rama’, what is the meaning of being relevant to the industry. I said that's an interesting question. There are many aspects to being relevant to the industry.
â— Being adaptive to the process of software development. We started with waterfall style of software development, then came Iterative development, then scrum methodology, etc, nowadays we work on agile process, one task at a time and we push to production, there are several other developers who work on other tasks, so, defining the smallest scope of a particular requirement and achieving it, assists in achieving the larger goal of the product. So, orchestrator here is the product manager and a team of architects and project managers who break down the product into smaller tasks and achieve their goal and the developer has the sense of achieving or contributing to the product, making him a star.
â— Being creative is getting the right solution which is simple, accommodative and which doesn't break the architecture and equilibrium of the product. Our change should not hamper other pieces of the product, because if the product breaks in front of the customer that is the death of the product, so you guys know what happens to the company and you the software engineer. So getting the right quality solution is the most important thing.
◠Being relevant means keeping different hats at different times, Initially you wear the subject matter expert hat and understand the problem and propose an easy solution, then you wear the architect’s and designers hat and come up with a good design, designing a new feature of the working product is like adding a new card in a deck of cards, a small mistake and then system can break, we need to be very careful. As far as wearing different hats are concerned, we should wear the testing hat and test our solution in all the 360 ways. From the developer's plate, we should thrive to give a quality code that can go to production.
â— End of the day, code in production is the product and our existence is the product, that's clarity and being relevant. Technology doesn't matter what matters are being relevant.