8

I recently joined a company to work as engineer/development concerning the software and IT solutions they have. During my interviews they presented me everything in a way that looked quite fancy and trendy. However, after some weeks here, I understood it is totally the opposite:

  • They are using technologies totally outdated (10+) years.
  • They hardly do CI/CD
  • the tools the use are working so slow and are really obsolete. In addition they use it in a messed-up way.
  • They use languages and frameworks completely old and low performance. I doubt any prospective employer is interested in those technologies.
  • In addition, they have such bad practices in what concerns organizing files of software projects, packaging the files etc.
    • They do not have any software packages, so all the source code is a single project. This causes a bottleneck everywhere
    • They mix up software with the infrastructure in a way that is so painful to work with and to decouple if necessary.

Furthermore, the trend does not seem to stop. They seem conscious about it and have on the background some plans to improve it but nothing is coming to reality.

I have actively and passively communicated about this since I joined the company. They reckon most of it is in the to-do. However, it is in their to-do since ages and the whole thing is completely stuck. I can see they filed in some issues about this long time ago and really nothing happened to fix all the technical debt.

I am wondering, I could stay in this company and do nothing about the technical debt. Or keep fighting to reduce it. It would be a lot better for my future prospects if I can show I've been working on modern stuff as opposed to outdated technologies.

What can I do to encourage my company to commit to their own to-do and clean-up the product?

  • 1
    What do you mean by your "career progress" ? Every company has legacy software and being able to maintain those are just as much part of your "career" as a developer as with the ability to use newer software trends. – Dan Jul 19 '18 at 18:14
  • Have you talked to your manager about your concerns? Perhaps they dont realize the mistake they are making and you can be the hero that shows them the error of their ways. – IDrinkandIKnowThings Jul 19 '18 at 18:52
  • @IDrinkandIKnowThings based on the situation, I'd even advise OP to consider the outcome of that meeting to determine if they need to leave, moving from a new stack to an old stack is not the way to acquire job satisfaction in IT lol. – RandomUs1r Jul 19 '18 at 19:33
  • 3
    @Dan I believe OP was bait-and-switched to join his current company specifically with the pretense he would be working on cutting edge tech. Otherwise he wouldn't have joined. – Juha Untinen Jul 20 '18 at 5:11
  • 1
    The reason for the company is efficiency. I.e. they will get more things done in less time. i.e. cheaper as need less people and less time to get the stuff done. – Worker Jul 21 '18 at 9:39
5

If you need to leave, leave.

But as long as you're there, pick the winnable battles. Don't just object to technology because it is "old" rather try to focus on incremental improvement to process. You can do great work with ancient tools, if you use them wisely. And frankly it's quite common to do horrible work with the latest tools but using them carelessly - especially when incumbent solutions are blindly ripped out without really understanding what they offered to the business.

If you want to replace a technology, focus specifically on what value a newer solution can bring to the business. Find ways to fit it into the existing infrastructure, re-implementing legacy interfaces so a new solution can be a drop in replacement in the overall ecosystem. That may mean not initially using something to even a fraction of its potential advantage, but it does mean opening the door to possibilities.

Remember you are hired to solve problems, not create them. If the problems they need solved are not ones you can or are interested in solving, it's time to move on and find someplace where there's a better match between the problems they want to have solved and the problems you want to solve.

  • I have done more, working with (assembly, JCL, and Fortran 77) on a 20-year-old mainframe, than I ever thought was possible. There are things those systems allow you to do that are impossible in the newest versions of Java, C++, and C#. This does not change the fact, I still make tools in other languages, in addition to those legacy languages. I have become a better engineer due to my introduction to those legacy languages. – Donald Jul 24 '18 at 17:22
11

I think if you are feeling stuck and company is not fulfilling you, your only choice is to change jobs. Perhaps even with some downgrade in perks etc but with career potentials

  • It sounds like the OP is less concerned with the happenings of his new work place as much as possibly having regrets of quitting his last. – Dan Jul 19 '18 at 18:19
  • 1
    I the OP quits quickly and finds another job, he can smooth over the cracks in his CV. Personally, I would not mention the current job when applying to new ones. – Mawg says reinstate Monica Jul 20 '18 at 9:30
  • As someone that spent mere months in various jobs as a .NET developer climbing the career ladder I can tell you that the demand for your skills will mean they overlook any gaps in career. I never had any problems beyond a few questions about why I had worked for short periods. My skills were great and that's what they needed. I worked some terrible jobs, and left them as a result. I explained that I was hired in some cases to program and yet ended up as a tester, manually clicking stuff. Who wouldn't? Once skilled up you can get hired as a senior/lead dev, and then you can implement new tech. – NibblyPig Sep 11 '18 at 15:06
8

I've been there. This is more common than you think.

A businesses number one priority is to make a profit for it's owners (shareholders, etc.). If the current technology is meeting the business needs then why would they invest in something trendy and new?

For me, I started in IT as a COBOL (ugh) programmer in '94. The firm I worked for was a very successful brokerage firm. Code was written in COBOL68 and some of the source was close to 25 years old. It was ancient but worked. We were asked to upgrade the version of COBOL along with making changes needed for Y2K.

