Live data from Hacker News

The Messy Page Or: why I don't like greenfield projects

registerspill.thorstenball.com

61–70 of 87 posts

Re: The Messy Page Or: why I don't like greenfield projects

#61
post #30

Greenfield projects are 1% of a SE job. IME “the code is crap, we need to start again” really means “I don’t want to (or worse, can’t) read source code that isn’t mine”. Reading and understanding someone else’s code then making and executing a plan to improve it is a much more valuable skill. If you’re always working on greenfield projects, you’ll never understand what it means to build software with longevity.

In 14 years I've got to work in greenfield projects exactly once. You are far more likely to end up working in a huge mess of legacy code...

Re: The Messy Page Or: why I don't like greenfield projects

#62

It depends on your personality. Some people are “serial starters”. They have enormous creative fire, feel a burning need to create something new, and once it starts taking form and people start using it, they get bored and move on. Others are better finishers. They will patiently build out the core until all the required bells and whistles and niceties are there. It’s very rare to someone good at both, such as Linus…

I feel like these people make for terrible for coworkers. You'll build out a nice class or something that is being widely used and providing tons of value only to discover for a new key component they didn't use your class, built their own to no real advantage. It's obnoxious.

Another example. I did a proof of concept, demoed it to the big bosses. Got approval for it to be built. I'm not so much at the individual contributor level anymore though. Anyhow come to find the dev team didn't build off of what I started. Built from scratch and spent the first month reimplementing what I had already built. So dumb. Why do we keep doing this in our industry.

Re: The Messy Page Or: why I don't like greenfield projects

#64
> I wouldn’t say I hate the blank page, but I also don’t like it. In fact, I try to get rid of it as fast and as soon as I can.

What a weird impulse. Getting rid of a blank page ASAP!! I stopped reading here. Author prefers looking at a page of ads.

Re: The Messy Page Or: why I don't like greenfield projects

#66

I had the opposite experience. I worked at companies in the past that had legacy codebases that were strung together by inexperienced programmers years ago. This meant: - The code was basically just spaghetti with differing standards and architectures depending what area you were in. Making even the most simple changes or basic features would often break something else in unexpected ways. - There were never any tests…

> Making even the most simple changes or basic features would often break something else in unexpected ways.

As I get older I find myself valuing locality of behavior over most other concerns.

I can deal with some pretty spaghetti-ish code that's bad along many traditional metrics as long as I know what my changes are going to impact.

Re: The Messy Page Or: why I don't like greenfield projects

#67
post #30

Greenfield projects are 1% of a SE job. IME “the code is crap, we need to start again” really means “I don’t want to (or worse, can’t) read source code that isn’t mine”. Reading and understanding someone else’s code then making and executing a plan to improve it is a much more valuable skill. If you’re always working on greenfield projects, you’ll never understand what it means to build software with longevity.

> Greenfield projects are 1% of a SE job.

That very much depends on the person, industry and company.

Re: The Messy Page Or: why I don't like greenfield projects

#68
post #30

Greenfield projects are 1% of a SE job. IME “the code is crap, we need to start again” really means “I don’t want to (or worse, can’t) read source code that isn’t mine”. Reading and understanding someone else’s code then making and executing a plan to improve it is a much more valuable skill. If you’re always working on greenfield projects, you’ll never understand what it means to build software with longevity.

In 14 years I've got to work in greenfield projects exactly once. You are far more likely to end up working in a huge mess of legacy code...

I've worked on 2 just this calendar year

Re: The Messy Page Or: why I don't like greenfield projects

#69
post #5

I get that but I couldn't be more different: I love greenfield projects. I find designing a robust, performant and reliable architecture to be the most interesting part of the process.

I used to think like this, but as I worked on so many messy projects, I changed my mind.

Designing a robust/performant/reliable architecture right from the start is not "interesting", it is effectively impossible unless you have divination skills. At some point, your architecture will suck, and restarting from scratch is usually a bad idea, and that's when things get interesting. That is, fixing the mess you created, making something robust/performant/reliable out of something that is not, with the additional constraint of not breaking it in the process.

But you still need to start somewhere, even you know it will fail. It means you will essentially do a dice roll and hope for the best. Yes, the beautiful architecture you start with is nothing more than that. If you leave after that, not only it may not be cool for the ones who will inherit your mess, but you also won't get to see the hard (and interesting) part.

Of course, even though it will always be a dice roll, it doesn't mean your initial decisions won't matter. How fast will you fail? (failing fast is a good thing) How fixable your mess is? How will it fair after an army of monkeys tramples over the code? etc... These are questions experience can help you answer, but you won't get this experience by doing greenfield projects. You will get this experience by being in front of the fan as shit hits it.

So yeah, I understand the love for greenfield project. It is like a reprieve, where you can use that experience acquired during the time you were covered in shit, and try to make the best roll. To me, it is the comfort zone, but as often, the comfort zone is not the most interesting.

Re: The Messy Page Or: why I don't like greenfield projects

#70
post #66

I had the opposite experience. I worked at companies in the past that had legacy codebases that were strung together by inexperienced programmers years ago. This meant: - The code was basically just spaghetti with differing standards and architectures depending what area you were in. Making even the most simple changes or basic features would often break something else in unexpected ways. - There were never any tests…

> Making even the most simple changes or basic features would often break something else in unexpected ways. As I get older I find myself valuing locality of behavior over most other concerns. I can deal with some pretty spaghetti-ish code that's bad along many traditional metrics as long as I know what my changes are going to impact.

> As I get older I find myself valuing locality of behavior over most other concerns.

I absolutely agree, that's a big one for me as well and when I'm designing new features it's always a high priority.

Post reply on HN