I have wrote about Legacy Code a few years back. Today I have quite a similar story.
Earlier this year, there’s a large project involving one of our new product. We are going to fix the common issue that we found throughout the code base. It has been decided that this will be billed under one project.
The fix we are introducing is to have a common class contains shared static functions.
My responsibility is to replace the old, problematic code with the new standardized one we have above in certain business area I’ve been assigned. However, I find that we the issue is simply caused by using incorrect classes. These classes are from 3rd-party library which also contains other class that we could use to solve the problem. This library is a very well-known, and later become the basic design of the new standard library.
Later I talked with the guy who is responsible of the product. I don’t think that we are in the right direction. I believe that using well-known and well-tested class library is much better than rolling our owns. In fact, in some business area of the product, the proper class is used. Some of us knows the design of this class library quite well.
The response I’ve got is “It’s not everyone that’s as good as you”.
It makes me realized that not every people love to learn new things. They knew the platform and the ecosystem 5 years ago, they don’t know how they are today. These people get stuck in the past and becomes ‘Legacy Coders’.
My team mate that I talked with is a very skillful person. She knows a lot, and she learns a lot for all these years. It must be hard for her as well to come up with something just barely adequate, to make sure that everyone in the team are comfortable to work with product (otherwise she will be overwhelmed with work load as no one can help her.). That decision also affects be as a guy who have to support the product once it goes to production.
I’ve talked with a few people. What I found is they are not comfortable with continuous learning. They have burdens. They have spouse, children to take care of, they have drama to watch every night. They will not learn anything unless it’s officially trained during the working hours. It’s frustrating.
What I concerns more is these people teach newbies the same method they use. These newbies will have to learn the old way that was working okay, but most of the time sub-optimal. I’d like to see new people eager to learn and contribute what they have to the existing team players. Currently it looks like a lot of new graduate leaves all good thing they have learned in college behind and start all-over with just-okay stuffs the current people teach them.
That said, many graduates are not so great either. They already forgot things they learned once they leave the exam room … I found that most people value those people who follow. I also find that many those with good grades are usually good with following people, but not in coming up with their own idea.
Anyway, this is probably a good problem worth resolving. I need to try a little bit harder :-).
C++ Programmer and Music Advocate.