Moving to a more modern environment was something that happened due to business pressures - not because I (as a developer who knew C, C++, etc.) wanted to use the latest tools.

So what to do in the meantime? For me, my first VB6 project was replacing a keypunch machine with a desktop application that could produce card images (ASCII text) that was Y2K compliant. I can joke that I created a Y2K compliant cardpunch machine (in 1999!).

That bigger point of this is I was able to use something 'new' (this was before .NET and more modern stuff) to help solve a business need. Your best option is to determine how you can help the business meet it's goals by using the newer technology. Speak in business terms.

  • That is the thing. So... if you had being using C/C++ intensively at that time instead of the punch thing... well... i'd been better. – Worker Jul 20 '18 at 2:45
1

In my previous company definitely everything was not amazing (hej, that is why I moved out!) but we were using cutting-edge technologies and tools and I miss it. I do not expect to be using cutting-edge technologies all the time. But the ones here is really outdated.

It sounds to me like you're missing your previous job. Are you sure this isn't really about regretting to quit and missing out on what you were working on?

what can I tell a prospective employer? I spent last 2 years working and fixing outdated stuff? Or did basic set-up of modern stuff?

It's hard to determine what you were hired to do? Were you hired to fix legacy software or as a general full stack developer? If you were specifically hired to fix legacy software, I would try the best. Otherwise, you tell your next job the same thing: you were a full stack developer and what you did to push them in modernizing and current trends.

As much as the developer world makes you think, it is not expected that you go into every organization and become some sort of code ninja going around fixing things up, and causing a huge change and now you're looking into new jobs. Your last job had an environment where they used new trends, not that you had anything to do with that other than working there, the new environment seems to be complacent but understanding there are newer trends and ways to do what they are. If you can accomplish a single thing, such as pushing unit testings, that would be a huge achievement as opposed to what I described above. Companies are looking for team players, and people who can come in and contribute as much as spread new ideas. They're interested in making money, not people who come in and change everything then leave them to figure it out.

  • I was not hired to fix all stuff but as general developer. Also, not miss my previous job. Just was good that we kept up using new technologies, set-up everything correctly etc. – Worker Jul 20 '18 at 2:46
0

You would not stress the technical, but the soft skills. How you were a constant advocate. Maybe do workshops or presentations on new tools to staff (or management). With cost benefit analysis.

And if the company has a budget, train. Or if they give time for investigative work, investigate.

Soft skills. Procedures. Protocols. If management is in your corner. This is what you would highlight to potential new employers/customers.

  • The thing is... if I tell a prospective employer "I did a workshop for my colleges about technology X and how it would improve their workflow" the weight would not compare with "I was working in a big project on a daily basis with technology X for two years so that now I feel very confident with it". Also, I am not sure about the training. Why would I get a training on technology X from the company if they do not plan to use? But yea I see what you mean. I also thought the same way about the training, teaching my colleges etc. etc. – Worker Jul 19 '18 at 17:08
0

Perhaps this is why they hired you--by showing the fancier / newer stuff they wanted to gauge where you were with technologies, and now would like you to improve the current, day-to-day production stack.

It depends though and this is purely speculation on my part. Why don't you mention this to your manager and try to work out a plan (if there isn't one already--ask about that!)?

  • 1
    Well I am pretty confident they hired me because I am way average above the rest of the team in terms of knowledge of different technologies, tools, and understanding of the scenario etc. I have working in tons of places can bring a lot to the table. I already told the manager. The plan is "we will do it" but I saw they are aware of many of the problems and planned to do it since long time ago but nothing happened, happening and planned to happen. As I mentioned in the original post. – Worker Jul 19 '18 at 17:11
0

Not everyone is ready to tackle tech debt and many will want to run away screaming, but some extent every code base has some degree tech debt. I see this as an opportunity to be at the ground level defining the new architecture and processes.

Having worked on both the engineering and non-engineering side, your argument that everything is "out-dated" is not a strong one. It sounds like ranting and not backed by numbers. Is there a good business case for breaking up the code base into multiple repositories? Or does it just create more maintenance because there isn't continuous integration/continuous deployment (CI/CD) in place? How much faster could you deploy to customers if you had CI/CD? How could mistakes be minimized in the build and deploy process?

For instance, if you don't have a CI/CD or a poor one, do a proof-of-concept and measure the potential gains. Present that to your manager or whoever decides what you should work on and make that your project. You can even make a case to attend conferences for DevOps/SRE and learn from others.

  • 3
    hate to be too materialistic, but in my experience, if its not your firm, spending enormous amount of personal time and effort to get it up-to-date leads to heavy mental burnout and not worth it. – Strader Jul 19 '18 at 21:01
  • I mean you are feel free to take whatever path suits you. I personally like taking the problem in my own hands. Having a company that respects initiative is really key here though, or your project will be killed before it even starts. – jcmack Jul 19 '18 at 21:23
  • 1
    @Strader I have the same feeling... – Worker Jul 20 '18 at 13:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.