DEV Community

Ben Halpern
Ben Halpern

Posted on

Do you prefer starting new projects or working on existing ones?

Green field or brown field?

Discussion (31)

Collapse
jdmedlock profile image
Jim Medlock

Both! I get a lot of satisfaction working on existing project that I believe in and am passionate about. But, I also work on new projects because our growth is limited if we don't broaden our horizons.

Collapse
deciduously profile image
Ben Lovy

There are few things more satisfying than turning an old convoluted mess of code into something clean, organized, and maintainable.

...why my GitHub is packed full of quarter-baked messy unfinished ideas is beyond me.

Collapse
murrayvarey profile image
MurrayVarey

Absolutely -- refactoring is good for the soul.

Collapse
ben profile image
Ben Halpern Author

I used to like starting things but I think I've swung hard in the other direction being years into something I once started.

I have a hard time sitting down and doing all the base work for brand new things.

Collapse
pachicodes profile image
Pachi 🪐 (she/her/ela)

I like starting things but mostly because I always feel lost jumping into something already going on.

Collapse
ms_yogii profile image
Yogini Bende

Relatable! I get stuck at understanding the logic, the code practices followed and end-up asking so many questions to fellow devs. This initial phase makes you a little uncomfortable and you start getting into the imposter syndrome zone but once you pass this, every time you get to learn so much out of this.

I personally prefer starting projects from scratch but I have started to contribute to the existing projects whenever possible.

Collapse
ben profile image
Ben Halpern Author

What makes you feel lost?

Collapse
pachicodes profile image
Pachi 🪐 (she/her/ela)

A little of newbie Syndrome ? Like having to learn and understand what the other people done to the project and how I make meaningful contributions.
It is probably fear tbh

Thread Thread
ben profile image
Ben Halpern Author

This is all pretty normal. Ideally people involved in the project can provide as much guidance and empathy as possible. And otherwise merely hanging around where discussions happen goes a long way.

Thread Thread
pachicodes profile image
Pachi 🪐 (she/her/ela)

Guess I got a find a project!!!

Thread Thread
jinglescode profile image
Jingles (Hong Jing)
Collapse
waylonwalker profile image
Waylon Walker

I really like seeing a project come together. I like the feeling of taking it to the next level. Starting new things all the time seems like you never get anything too far along.

My /temp directory disagrees. There are 100s of quick projects left here to be forgotten forever. Really though I like to start simple new projects to shake out new ideas that I intend to implement on existing projects. Sometimes I come up with good ideas. Many times I am glad that I tried it in a toy project, learn from it, and move on.

Collapse
nickitax profile image
Nick Shulhin

Good question!

It can be rephrased as: "Would you take a red or a blue pill?"

In one scenario you write everything from scratch and create your own vision of bliss with ignorance, while in another one - suffer reality of unlimited refactoring, migration and "God, how does it even work!?".

But from personal experience jumping on existing project is much more interesting and beneficial.

First of all, you challenge yourself to dive into sometimes unknown stack + playing decipher games on written codebase.

Being abused with careless code makes you re-think an attitude: you should write a code like the next day it will be carried over by another team 😁

Collapse
patryktech profile image
Patryk • Edited on

Preferably new, but I don't mind existing as long as it's not spaghetti code with a best before date of ~2009...

Nice maintainable code base, with proper documentation and tests? Don't mind working on that one bit.

Collapse
roelofjanelsinga profile image
Roelof Jan Elsinga

Both! Brown field because I love shaping projects to serve a (new) purpose. Green field for the same reason, but also exploration of new techniques and being able to change a lot of stuff in a short period of time. The endurance I get from brown field is important for me as well as the new and shiny stuff.

Collapse
darkterminal profile image
Imam Ali Mustofa

Both! Coz, I like reading code is written by another developer, so I can learn their logic and their structure "how", "why", "what", "who", and "where" they go first and make the plot and twist in the app they have work with.

