A "junior developer" at my company created a "retirement plan administration system" that is nothing short of a bloated, unmaintainable monstrosity. The history of this mess dates back to the late 90's, but its current form is a collection of "classic" Access/VBA database front-ends that use SQL Server linked tables. It has the usual headaches of deployment (setting up ODBC connections on inividual workstations, deploying front-ends, needing to have Access installed and licensed for every client that uses it, etc.) on top of too many WTF's to mention in the design and VBA code. This person was entirely self-taught, has never worked anywhere else in 20 years, and suffice to say, their abilities are about as abysmal as you would expect.
I have no active role in the development of this mess (thank God), but occasionally I get called in as a "consultant" to give suggestions and help troubleshoot problems on the SQL Server side of things. For years, I have been pushing them to migrate toward a more modern development platform, but the junior developer always throws a tantrum because they don't want to learn anything other than Access. At one point, we even found a company with a cloud-based solution that met all of the requirements, and it was fully customizable/programmable by 3rd party developers such as our junior dev. But, he threw a hissy fit because the product was built on PHP/mySQL (admittedly not the best stack) and they didn't want to learn a new language and rDBMS.
In 5 years, my only "success" was in convincing the junior developer to move his backend databases to SQL Server, as they were starting to run into major corruption issues as the datasets grew larger. It took him about 3 years to get it done, but eventually he got it set up so the backend is all in SQL Server. I also set up a deverlopment workflow (with dev and test environments) and some basic source control with TortoiseSVN/Subversion (Access doesn't have many good options that work), but it's mostly been ignored and not used by the junior dev.
Last week, he messed up really bad, as he pushed a change to production without testing it and a lot of records somehow got wiped out. This wasn't noticed until 2 days after the fact, so I had to restore to a 2 day old backup and some of the data had to be re-keyed by the dev. I've been told the head of their department is getting increasingly frustrated with the junior dev, but they don't want to do anything about it. Today, my boss asked me to recommend some SQL Server classes for him to take.
I told my boss that it wouldn't do any good unless they moved to a more modern development platform for the front-end. Most of this person's problems are related to the fact that they are trying to do some very complicated things in a very primitive tool. A lot of business logic is buried in sloppy copy/pasted vba code within the forms, and when they use stored procedures, they're usually called from concatenated "exec ..." strings within Access and no parameterization.
I recommended that they look at something like "Access Apps" in Access 2013, which allows you to build a data-centric sharepoint app in Access without having to write much code, and then force the person to use SSIS and SSRS for some of the more advanced reporting/cleanup tasks. This was the actual quote from my boss:
"You're over-thinking it.. We are just looking to keep him busy so he can't make any more enhancements to the system and break things."
So, basically their solution is to pay for this person to go to class (on top of continuing to pay their salary) so that he can't fuck anything more up.