Live data from Hacker News

Ask HN: Efficiency of 10x engineer while refactoring legacy/messed up code base?

news.ycombinator.com

1–10 of 23 posts

Re: Ask HN: Efficiency of 10x engineer while refactoring legacy/messed up code base?

#2
No, because 10x is a myth.

Usually someone described (probably by themselves) as a 10xer are the ones responsible for the code base being so bad in the first place. 10xers only work on green fields, they never get a chance to see what a catastrophe their ideas turned out to be.

Re: Ask HN: Efficiency of 10x engineer while refactoring legacy/messed up code base?

#3
Disclaimer: I don't call myself 10X anything but I do work through 10X Management. I only work on legacy code, that's my specialty. My opinions are my own and don't represent 10X Management.

First off not all legacy code is "shitty." The main reason I am 10 or 100 or 1000 times more effective with legacy code is that I'm usually the only programmer the customer has talked to who will work with it. Everyone else has one solution: Throw it away and start over with [insert favorite cool language/framework/ideology]. So at least in my experience it's not that I'm 10X more effective, it's that everyone else is 0X effective because they won't even try.

It's easy and maybe fun to simply dismiss legacy systems as junk and shit and catastrophes, but when a business has a system that mostly works and they need some debugging, enhancement, improvement it's usually irresponsible to tell them to start over. When you do that you are telling the customer to throw away something that works, even though it has problems, and take a huge gamble on a new system that is 75% unlikely to even go live. You are telling your customer that your one hour reading of some code that you declare "shitty" is more informed than all of the cumulative experience of previous developers. You are telling your customer to change business processes, retrain staff, all on your word that you are more clever than the last team.

Imagine if you had a leak in the roof at your house and the first five people you called out to repair it told you to tear the house down and start over. And they told you that because the house wasn't built with the kind of lumber and roofing they prefer, or they don't think it's aesthetically pleasing based on their strict adherence to Frank Lloyd Wright's style. Or that whomever built the house must have been morons because they didn't properly label all of the wires and pipes. That's a story I hear about software systems every month.

The most important metric of software is whether it solves a business problem and adds value or not. What language it's written in, or whether the last programmer used spaces or tabs or camelCase or knew OOP as well as you think you do are not relevant metrics from the customer's perspective.

And since a lot of the code I work on is not actually that old -- in fact it's just as likely to be the unfinished remains of the last green fields team -- I can say without hesitating that the worst code to work on comes from programmers who are so committed to an ideology or language or toolkit they lose sight of requirements and the only goal that matters: adding value to the business.

Re: Ask HN: Efficiency of 10x engineer while refactoring legacy/messed up code base?

#4
post #2

No, because 10x is a myth. Usually someone described (probably by themselves) as a 10xer are the ones responsible for the code base being so bad in the first place. 10xers only work on green fields, they never get a chance to see what a catastrophe their ideas turned out to be.

Generalizations, not true. In my experience many of the most talented and valuable programmers work on important legacy systems. There is a class of programmers who only want to work on green fields projects, and they may think they are 10X or ninjas or rockstars. They aren't. That's arrogance, not skill or expertise or ability to deliver. I have 40 years programming experience to back that up.

I agree that measuring individual programming productivity, or making any general statements about it, can be so hard that it's almost meaningless to say anything. Someone can be wildly good on project A with team X, and then flail on project B with yeam Y. I wrote about this: http://typicalprogrammer.com/why-dont-software-development-m...

Re: Ask HN: Efficiency of 10x engineer while refactoring legacy/messed up code base?

#5
post #3

Disclaimer: I don't call myself 10X anything but I do work through 10X Management. I only work on legacy code, that's my specialty. My opinions are my own and don't represent 10X Management. First off not all legacy code is "shitty." The main reason I am 10 or 100 or 1000 times more effective with legacy code is that I'm usually the only programmer the customer has talked to who will work with it. Everyone else has o…

This is the best thing I read for ages.

I work with legacy systems all the time, lately mostly CRUD web apps, but I have debugged myself through pages of Excel macros, database drivers in enterprise systems and some code that was almost as old as me, and 100% agree with what you have written.

