Why legacy code is better for you?

I have been asked about what will be my best project. I thought about my experience and I got an answer. I want to show you that and my arguments.

Why not greenfield?

I started a lot of private projects and I think this is the worst way to learn something new. Why? Because we often will use only our knowledge and we only learn something when we have the problems. These problems are rare, because we are working on the greenfield environment. Yes, we have more flexibility and we can use new features, frameworks and other tools, but green field I think is focused to deliver something fast and we don't have time to experiment. Greenfield projects are the best for the rest. We can charge an energy to another project and do something the best how we can, but this is not a good place for improvement. This is like Kata, not like learning. We can improve only skill, but not improve our knowledge.

The legacy code

Such I mentioned in my post about my mistakes in working with legacy code I worked with legacy project. I had a lot of problems. That was hard for me and I return to home very tired, but that was very interesting and very improving. I get a practical knowledge about how use System.console() on code, the liquibase, tricky about tomcat, the practical knowledge about the Request scope of beans and the way to how resolve problem with get an empty number between interval. I get this knowledge on short time, so after that happened, I think this was very useful and improving. Of course, working with that kind of projects is more stressful and we should be prepared for that fight. We should remember that these projects are not our fault. We should do everything the best we can and don't care about stress.

The mentioned project was not my first. I fought with two legacy project before it. Such as remembered these projects, learn me a lot of things, after the fight I want to learn how write a clean code (yes, these were terrible).

Summary

I don't say we should work with legacy code all our time. This is not a good way, because we don't have time to pass our knowledge, improve our skills, test it and rest. We should sometimes work with legacy code to experience the new hard adventure, because this is a key to get fast a knowledge.

Comments

Popular posts from this blog

Why TDD is bad practice?

How correctly imitate dependencies?

Software development using Angular 5 with Spring Boot