Skip to main content

Engineering Leader: How to make a difference?

Being an engineering leader is not an easy task, especially when you are stepping into this role as a first-timer. Seldom you go through a training, however in most situations you are expected to figure it out yourself with little or no guidance. Often leadership demands you to play following roles:
  • People Manager
  • Product/Business knowledge
  • Architect/Senior Developer
  • Vision for technology
I will be writing separate blogs to cover the first two roles. For a beginner, last two roles are very important to gain credibility of the team which is the most important factor in succeeding at your job.
As a technical leader, you will be facing the challenges from all the directions like decision making, improving team efficiency and choosing the technology roadmap for your team. However, I hope adopting following patterns can help you sail through these challenges.

Decision Making: When hit with the problem, as a techie you rely on your technical skills and often start suggesting solutions immediately which is fine in few situations, however in my experience better way would be to ask pointed questions to lead your team in driving the right decision. Questions should be repeatedly asked to highlight the blemishes in the suggested design. For example, "How would you take care of security?", "How are you addressing scalability?", "How would application behave under these circumstances?" and many more.

It's easier to jump to the solution by picking up the first suggestion by trusting the loudest (not literally) person in the room. However, as a coach, you should be involving everyone in the decision-making process. Find out what is missing in the room, is it the knowledge, the skill or the participation. You need to create enough opportunities for everyone to participate. To do that you need to think about various factors like structure of the team, personalities in the team etc. These factors can be neutralized to an extent by bringing everyone to a common understanding of the problem. In my experience, following preparation before hosting an important meeting would make it easier:
  1. Share a document explaining the problem which can educate the team before the discussion
  2. During the meeting, explain the problem in detail so that team can align their understanding
  3. Do your homework before going to the meeting. This will help you in asking the right questions and guiding the meeting towards the solution. 
Improving Efficiency: Team delivers to the full potential if they are not disturbed and allowed to focus on the problem. As a leader, think about how the team is getting distracted, how can you make them focus on stories or task in hand? Improve the development processes so that you can minimize the impact on the team. For example, in a production issue churn out the non-technical part and direct developer towards solving the technical problem.

Vision for Technology: Successful teams stay ahead of the technology curve. As a coach, you need to ensure that your team is adapting to changing landscape of the technology world. While working with your team to strengthen the technology muscle, you need to start focusing on what should be the future technology platform for your team. If you are not thinking at least 3-months down the line, you will lose the war while you were busy fighting battles.
Be sensitive to what role you are playing in your team. You are not a developer anymore, you are a coach and coaching means understanding before suggesting, listening before speaking, advising rather than commenting.

As a beginner, starting in the world of unknown unknowns of management, I hope my secret sauce can help you prepare the right dish for your team!!!

Comments

Popular posts from this blog

Interview at Progress Software

I have given a lot of interviews before however, this one was special. Let me start from the beginning. I got a call from Progress Software and was scheduled for the first telephonic discussion. Next day, I got a call from HR and she asked me questions on Java and a few basic puzzles.  After clearing the previous round, I got scheduled for the second telephonic interview. This interview covered Java, design-related problems and algorithms. After a week, I got a call from the HR for the onsite interviews in Hyderabad. This is the first time I googled about Progress Software. I said yes for the onsite interviews. Journey to onsite started not as planned after my flight got delayed. Because of fog-related delay in Delhi, I reached the PSI (Progress Software India) office couple of hours late.  HR introduced me to the first interviewer. The interviewer explained the first round. It was a coding round (I am not a big fan of coding rounds), the problem was ...

java.net.SocketException: Connection reset

I am able to fix the problem via setting the following params on the HTTPClient class... client.getParams().setParameter("http.socket.timeout", new Integer(0)); client.getParams().setParameter("http.connection.stalecheck", new Boolean(true)); java.net.SocketException: Connection reset at java.net.SocketInputStream.read(Unknown Source) at java.io.BufferedInputStream.fill(Unknown Source) at java.io.BufferedInputStream.read(Unknown Source) at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:77) at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:105) at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1115) at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1832) at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1590) at org.apache.commons.httpclient.HttpMethodBase.execute(...

CXF-RS: Java Code Generation from xml/xsd

Cleaner approach is to use xjc like this: Continue to dirty approach below if u need to: When working with CXF-RS services often we start with XML message that will be served. After that we go through endless iteration of generating the right Java POJO's for the XML. The library like apache XMLBeans generate the Java code but the code generated is not what a developer would write and generally tedious to modify and understand. I have come across a work around for generating Java classes from XSD (xml) which is very close to what a developer with decent experience will write.  Follow the steps given below to explore the solution: 1. Generate the wsdl from from xsd as given in at this link  ( http://cxf.apache.org/docs/xsd-to-wsdl.html ). 2. The Java classes can be generated from wsdl from maven plugin entry below find complete details here   http://cxf.apache.org/docs/maven-cxf-codegen-plugin-wsdl-to-java.html org.apache.cxf cxf-codegen-plugin ...