In the new project, on my own; it's nice to go and make something good and make the client happy with their hope and goals.

Collapse
hazhayder profile image
hazhayder

If you are a newbie and want to learn new stuff then go for existing ones because you will have to improve your analytical skills and you have to improve debugging skills ones that is done you will feel more satisfied.

Collapse
jeremyjackson89 profile image
Jeremy Jackson

While I like both, I do prefer existing projects.

Starting a new project presents it's own challenges and gives me the chance to be a bit more creative with my problem solving and can put me into a situation where I have to learn a new way to accomplish something.

Existing projects still allow me to create, but I'm a bit more confined to the way that things are already being done (unless it's my own project then I can just rework it how I want).

If it's an existing project on a team, there are plenty of learning an teaching opportunities since there are different (and more efficient) ways to accomplish something via code. You get to grow and help others grow.

Collapse
idoshamun profile image
Ido Shamun

There is something nice in existing projects that everything is already setup. You have the CI/CD pipeline working, tests, lots of boilerplate code that's there, BUT... starting a new project is always exciting! Deciding your stack (it's always an opportunity to sneak in a new tech), software design, no legacy code, just an empty file with so much potential to be awesome.
I just love starting a new project, especially when you buy a domain.

Collapse
gsto profile image
Glenn Stovall • Edited on

I've never heard the term "brown-field" before but I love it.

It sounds a little woo-woo, but once I took a personality test, and one of the results said something that resonated with me:

"You don't excel at starting new things, but your biggest strength is making good things better."

So for that reason, I'll say "brown-field." I struggle with creating from scratch, but I enjoy refactoring, optimizing, and building on work that is already solid.

As a counterpoint, My favorite way to test and learn new things has been in the green field space. Create a new project, mess around, take notes, delete it at the end of the day. Sometimes when you want to plant a tree you don't want to do it in the middle of a forest.

Collapse
rhymes profile image
rhymes

I like refactoring and debugging so jumping in an existing codebase is fun!

I once succeeded in porting a MySQL DB with its schema coded inside the PHP app that sit on top of it (the nightmare of anyone who knows about DB design and knows about normal forms ahaha). It had dozens of tables each with artificial columns the PHP code read to know where the rest of the data was. No wonder the company wanted it gone. The data had to be moved to the new app.

I ported it to Django + Python + PostgreSQL without knowing either PHP or MySQL 😂. Fortunately the company knew what the new app should have done but writing the correct scripts to import the data was... complicated 👀

Collapse
thebinarymutant profile image
Smit Patel

I prefer starting new projects and abandoning them to start a new one 😉

Collapse
codebymdb profile image
Michael Bonner

Ideas pop into my head all of the time so I do prefer starting new projects to a point. However sometimes thought adding a set of features to an existing projects feels like a whole new project.

Collapse
pavelloz profile image
Paweł Kowalski

Making new things becomes easy after X times. Maintenance is much more challenging and verifies all decisions made, which is necessary to grow as serious developer.

Collapse
delta456 profile image
Swastik Baranwal

Depends. If I get better experience and meet new people on working on existing ones or make something on my own to not have built on not making anything myself.

Collapse
xanderyzwich profile image
Corey McCarty

I love the planning and design so green field is exciting (not that it often happens), BUT working in legacy code is more satisfying when you can bend old spaghetti to your will.

Collapse
sumitkharche profile image
Sumit Kharche

No matter the project is new or existing one development challenges are always there. So I would prefer working on both.

Collapse
murrayvarey profile image
MurrayVarey

I love brownfield projects. Particularly getting to press Delete on unwanted bits of old code. So therapeutic.

Collapse
bobwalsh47hats profile image
Bob Walsh

Apologies for reaching out here, but I've not found anywhere else.

  1. why is there no way within dev.to to email someone?
  2. why is there no forum?

Thanks in advance,
Cheers,
Bob