Bookmarking this post for future reference.

Re: Ask HN: Efficiency of 10x engineer while refactoring legacy/messed up code base?

#7
post #3

Disclaimer: I don't call myself 10X anything but I do work through 10X Management. I only work on legacy code, that's my specialty. My opinions are my own and don't represent 10X Management. First off not all legacy code is "shitty." The main reason I am 10 or 100 or 1000 times more effective with legacy code is that I'm usually the only programmer the customer has talked to who will work with it. Everyone else has o…

[deleted]

Re: Ask HN: Efficiency of 10x engineer while refactoring legacy/messed up code base?

#8
10x is a strange label. I don't think that 10 times the efficiency of an average engineer is achievable consistently anyway. Programming depends on so many extrinsic factors like the environment you're working in, the product you're working on and the people you're working with. Effective communication probably is the single most important aspect of successful software development. Thinking of yourself as someone who is 10 times better than others likely doesn't help in that respect.

That said, there are certainly engineers who particularly excel at working on legacy code bases. Refactoring and modernising an existing codebase poses an interesting challenge and it provides actual business value. Anyone can start a new greenfield application. Working on a legacy codebase takes at least a bit of courage and a deep understanding of the business involved.

People often seem to forget that a supposedly shitty but working codebase for the most part probably didn't become that way because its original developers were just stupid but because the business requirements are inherently complex and contain a lot of edge cases. By decrying legacy code you might throw out years or even decades of expert knowledge about the business.

Re: Ask HN: Efficiency of 10x engineer while refactoring legacy/messed up code base?

#9
post #3

Disclaimer: I don't call myself 10X anything but I do work through 10X Management. I only work on legacy code, that's my specialty. My opinions are my own and don't represent 10X Management. First off not all legacy code is "shitty." The main reason I am 10 or 100 or 1000 times more effective with legacy code is that I'm usually the only programmer the customer has talked to who will work with it. Everyone else has o…

> Imagine if you had a leak in the roof at your house and the first five people you called out to repair it told you to tear the house down and start over. And they told you that because the house wasn't built with the kind of lumber and roofing they prefer, or they don't think it's aesthetically pleasing based on their strict adherence to Frank Lloyd Wright's style. Or that whomever built the house must have been morons because they didn't properly label all of the wires and pipes.

Sometimes they are required to tell you that. If there are obvious structural faults with a house then it's an OHS issue to be on the roof in the first place and the whole building could have to be condemned. A lot of software is in that state, but the organisations that use it have a remarkable ability to route around errors.

I do agree for the most part, but as an industry we still rarely find that middle ground where maintainers can actually do preventative maintenance and slowly improve things. Very few maintenance programmers are actually doing maintenance work, there bolting on new features or fixing prioritized bugs. If I was in charge of building maintenance then my success threshold would be considerably higher than "the buildings still standing".

Re: Ask HN: Efficiency of 10x engineer while refactoring legacy/messed up code base?

#10
post #8

10x is a strange label. I don't think that 10 times the efficiency of an average engineer is achievable consistently anyway. Programming depends on so many extrinsic factors like the environment you're working in, the product you're working on and the people you're working with. Effective communication probably is the single most important aspect of successful software development. Thinking of yourself as someone who…

Very true. In many businesses their software systems are the only coherent and (mostly) consistent description of business processes. There may not be any documentation and often no single person in the company knows how everything works. Customers will tell you how they'd like things to work -- green fields projects give them a chance to dream and try to fix everything -- but whatever code they have tells you how things actually work. Ignore that at your peril.

I don't care how 10X someone thinks they are. No one can walk into a business, have a one hour meeting glancing at some screens, click through some code ("Oh wow. Shitty. This is terrible.") and learn even a tiny bit of how things actually work. Yet I see proposals for tens or hundreds of thousands of dollars based on that kind of shallow analysis, and a customer high on the promise of seeing their dreams realized in what will be the first perfect software development project in history.

You're exactly right, "Anyone can start a new greenfield application. Working on a legacy codebase takes at least a bit of courage and a deep understanding of the business involved."

Post reply on HN