I was invited at an IT services company in Bangalore to give a talk on technical leadership last Friday. During the talk as well as in the Q&A session several questions were raised. I realized that there is a need for a platform where engineers transitioning from being a technical expert to becoming a technical leader can turn to for raising doubts, discussion and guidance. I also realized that there are several people out there, some of whom I know personally, who are in a better position to answer the questions than me.
With this background, here is an attempt to create an FAQ forum for questions related to technical leadership. To get started let me use following definition of a technical leader - we can always question the definition later. A technical leader is someone whose sphere of influence due to his technical expertise is significantly greater than his span of control. As per this definition, engineers on the technical ladder (Product / Solution Architects, Principal / Chief Engineers, Technology Consultants, Scientists) are technical leaders. Moreover, managers who are able to influence people beyond their team with their technical expertise are also technical leaders.
Please give your views by clicking on any specific question and then adding your comment. You can also raise a new question.
FAQ:
2. I like to work alone and not worry about other peoples’ salary / leave etc. Does it mean I should opt for technical career path?
4. Will the IT industry in India need more managers or more technical leaders in future?
In IT services companies, one needs to move from project to project - each lasting only a few years. How does one balance breadth vs depth?
ReplyDeleteReply from Raja Bavani
DeleteOne must identify the commonality among projects and connect the dots. That is the way to expand knowledge or gain breadth. IT professionals need to think beyond learning from project experience. This will help acquire indepth knowledge.
Let me try to build on what Raja is saying. Here is a 4-dimensional view of one's expertise:
Delete1. Technology: You are building expertise in using technologies like Java / Oracle / Microsoft / SAP effectively. You could also be contributing to building these technologies either through open source or inhouse in your organization.
2. Domain: You may be building expertise in domains like Financial services, Telecom, Healthcare, Retail, Consumer electronics etc. It involves understanding what do users / consumers need today and will need tomorrow. What are the regulatory trends and how do these impact this domain. What does compliance means in case of healthcare or telecom etc. Your domain expertise could also be in areas like Graph algorithms or image processing or Service oriented architecture or cryptography each of which can be implemented in multiple technologies.
3. Product/Solution: You could be gaining expertise in how products/solutions are built like a mobile phone, an CT-scan machine, a billing solution for a Retail chain or a core banking solution for a large bank. You may be getting familiar with how to meet various product quality parameters like availability, testability, usability, performance, security etc.
4. Process: You may be gaining expertise in one or more phases of engineering processes. It could be development or testing. It could be Agile methodology. It could be requirements management etc.
Coming back to the original question, as I go from project to project, I need to see in which areas am I building my expertise. For example, if you go from a project for building billing software for a retail to a billing software for a telecom company, your depth in "billing solutions" will increase and your breadth in domain will increase.
Over a period, it will help to build a position in one or more areas and start communicating it through various channels like blogs, special interest groups etc. This will increase the chance of you getting invited to the relevant projects.
Reply from Amit Sharma from Hyderabad:
DeleteFor a technology guy, breadth actually works in favor of depth if one’s looking at learning the solution patterns and not just the implementation specifics. What distinguishes an experienced technical leader from others is one’s capability to identify the problem pattern and then apply the most optimal solution pattern from their toolbox to it.
Generalist vs Specialist
DeleteThis is a pitfall in services companies. I would say you're lucky even if you continue upto a year on the same project. the unfortunate statistic is that the time frame is nowadays perhaps only a couple of months on what project(Eg. Smartphone Apps development).
So services companies generate more generalists than specialists. This is only true for India where people hop projects and companies very frequently.
It's a well known fact that the more time somebody spends in a technology area, the more the expertise he/she gains.
So I would say to maintain depth while frequently urged to take up odd new stuff, it's best to exercise freedom and try to say no to totally tangential projects and stick to projects wherein you can carve yourself as an expert in a certain area.
If there're no client projects in that area, then try to work on a research project in that area, and try to come up with new ideas in that area that will make the organization see the value in building skills in that domain.
It's a tough call, and takes some guts really to stick to some domain in a services company where changeability/bill ability pressure influences all decisions and outdoes any attempts to do what you like!
Having said this, after a certain period of time, breadth is very important. The ability to apply one solution in a totally different scenario is an important skill set. Knowing different areas, also makes you grow in the solution architecture space. But for deep technology expertise, it's best to stick to one area and be known as the be all and end all in that space.
From a generalist perspective, he has to be jack of all trades and master of some!
I really like your response, Mable. It brings out some ground realities in the IT services companies clearly. Also your advice on building a position in certain areas is a good advice. I am hoping some engineers who have experienced that this either an impractical or very difficult approach voice their views here.
DeleteI like the four dimensions.
DeleteI work with a specialized company and encounter this problem regularly. Customers expect people with rich domain and product skills backed by technology foundation and aligned with process.
So at times this becomes a rare combination ..when specific requirements ... Manufacturing domain and XYZ product implementation experience.
Having said that it is quite tricky choice for individuals.
Many specialists of sun-set products have got stuck into maintenance project .. and aspire .. While risk of being super specialist makes you redundant if requirement change..
Jack of all trades and master of some! This is good advice !
People should move to new technology areas as that helps one solve problems in an efficient manner. However, should stick to a domain for substantial time. Also, these days the problems are becoming more cross-domain/technology that needs to be solved, so it may not be bad idea to get to know more domains / technologies. Of course with some depth.
DeleteI like to work alone and not worry about other peoples’ salary / leave etc. Does it mean I should opt for technical career path?
ReplyDeleteYou could be on the technical career path (Solution Architect / Principal Engineer) and be an individual contributor. As an individual contributor you don't have a team reporting to you. However, the role is far from "working alone". You would be responsible for various technical decisions (requirements, design, problem-fix etc). These decisions will be affecting various other people (developers, QA, product managers, customers, project managers). Hence, you need to interact and get a buy-in for your decision. Your solution could be technically very sound and elegant. However, it could very well get shot down if there is a pressure to meet the delivery schedule and people feel that this is not the right time for the change.
DeleteNote that not everybody on the technical ladder is an individual contributor. You could be an Architect and have a team (typically small) reporting to you.
Reply from Raja Bavani
DeleteTechnical leaders are not lonely professionals. Teams skills are critical. More on this at http://www.mindtree.com/blogs/software-architects-evolving-breed-software-professionals
Reply from Amit Sharma, Hyderabad:
DeleteNo way – all career decision should be a choice by passion and not through elimination. In fact, if we are not sure what we like to do, technical leadership should be one of the first options to be thrown out of the window!
I am a Java person with 6 years of experience. What can I expect to be doing 4 years from now? Where do I begin?
ReplyDeleteReply from Raja Bavani
DeleteGood question. Introspect. Try to understand your strenghts. Check if you have identified your areas of specialization in Software Engineering. If yes, pursue those areas. Also, identify a mentor in your organization or in the industry and seek help.
My favorite place for "where to begin" is what I call "Building a challenge book". Ask yourself the following question: "Assume I am given one week off from my regular work. However, I am required to come to office and do whatever I want. What kind of problems will try to explore / research / solve?" Keeping a list of such problems that I am curious about is what I call a "challenge book". Start by building a challenge book. Don't worry about whether you will get such a time-off. You will be surprised by the power of your challenge book. It carries an energy of its own.
DeleteReply from Amit Sharma, Hyderabad:
DeleteThere are several known issues with what each technology does well and what it could do better – reading across journals and discussing them in the right forums, we can get to know what those are. One can start looking at which one of those they want to address some time down the line. Additionally, one could also look at solving a known business problem or a limitation through their ‘smarter’ design if they had something in mind. It’s OK to start small – but keep going.
I think one need to associate with domain of work, because technologies would keep changing for good. In that case the question of Java or anything doesn't arise.
DeleteGreat thought and you are at the right juncture to seriously think about where to go from here. If you want to pursue technical career path then I would suggest that explore everything [the explored] which can lead you there. I will give couple of examples: Back in 2006 when I was at 6 yrs exp and by then I was thinking that I have acquired many skills. But I was wrong until I went and participated in one Architecture conference. I had an opportunity to listen to senior technology architects and prepared my notes from there. I came back and started going deep onto some of the tracks. That is how I explored the unexplored. Again in 2008 had an opportunity to attend a 5 day Java/J2EE training and that brought out the reality that we knew only few things which were good to build few applications. But in order to build depth you need to continue experimentation and also build POCs as you go forward.
DeleteOne important thing that always have that zeal to learn something new and explore what is lying below the surface of this new stuff!!
Here are my 2 cents for you:
1) Start going below the surface to measure the size of the iceberg. As what we use to develop is just a tip and ignore the depth!!
2)Explore the unexplored. Try and participate in seminars/conferences on design/architecture and you will get to know many insights on latest technology trends.
3)Always think twice before you write a single line of code that why are you writing it [understand the functionality] and how can you make sure that this is the full-proof code which follows the standards.
I would say that next 2-3 years will be crucial for you to build the skills which will last for another 6 years from there :)
All the best and keep going!!
I like Sandeep's idea of attending conferences / forums. Ever since I changed my field from Telecom software to Innovation engineering six years back, I have made sure I attend at least one conference every year. I have also participated in Bangalore Innovation Forum since it started in 2008. In fact, every year I budget an amount (say Rs.10K) to be spent on these activities. Mid-year I take a stock to see whether I have spent the money. And what do I learn? Like Sandeep mentioned, I get to hear experts, check some of my assumptions, meet new people, observe what it means to communicate well and finally, get to watch how not to communicate. I also visit places where I get to see innovation engines in action - be it Hubli sandbox, Anandwan in Varora or Innovedge at Titan.
DeleteWill the IT industry in India need more managers or more technical leaders in future?
ReplyDeleteReply from Raja Bavani
DeleteBoth. Managers with sound technical background and focus on continuous learning will add value to the industry.
Reply from Amit Sharma, Hyderabad:
DeleteAgain, if this question is to decide whether to become a manager or technical leader, think again! Both roles are important and help build a good career, a lot depends on what we want to do and what we are capable of doing.
My friend and cousin Ishwar Parulkar shared this link from Zinnov Consulting on how the technology talent is distributed experience-wise in the US and in India/China. Excellent data.
Delete---
Interesting findings from Zinnov: 75% tech talent in US has over 6 yrs experience. It is inverse in emerging countries.
--Ishwar
Technology such as .Net or Java changes very fast. How do I cope up?
ReplyDeleteReply from Raja Bavani
DeleteParticipating in Knowledge Communities, Forums, and events such as conferences, workshops etc,. is a must to cope up with this kind of evolution. Group learning and sharing is required to stay updated.
Reply from Amit Sharma, Hyderabad:
DeleteIt’s good for us that technology is changing fast – it gives us an opportunity to be able to learn and grow while building on existing knowhow. I’d look at the trend of these changes more than the details of it unless I need to. It’s good to know the area we are working in very well but more importantly, the needs which drive technology changes and the patterns these changes follow are pivotal in understanding the technology stack across all platforms – trust me, there’s a lot of similarly across them. And who knows, we could possibly come up with recommendations ourselves for one of these technologies, possibly even implement them!
The first thing you need to ask is what gives you the greatest kick. If solving technical problems or comning up with new technological solutions is what defines your existence and matters more than anything else, then you are a good candidate for a technical career path. On the other hand, if your biggest motivation comes from money or being liked by others or from getting promoted and going up the career ladder, I would imagine a technical career path is not for you.
ReplyDeleteI really like Rishi's "greatest kick" question. It is a very good starting point for reflection. However, I am not convinced about the "on the other hand" part. Bill Gates is one of my favorite technical leaders. Bill Gates was thinking of starting a Fortune 500 company right from 7th standard. i.e. money was a big motivator for him very early on. Many of my friends are on technical ladder and none has complained about salary so far. I have been in annual salary revision meetings for at least half a decade and the folks that got the best deals were technical experts. One of my friends recently moved back from Bay area as Senior Principal Engineer after 15 yrs of experience in the US. He said his salary in Indian Rupees is same as what he got in dollars in the US.
DeleteSo, I feel that if you are on the technical ladder, you are likely to get decent money. The question is how many such positions are there and more importantly how many more opportunities are going to come up in future in India for such roles. If anyone has a view on this, please share.
Well, i feel people with right attitude & hunger need not worry whether positions exist or not; for sure, it can be "created" for those deserving ones..
DeleteThanks Vivek. I am curious: What constitutes "right attitude" according to you? And what should the engineer be hungry for?
DeleteThe readers of this blog may well be interested in my best-selling book, Becoming a Technical Leader.
ReplyDeletehttp://www.geraldmweinberg.com/Site/Technical_Leader.html
Thanks Gerald for sharing this. When I decided to become an independent consultant in 2005, one of the first books I bought was your "Secrets of consulting" and found it very helpful. Having said that I must admit that I haven't read your book on technical leadership and plan to do it.
DeleteA couple of observations: On "flipkart.com" which is India's Amazon, your book on TL is shown as "out of stock". Second this is that there is no Indian/Economy edition of this book. If you want the book to reach a large mass of technical professionals in India, an economy edition will help. I have a Kindle and it is nice to see the Kindle version available. However, e-reading hasn't caught on here yet.
Realized my knowledge on kindle reading apps is outdated. Kindle books can be read on Windows, Android, Blackberry, iPhone/iPad/Mac etc.
Delete