Pages

Showing posts with label Being A Tech Manager. Show all posts
Showing posts with label Being A Tech Manager. Show all posts

Sunday, September 9, 2018

A Tech Manager's View on Full Stack Developer

As a hiring manager, I was asked by agent about full stack developer. I am not a big fan of so-called full stack developers. 

No one can have unlimited memory and time to be expert in all area. I am more interested in knowing what the depth one can go. Those average stuff can be searched from internet. Those experience does not demonstrate the critical thinking skills. Those solution, with high probability, introduces high maintenance cost down the road.

Being deep in one area requires perseverance and talent, those attributes will provide a foundation to long lasting solution. 

Being a technology manager, maintaining different technology stack has a huge cost factor and segment team into small silos. The team effort will be lost. The tech plan and road map is missing. 

I have read some job description that requires tens of unrelated technology. This kind of position really makes me thinking how effective the tech management is and what the team looks like.

Friday, August 31, 2018

Technology from a Tech Manager's View - Measure Productivity

It is always an intriguing topic about software development productivity. There are some attempts to measure productivity. From those numbers, there are some conclusions and team chaos and management challenge are knocking at the door.


First of all, I do not think this productivity is measurable. If a computer program can understand how much effort to solve a problem, this program will be smart enough to solve the problem. Then we don’t need software developers at all.

The worst thing about this measurement is let team members know about it. The assumption is measurement will give insight into the problem and eventually leads to a solution. Not mention the trust between employee and management is broken, the assumption itself has a fatal error. You can measure stone's size and weight and those numbers won’t change. However, the subject of the measurement is human who will change the behavior if s/he knows someone is watching.

Naturally the subject (human) changes behavior to make the number better. Will this change really improve the productivity? Most likely not. The first thing human subject can do is to game the system. Will this effort result in high quality software? No. When you know you are not trusted, are you willing to contribute more?

Einstein's noble prize paper is only a few pages. Essentially the attempt to measure is put equivalence between software development activities and operational labor work.


Saturday, August 25, 2018

Technology from a Tech Manager's view - Coding Standard

I have been in this industry for more than 10 years. Growing from a junior dev to a senior manager, I associated my name with many projects. I witnessed some interesting practices during the software development, especially in a team environment. This post is the first post I want to share my thoughts as a tech manager.

Coding standard or best practice? I have witnessed so many attempts to set up some coding standards in a team and failed. There are still coding standard proposed every day and I bet there are some emails flowing around  now. I can't say all of them, but most of them, will fail miserably. I have seen quant code, dev's code, system admin's code, etc. It seems that everyone has its own coding standard. Every industry has its own way to practice the software development. Is there a general coding standard, or should a coding standard exist at all? 

Now days, I feel those standard or effort to push such standard does not make much sense. Programming language is a way human tell a computer how s/he understand and solve the problem. It is like human language. Is there a standard way or "best practice" to say something? Do you have the "best" way to describe how solar system works for a 10-year-old boy? Is the "best way" still the best when facing a 20-year-old? 

For me, I think the best way to set up the "best practice" to understand your team. if my team has quant or physics background people. They want to use single-character variable name, it should be fine. Take a look at those mathematics paper they read every day, it is not difficult to understand why single-character variable name is the best choice for them. 

If I had a team whose members are all system admins, should I ask them to define interface or introduce complicated inheritance? Definitely not. Does this mean my project will fail? No. 

My job is to have my team to tell the computer how to solve a business problem. My team will use a programming language + framework to describe the solution. As a tech manager, my job is to choose the right technology for my team. That technology should be the most efficient and convenient way to 
  • understand and communicate among team members
  • communicate between a human and a computer
The diversity of technology is the outcome from innovative person and team to serve different people in different business environment. If you are pushing for innovation and still enforce a rigid coding standard, think twice.