> this code generates more than 20 million dollars a year of revenue From a business perspective, nothing is broken. In fact, they laid a golden goose. > team is 3 people, quite junior. One backend, one front, one iOS/android. Resistance to change is huge. My mistake, they didn't lay a golden goose--they built a money printer. The ROI here is insane. > productivity is abysmal which is understandable. The mess is just…
Good answer. Some developpers seem to think that their jobs is to engineer nice and beautiful systems. It's not. As a developper, you're getting paid (fyi the minimum so you don't leave the company) in order to maximise total shareholders' returns. That's it. The business doesn't care if the codebase is garbage, with massive technical debt, nor if you struggle working with it. That's literally not even a problem as l…
Ask HN: Inherited the worst code and tech team I have ever seen. How to fix it?
431–440 of 704 posts
Re: Ask HN: Inherited the worst code and tech team I have ever seen. How to fix it?
#432If you do manage to get them to give you some points of the revenue from the project, then start with introducing source control and follow by building up a testing process and integration environment. I’d probably use tcpdump to capture a week’s worth of live traffic and replay it with a suitable speed up to replicate testing in production in your integration environment. That should give you serviceable integration tests. To start by writing unit tests will be pointless because it sounds like there are no discrete units to test.
From there you’ll want to apply some kind of strangler pattern where you incrementally replace pieces of the system. Doing that will require some refactoring to start separating concerns. Again don’t try to do it all at once and don’t try to make it perfect. Then you can start introducing unit tests.
Then there’s the database, which is a full size job in its own right.
And who knows what other unpleasant surprises await, but bank on them being there.
Re: Ask HN: Inherited the worst code and tech team I have ever seen. How to fix it?
#433You have inherited working code generating revenue but in state which makes it hard to develop new features and manage productively.
As you say that the roadmap is agressive and management has no understanding of the situation, you have already established what you have to do: explain to management what makes development difficult (avoid statements like this is the worst and focus on what needs to be done to establish best practices and identify where the quick wins to gain development velocity are - more expertise and less judgement is always a good idea). Then you propose a realistic roadmap and start making the changes that need to be done.
Re: Ask HN: Inherited the worst code and tech team I have ever seen. How to fix it?
#434Earlier quoted context omitted.
There problem with a classic full rewrite is that the existing system is thrown away immediately. All the existing features are not available in production until the rewrite adds them back in. Often incomplete, buggy, changed beyond all recognition, or a combination of all of these. That obviously sucks and is the reason the classic rewrite is rarely done. However, it is clear that something must happen.
"Full rewrite" is a description of the end state, not the process. The best way to do a full rewrite is incrementally, with test support and consideration for natural separation of internal subsystems.
Re: Ask HN: Inherited the worst code and tech team I have ever seen. How to fix it?
#435And it's (still) free!
Re: Ask HN: Inherited the worst code and tech team I have ever seen. How to fix it?
#436> Resistance to change is huge.
These 2 quotes tell me they haven't yet recognized the grave danger and pain of their complexity. They will eventually, but for now neither management nor the team seem open to the radical change which they desperately need. Eventually collapse will come, but for now it's a no-win situation for you. Unless the money is insanely good and worth the stress, best path is to get the heck out.
What industry and type of business is this?
Re: Ask HN: Inherited the worst code and tech team I have ever seen. How to fix it?
#437A lovely knot to unravel! First, get everything in source control! Next, make it possible to spin service up locally, pointing at production DB. Then, get the db running locally. Then get another server and get cd to that server, including creating the db, schema, and sample data. Then add tests, run on pr, then code review, then auto deploy to new server. This should stop the bleeding… no more index-new_2021-test-jo…
1) "Next, make it possible to spin service up locally, pointing at production DB."
Do this, but NOT pointing at production DB. Why? You don't know if just spinning up the service causes updates to the database. And if it does, you don't want to risk corruption of production DB. This is too risky. Instead, make a COPY of the production DB and spin up locally against the COPY.
2) OP mentions team of 3 with all of them being junior. Given the huge mess of things, get at least 1 more experienced engineer on the team (even if it's from another team on loan). If not, hire an experienced consultant with a proven track record on your technology stack. What? No budget? How would things look when your house of cards comes crashing down and production goes offline? OP needs to communicate how dire the risk is to upper management and get their backing to start fixing it immediately.
Re: Ask HN: Inherited the worst code and tech team I have ever seen. How to fix it?
#438Unless you have power at the executive level, or are brought in as an expensive consultant to make big changes , you are wasting your time.
I would tell you to stick around and shovel shit just to take cash home but from your post it doesn’t sound like you are happy there to begin with.
What you are seeing here is a symptom of leadership not valuing engineer so trying to improve this requires a culture change from the top which is highly unlikely from where you stand.
If the pay is really good, you might consider sticking with it for a bit and then move on. However if you feel like it will push you towards burnout, abandon ship ASAP.
My younger self would have stayed and tried to be the unsung hero but now that I’m older I chuckle at that foolishness.
Don’t be the silent hero.
Re: Ask HN: Inherited the worst code and tech team I have ever seen. How to fix it?
#439Earlier quoted context omitted.
Before anything else, getting buy-in for any kind of major change from the execs is key. Explain the situation and the effects. Have everything in writing, complete with date and signatures. Push back hard every time this commitment gets sabotaged because something is supposedly on fire. Get a guaranteed budget for external trainings and workshops, again in writing. Then talk to the team. If you cannot get those comm…
"Have everything in writing, complete with date and signatures" It is possible that the executives won't take it well to all of the formality here (writing and signatures). How would you convince them that this is necessary?
That doesn't preclude them from not reading that email and later telling you they said something completely different, but at that point you should probably be heading for the door anyway.
Re: Ask HN: Inherited the worst code and tech team I have ever seen. How to fix it?
#440So I think the first option you should strongly consider is just running. It's a valid tactic and if the management team is difficult, is probably the best one for you. If you stay you need to manage your relationship with the management team. This involves the usual reporting, lunches etc. You need to setup some sort of metrics immediately. Just quarterly might be sufficient. Nobody is going to care about bug fix co…