31

The company I interned at last summer decided to adopt a JS framework a little over a year ago. The managers went with the old Angular 1.x because they didn't want a JS build process. Each page has ~100 script tags on it, and these are manually included in various files (no automated way to include dependencies). None of the CSS/JS files are minified, either.

They really should have chose Angular 2+, or an entirely different framework (React, VueJS). They're also just now upgrading the codebase from PHP 5.6 to PHP 7.2 (5.6 support ended a long time ago, and security support ends this month).

I love the company itself but these practices are poor.

I may be working there full time eventually. I hope to eventually help with the inevitable transition to a newer framework once Angular 1.x is dead since I am an avid user of newer JS technologies. Any tips on convincing manager(s) towards newer technology? (Or at least convincing them to combine+minify these files in production to reduce # of requests and bandwidth.)

Also this company's product has millions of active users.

Comments
  • 3
    The first thing you need to know is their arguments to use AngularJS. If its just the javscript task runner then show them how much time can be saved.
  • 6
    Sure. Let me just sit here for a week waiting for all that to load 😦
  • 1
    Does that page even download on a browser?
  • 11
    Convincing them to optimise that shit should be easy. Just google for articles that discuss bouncing rate vs. loading time. They are simply losing customers like that, and revenue along with them.

    Then put that abomination through gtmetrix.com and prove why the site is slow.

    However, with newer frameworks - JS devs always want this, ideally a new framework every week. Prove how the transistion to newer stuff saves more money than the transistion costs, and you have an argument. Just "but I want the newest shit" is completely irrelevant for business.
  • 0
    It's not your job to interfere in managements decisions or convince them to do something. Just enjoy your time there.
  • 4
    @TRex it is every employees purview to make recommendations to management, if those are ignored then so be it.
  • 0
    @seraphimsystems you're right, but as he mentioned they decided to use angular last year and have no concept of template inheritance meaning the management is a group of 50 something developers. Now you know better than me what's going to happen if he ever proposed introducing new programming practices to them.
  • 3
    @TRex in any conpany Ive worked at they would listen, argue why not, I would argue why and then a decision is made on those arguments.
    Ive yet to find a company that doesnt want to earn money that easily.
  • 0
    @Fast-Nop They like to hire new grads (company is located right by a large university) but it's going to get harder and harder to find people who want to work with old tech as this framework ages in the next few years,. Maybe that's an argument?

    I'm just amazed that they picked Angular 1.x in 2017 over some more modern framework that would draw in JS devs. The argument I heard was that they did not want a build step which is silly since it makes things a lot faster once you learn it and it works for most other companies who heavily use JS.

    They needed a framework because they have a lot of developers, and everything used to be written in vanilla JS and jQuery with not much of a standardized structure.

    Another fun fact: CVS (version control) is still used because changing to Git would require "too much changing of the build/deployment systems" (no unit/integration testing goes on so the build system seems to be just for deploying to dev, preproduction, and production servers).
  • 2
    @nathan815 the interesting question would be whether going for 1.x meant better compatibility with the existing codebase. The point is that a more or less full rewrite would be every developer's dream, but it's often a very bad management decision and a likely way to completely sink your product.

    Old, but still valid read by Joel Spolsky on that one: https://joelonsoftware.com/2000/04/...
  • 2
    @Fast-Nop Good point. The reason I was told from one of the main guys who decided to use it was that they didn't want a build system, but I don't recall the exact reason. Maybe they thought the devs couldn't get used to a JS build system or that it'd be more complex?

    And yeah, rewriting is definitely not a good idea from the business perspective. But they have already rewritten a lot of the jquery code into angularjs components. The approach being used is to rewrite things as needed but don't do everything at once as that is cost prohibitive.

    It's too bad they have their code system setup like this because the company takes care of their employees and I can tell they care.

    Honestly, my main issue isn't angularjs 1.x, but the fact that they have no automated dependency system or bundler. This is the way I was managing JS files when I was a young teenager. You'd think at least some of these people who've been in industry for a while would want to do things better and more efficient.
  • 1
    Then why not write everything client-side and a rest api for the backend?

    Decoupling your front end from your backend means your backend can scale. Say you need multithreading. .net core, python, or even c/c++. Or Apache nifi, which can could code-less rest api’s, pulling data from your database through graphical workflows (nifi has been used with tensorflow ai to graphically build self-driving car technology, not perfect...but powerful)
  • 2
    That sucks. Angularjs (1.x) is still great with es6 components. Can add webpack to the mix too.
  • 0
    @sebson See, I'd be pretty content with using ES6 modules with webpack with angularjs 1.x. It's this lack of structure and including every angular component/service/module as an individual file that makes the whole thing messy.
  • 4
    Translate the problem to money. That's the only language they parse.
  • 3
    @ananaszjoe wise words spoken!

    example:
    "Last year i came here with a project that everybody was against it. Today this project generates $00000000. Today i come again with a project you won't like. But hear me out!
    By the end of 2018 it took us 00000 man hours to create us our product. That cost us 0000000. If we would have used [technology] we could have done it in 00 amount of time and the savings would be $0000000. And there is the opurtunity loss, things we could't do because our development processes. I estimate it by $00000.
    So we have an opurtunity here for you to get you a bonus next year. Who's with me? I present to you our new modern development process that will make our service load faster and make us more money!"

    ( @nathan815 it's important to find out what motivates manager personally. What are the gains for them on the personal need levels for them?. Use the psychological principle of loss aversion. https://en.wikipedia.org/wiki/... to scare them. And promise them a solution. And as preparation show genuine interest, ask them how they do. What their worries are, what they aspire. People usually want to pay back favours like interesst and kindness. Use reciprocity for your advantage https://en.wikipedia.org/wiki/... )
Add Comment