When It’s Ok Keep Telling Yourself Everything Will Be Ok

My wife Michelle, son Finn, and I live in Greenpoint, Brooklyn. It’s a chimera of hipster boutiques, Polish neighborhood stalwarts, and newer families. It costs a decent amount to live here. Your real high rolling trust fund kids will still likely waft about Williamsburg, but Greenpoint is up there too. We pay for the quiet cozy feels and lovely Franklin street living every time we send the rent to our faceless landlord in Manhattan.

…my point is, it’s a bit of a luxury item and a huge privilege to be able to live here. It’s a nice place. New York has plenty of not nice places that are cheaper.

We were ambling back home from our daily “chase Finn around Transmitter Park” down West street and I looked up. It’s a dump. In the middle of a privileged paradise, a dump. Trash every where, petrifying dog turds, mud, nails, broken glass, torn up sidewalks, barriers, construction material, and unpaved portions of street.

I made a joke to Michelle that I’d like to quit software engineering and take up carbon dating dog leavings on the sidewalk to classify eras of gentrification. “Ooooh. Look honey! This is definitely from the Protohipsterzoic era. See how nicely it’s nestled next to that Carhartt jacket? Definitely a French bulldog.”

No one is losing their mind about this though. They’re all wryly pissed, as all good New Yorkers know how to be. But somehow we’re ok with paying the highest rent in the country and looking at this right now. Why?

The only differences between what I was looking at and a main drag in an impoverished developing country are time, resources, and committment.

Time: this is construction work. It’s transient. We know ‘this too shall pass.’

Resourcing: there are sufficient resources (money, materials, expertise, workers, architecture) to put everything in order, possibly better than before.

Commitment: all stake holders (politicians, developers, and council) have vested interest in getting this done and to code so they can begin cramming more knit cap caboodles in here. There’s mad $$ to be made.

So, it’s going to be ok one day.

After quickly dropping the anthropology career fantasy I went right back to software engineering. How many companies are willing to pay luxury prices for a software product, only to live next to an eternal dumpster fire of code?

Where’s the disconnect between time, resourcing, and commitment? The money is definitely there. I’m talking well funded companies. Maybe that money isn’t put into the dev team. Maybe other resourcing isn’t put into the dev team. But I think most commonly the problems are the other two. I’m going to assume decent enough resourcing.

Time: we manufacture peace by believing that bad code is transient. But it’s not. It’s more like perpetual. It’s as perpetual as your product. So we think someone has it under control, or we will, and ‘someday’ we’ll all live in Beautiful Town, USA.

Commitment: Quality as a requirement and technical debt on rinse and repeat.

Do you and your stakeholders plan code quality into your estimates?

Do your stakeholders know that this is a way to stay agile and make mad $$? Agile code makes Agile, agile. I’ve been a part of plenty of shops that practiced agile process only to find it didn’t gain them much more than anything else had. The code was brittle, unintelligible, unextendable, and inestimable, i.e. slow and cumbersome. So you’re not committed to Agile, until you’re committed to producing agile code. And agile code takes consideration. Enough consideration to fill a small library.

Are you and your stakeholders committed to planning around tech debt?

If so, do you have the expertise to tackle it or are we just spreading the mess around? I’ve been part of and led a few tech debt projects where by the end, no one really knew what the benefit was because we didn’t have the expertise to really achieve much better. Diagnosis and prognosis are worlds apart, and painful years of expensive experience lie between. Hire or actively learn from a few people who have bridged that gap and lean into them every so often. Level up the entire team constantly with and around these folks and the greater dev community as a whole.

This feels like it starts to bleed over into the resourcing concept, but it doesn’t. A fatal flaw in most, if not all devs is the belief that they can make something that is obviously terrible, much much better. We’re part of the problem and we have to be committed to growing in refactoring patterns and apply those lessons to new development projects. We have to be committed to learning from others and reaping the benefit of collective experience. This type of committment is something internal to a developer that no amount of company resourcing can change. It’s also mostly free of charge thanks to the internet and slack. I have learned more from a $200 pile of books and blogs than I did from a $120,000 degree for this job.

So, with code, It’s not going to be ok one day.

You should do something with that initial panic.

Ask questions around time, resourcing, and committment and keep acting.

You’re not going to get paradise, but you might get somewhere decent, with a Walmart and a yard.