I have to find a strategy to fix this development team without managing them directly. Here is an overview:
this code generates more than 20 million dollars a year of revenue
it runs on PHP
it has been developed for 12 years directly on production with no source control ( hello index-new_2021-test-john_v2.php )
it doesn't use composer or any dependency management. It's all require_once.
it doesn't use any framework
the routing is managed exclusively as rewrites in NGInX ( the NGInX config is around 10,000 lines )
no code has ever been deleted. Things are just added . I gather the reason for that is because it was developed on production directly and deleting things is too risky.
the database structure is the same mess, no migrations, etc... When adding a column, because of the volume of data, they add a new table with a join.
JS and CSS is the same. Multiple versions of jQuery fighting each other depending on which page you are or even on the same page.
no MVC pattern of course, or whatever pattern. No templating library. It's PHP 2003 style.
In many places I see controllers like files making curl requests to its own rest API (via domain name, not localhost) doing oauth authorizations, etc... Just to get the menu items or list of products...
no caching ( but there is memcached but only used for sessions ...)
team is 3 people, quite junior. One backend, one front, one iOS/android. Resistance to change is huge.
productivity is abysmal which is understandable. The mess is just too huge to be able to build anything.
This business unit has a pretty aggressive roadmap as management and HQ has no real understanding of these blockers. And post COVID, budget is really tight.
I know a full rewrite is necessary, but how to balance it?
Jump in the discussion.
No email address required.
A noob who has never seen legacy systems. The bigger and older the company, the bigger the chance you'll come around this. I was a contractor for 6 months for a company that still ran Classic ASP in 2012 and was migrating to C#. I was hired specifically because I had worked with it but I hadn't touched it in like 10 years cuz who tf uses that in 2012, but then I went to a big tech corp that used asp.net 2.0 for their billing system and didn't want to touch it. Both systems were a mess because they weren't supported and nothing worked well with it.
Krayon sexually assaulted his sister.
Jump in the discussion.
No email address required.
Jump in the discussion.
No email address required.
Yeah, the two head guys in charge learned coding on the job and had been there for 10 years. The one got fired and the other was having a meltdown that they were migrating because he built the system (it was a mess) and was completely unable to grasp MVC and C#. The other dev got sick of him taking shots for us not knowing Classic ASP, so I was left with him and he was a smug idiot. He fought hard to keep them using Classic ASP because it's all he knew, so he really felt like he was getting fired I think because he had no idea what the code was doing. He went from smug idiot to having a complete mental breakdown since I'm sure he knew he'd never get a job anywhere else.
Krayon sexually assaulted his sister.
Jump in the discussion.
No email address required.
That's almost a darn shame.
No, no look. This older system is so much easier, I have it all mapped out here. We simply cannot move on from using the abacus, we just...hey! Stop walking away!
Jump in the discussion.
No email address required.
Yeah it was crazy. Social security numbers and credit card numbers stored in plaintext too. lol It wasn't a startup either. But I saw it all the time where a company didn't have any money for an experienced coder, so they got someone cheap who learned on the job and the database and code are a disaster. Now it's 15 years later, the same guy is there and is your boss, so you just argue with them that these things are bad and they take smug shots at you because they built it and think they are king coder.
The flipside is that you can make really great money being a contractor and working with these jobs, but it grinds you down. I'm glad I'm out of that jerrrrb market.
Krayon sexually assaulted his sister.
Jump in the discussion.
No email address required.
Jesus fricking Christ. I truly believe everyone's private shit will be available on the Internet one day because businesses don't take security seriously enough on top of the fact that people don't take their privacy seriously enough.
Congrats on getting out of that shit, though. It sounds grating despite the money. To success
Jump in the discussion.
No email address required.
More options
Context
More options
Context
More options
Context
And that’s when you r*ped him
Jump in the discussion.
No email address required.
Verbally, yes. The nice thing about contracting is that you aren't trying to keep your job. You know it'll be over in a few months. They can cut you at any time, which is fine because you just move on to another one. Most people can't deal with it though because programmers are socially awkward and don't know how to interview. Plus they don't have my amazing tits.
Krayon sexually assaulted his sister.
Jump in the discussion.
No email address required.
transcoders dunking on legacy coders.
Jump in the discussion.
No email address required.
More options
Context
More options
Context
More options
Context
lol I've interviewed so many of him at my current job. How the frick do these people have 15+ years of experience as leads and still can't pass a basic whiteboard. Frick I had one guy that wrote as an accomplishment on his resume that he upgraded the TLS security on his company's "ebay project".
Jump in the discussion.
No email address required.
lol yeah, it wouldn't be so bad if they weren't so smug about scraping code together. The big wtf is always the database and storing all kinds of things in plaintext. But they are your boss because they just happened to be really cheap when the company was a startup.
Krayon sexually assaulted his sister.
Jump in the discussion.
No email address required.
More options
Context
More options
Context
More options
Context
More options
Context
More options
Context