47

I'm currently doing a short-term contract which has involved a major overhaul of the UI of my employer's website. After a few months work we're finally at the point of going live and I've once again raised my concerns about the website's optimization.

I've tested the site during development and production and we're getting terrible scores from PageSpeed: 3/100, load times of almost 12 seconds, the homepage is 8mb, which is mostly due to images not being compressed. On top of that, our servers don't have gzip enabled and none of the CSS/JS is minified.

I've asked if we could at least compress the images and minify the CSS/JS but the rest of the team aren't worried about it. I'm happy to do this work myself and it goes against my principles to produce a website that's slow. But I need their approval to make these changes. I don't have the authority to force this issue since I'm a contractor.

Since this is an in-house production my employer is also the client and they are happy with the end-product. So should I just forget about the problems and mark the project as complete?

Which option is the more professional choice?

I can either:

  1. Leave the project as it is but potentially regret it in the future when a client/interviewer asks to see my portfolio.

  2. Push for optimization in a polite way, discuss the benefits of a fast site and complete the work as quickly as possible so the budget is only marginally affected.

  • 1
    Comments are not for extended discussion; this conversation has been moved to chat. – Jane S Jan 27 '17 at 11:16
  • 3
    This question isn't off topic, I'm asking advice on how to deal with a situation in the workplace. I want to speed up the site but I also want to maintain a good relationship with the client – Pixelomo Jan 27 '17 at 17:17
  • 1
    There are loads of studies out there which show that having a slow loading time on the website significantly reduces conversions/pageviews/profit. Also google will rank your website lower. Perhaps you could use them to help your argument be more convincing. – Ginger Squirrel Oct 30 '17 at 10:59
133

Since this is an in-house production my employer is also the client and they are happy with the end-product so should I just forget about the problems and mark the project as complete?

There's a saying that goes "do business as business is done".

You are a contractor. Contractors do what they are told to do.

Performance optimization, SEO, accessibility, internationalization, maintainability, security, etc - all of these are important, but always subject to the decisions of the product owners.

You brought up the issue for consideration and hopefully explained the ramifications of their decision. If you have a project summary report, you could mention it there.

Time to mark this project as "done" and move on to other tasks.

it goes against my principals to produce a website that's slow

As a contractor, you are free to accept or decline a gig based on your principles. Once you accept the contract, the client's principles are the important ones.

  • 12
    Yep seems like the right option, never do work you're not asked to do – Pixelomo Jan 26 '17 at 17:24
  • 7
    @AlanSutherland Didn't google start punishing slower loading websites, so that they don't show up as high in the results list? If its too slow, it probably won't show up unless you specifically search for the website. This might be worth bringing up to them and might help them bump the priority of such things if its bad. Knowing something is bad might be irrelivant to them, but they might now know the impact of it being bad. – Ryan Jan 26 '17 at 18:25
  • 3
    I disagree on the contractor angle. As a professional one should never agree to release a bloated website that loads 12 seconds. – Džuris Jan 26 '17 at 23:01
  • 1
    "Contractors do what they are told to do" - This should be stated more clearly. Contractors do what they agree to do in the contract. Generally that does not include anything beyond taking direction about what should be done; someone who takes direction about where, when, and how to do something would likely be viewed as an employee rather than a contractor (can be an important legal distinction is some locales). That said, unless the contract explicitly includes optimization (or unless it's vague to the point of just saying "build a website"), yes, the OP should not worry about it. – aroth Jan 27 '17 at 5:19
  • 5
    @Juris No. A highly self-valuing person should refuse to take a sloppy job. Once a contract is taken, it must be fulfilled. Changing it after signing is the most unprofessional thing to do. – Agent_L Jan 27 '17 at 11:22
53

and they are happy with the end-product

As a contractor, you need to learn that while your client might do all sorts of dumb things, the decision to do those dumb things is ultimately their responsibility.

Your job is to advise them and make sure they understand the cost and benefit of those decisions.

  • 2
    Not just to advise them, but to document exactly who you advised, exactly what your advice was, and exactly what their response was. Maybe your boss gives you a verbal "Nah, looks OK to me", but that's not the same as you creating a properly-filed bug report and your boss setting it to "closed - won't fix" with a comment of "12s loading time is not a problem". Or if your boss isn't stupid, he'll know that optimisation can happen later, so he'll set it to "on hold" and you can come back to it later. It may be more important now to add features than to do this perfectly. – Graham Jan 27 '17 at 12:34
  • @graham if you produced a document unasked for that said you disagreed with my decisions and wanted it on the record I would find a reason to get out of your contract and give you a very bad reference. That document benefits no one at all, and at best serves as proof you were wrong, at worst looks like finger-pointing and sabotage. – IDrinkandIKnowThings Jan 30 '17 at 20:01
  • @IDrinkandIKnowThings If an engineer working with me found a problem, failed to document it, and failed to document that a management decision had been taken to not work on it, I would never hire that engineer again and would recommend that no-one else does. That isn't about disagreeing with the decision, it's about capturing that there is an issue and the decision which was made about it. "On the record" as raising a bug/issue report is critical to being a competent engineer and working as a team, because it's the "unknown unknowns" which kill you. – Graham Jan 31 '17 at 14:50
  • I'd further argue that providing a document of this nature could be useful if the client tries to come back with legal and/or financial repercussions by saying you didn't do a good job. You can indicate that you did inform them of the problems they're now suing you for, and it was their decision to not have you or anyone else address them. Client decides to terminate your contract over it? That's easy to explain to future employers, and any manager that views it as a problem is probably a manager you don't want to work for anyway. – MattD Jan 31 '17 at 16:19
  • @Graham - The problem should have been documented before the engineer came to you. It is not the engineers responsibility to make decisions or track what decisions are made. That is the responsibility of management. – IDrinkandIKnowThings Jan 31 '17 at 16:29
17

PageSpeed: 3/100, load times of almost 12 seconds, the homepage is 8mb

And the answers here are suggesting to leave it as it is. E.g. "You are a contractor. Contractors do what they are told to do."

COME ON!

PageSpeed: 3/100, load times of almost 12 seconds, the homepage is 8mb

Only one answer saying that the website is bad, but still trying to blame the author :)

I think that it is a very bad website, and it should be improved. As you marked, many things are not very hard to optimize. My suggestion is: do what you believe in. Sometimes it may cost you job, but really, do you want such kind of project again?

I would highlight the problems several times through conversations, emails, wikis, etc. Notify all level of colleagues (client and your boss) about them. You could use a kind of table with columns: Problem (aka risk), Why it's bad, Suggestions how to resolve, What steps were taken to resolve.

This way it's not only explaining the problem, but giving a clear path to resolve it. If the client don't want to accept/solve these problems, he's on his right, and you should respect that. But it's up to you to take every project seriously, or just "do whatever and move to the next one". Personally, I'd like to see more people with good principles, and courage to fix things when nobody cares.

You could answer to another simple question: Do you want to be an engineer, or a robot, who just does what he was told to do?

  • 3
    Exactly. If you are a professional your work has to be on par no matter what. – Džuris Jan 26 '17 at 23:04
  • Exactly. Contractors, too, not just Employees can be (and should aspire to be) craftsmen. – das-g Jan 27 '17 at 7:58
  • 3
    I would highlight the problems several times through conversations well last time I tried that, I was just considered as a bullshitter (literally). So sorry but I don't agree with that. Now I prefer to consider I don't work with stupid people, I explain the problem once, if I'am told to move on, it's not my problem anymore. Furthermore by taking an unwanted initiative, if you break something that "work", you will take full responsability. – Walfrat Jan 27 '17 at 8:00
  • 1
    @Walfrat In the OP's case, they need to have documented their concerns (and the reasons why it should be of concern to the company). Not so much because anyone expects doing so to make a difference, but to cover the OP's back, either if the company eventually wakes up and tries to cause trouble "because the OP created a slow site" or -- if asked by a future (potential) employer to demonstrate prior work -- the OP has a counter to "OMG that's so slow". – TripeHound Jan 27 '17 at 9:17
  • @TripeHound I do agree with that I just don't agree with the fact to highlight multiple times. Do it once, if they refuse and you can document further, do it a second times with everything documented, if they won't listen, it's not your problem anymore. – Walfrat Jan 27 '17 at 9:42
12

Since this is an in-house production my employer is also the client and they are happy with the end-product so should I just forget about the problems and mark the project as complete?

Yep. There is only one true standard for optimization, and that is "are the people using it happy with the performance?".

In this case they're saying yes, so that's pretty much it.

It shall remain to be seen whether the actual end users are going to be happy with it, or whether your employer is still happy with it in a few weeks, but as long as he's aware of your suggestions and he says it's fine, that's about all you can do.

It's the same as when the employer asks you to implement features that you think aren't going to work; they are the client and if they are going to ignore your suggestions, you'll have to accept it and do it the way they want it.

  • 5
    Further to this, document your concerns and have your boss sign off that they are not important. CYA, always – JohnHC Jan 26 '17 at 16:46
  • 7
    I've never met any human being happy with a 12 second page load time. – user42272 Jan 26 '17 at 16:59
  • @JoeStrazzere OP has claimed they can do it really cheaply. That's why I suspect OP has done a really poor job of communicating this issue. It's just fishy. Usually contractors are expected to just do their thing, but good contractors tend to make things go better by being around, so I'm encouraging that. – user42272 Jan 26 '17 at 17:20
  • 3
    @AlanSutherland you can try posting a question like "Is a 12 second load time acceptable for non-consumer facing websites?" to ux.stackexchange.com and watch the deluge of well-cited hatred at such a suggestion fuel in. Studies show (I think I learned this on ux.SE) that users get distracted from the task they were trying to accomplish at less than a 10 second wait. So your website is in some sense literally unusable at the moment. – user42272 Jan 26 '17 at 17:24
  • 2
    @AlanSutherland disclaimer, I have spent most of my career developing b2b websites. And weeks optimizing them from things like 5 seconds to 2 seconds (very slow to slow). – user42272 Jan 26 '17 at 17:24
7

Voice your concerns about the performance. If the performance could get worse as their dataset increases, ensure they know that. If they're going to expand to more offices and have a higher latency/slower pipe between them an the assets, make sure they know that. Document all of the obvious performance fixes. When they find out you were right, you'll probably be the first person they come to in order to fix it.

Don't sell them more than they need

At the end of the day, they're a business. Turning on some reasonable optimizations is probably going to cost a high double digit number of hours, and that's a sizable chunk of money to fix something that in all likelihood doesn't really impact their business right now.

Once the program has been out there for a while, and has been proven to meet the functional requirements reliably and solve the business need, they might be more willing to start investing in making it faster. When there's no bugs with it, and the biggest complaint from the users is that "it's slow", and the managers are sick of hearing that, you should have a pretty easy time making it faster.

  • 3
    I don't think it will cost "a high double digit number of hours". 8 mb means there is something terribly wrong and it could probably be cut down a few times in a couple of hours. Besides, the OP already stated that he had prepared and offered improved assets which were ignored. – Džuris Jan 26 '17 at 23:39
  • Manually preparing and delivering so-called 'optimized' assets does nobody any good. The build should be optimizing their site for them, so that the optimizations are permanent. Realistically, implementing, testing, and releasing optimizations is not a 'few hours' of work. And if it were as simple as "here, let me copy paste these optimized assets for you", literally nobody in the entire universe would say no to that. There's more than just a few hours worth of work to be done, or it would have been approved, done, and over with, and we wouldn't be sitting here answering this question. – Dogs Jan 27 '17 at 3:01
1

I've asked if we could at least compress the images and minify the CSS/JS but the rest of the team aren't worried about it.

Well, you approached this badly. Your 12s load times cannot possibly be caused by CSS/JS bloat. You just needed to compress the images to fix that, which might've taken only 15mins, but you tried to sneak in CSS/JS minification, which is a lot more work because you have to modify the build process for the site as well.

Basically, you came off as an optimization nut, even though it's true that the site has a major performance problem. Your supervisor should've had that smarts to take half of your proposal.

I would try to float another proposal that is just about recompressing the images and emphasize how the work involved is minimal but it will make a world of difference for usability of the site.

0

Since this is an in-house production my employer is also the client and they are happy with the end-product so should I just forget about the problems and mark the project as complete?

No, of course not. You have built a terrible product and are a dispensable contractor as a result. You were hired for your expertise in building a website which you have yet to use.

You have posted literally no information on how you have tried to raise this issue so you of course need to do that before anyone can help you. Dialog is critical and I have no idea whether you have any idea how to go about that, but I imagine if you did you would be producing specifics of this struggle. So please round out your question with what went well and what went poorly when you raised this discussion and let's try again.

Surely you have more information on why they "didn't worry about it." Even as an authority-less contractor, you must have some idea about whether they are technically ignorant, developing for a client in a space where there is no competition, have mistaken ideas about how expensive compressing CSS is, etc. If you have no clue, you must listen and pay attention better.

Contractors just do their thing; good contractors magically make things go well around them and are rewarded accordingly. Good contractors tend to have a few career paths: they are converted to full time, their contracts are extended sometimes for even for more money, they develop a good resume and good reputation that lands future contracts. Effecting a positive outcome while lacking authority is just a usual business skill, nothing more, nothing less, and I'm a bit sorry to see other answers discouraging doing this so strongly.

I would rather have your resume include "prevented boss from making a wrong choice despite my lack of authority" in the end than not.

  • this was a team effort, the project began before I joined. I have provided minified source files, compressed images etc but they are not being used. I have discussed the issues face to face, via email and slack with the other FE and BE devs. FYI my contract has been extended so clearly the client doesn't consider me 'dispensable' or the product to be 'terrible' – Pixelomo Jan 26 '17 at 17:29
  • 1
    @AlanSutherland why don't they care? – user42272 Jan 26 '17 at 17:32
  • 1
    I'm not sure, I haven't forced the issue because I believe that would be rude given my position. It may just be the case with in-house development that standards are relaxed, my background has been with agencies whose clients demand high standards – Pixelomo Jan 26 '17 at 18:04
  • 2
    @AlanSutherland "forcing the issue" would indeed be poor dialog skills. A 12 second load time should be acceptable when transmitting to Mars and back but certainly nowhere on earth. – user42272 Jan 27 '17 at 0:16
  • It seems clear from the question why they don't care -- it's an internal application used by their employees and only their employees, and they consider it acceptable for their employees to wait that long. – jmoreno Jan 28 '17 at 13:06
0

I'm late to the party and I agree with what everyone is saying, but I think it's not always a good idea to just let things 'as they are'.

Prepare a presentation where you can steal some slides showing that load times = less visits = less money. You can use one of these for starting:

https://blog.kissmetrics.com/loading-time/

https://moz.com/blog/how-website-speed-actually-impacts-search-ranking

I haven't verified these sources but I remember a talk in Google I/O where they showed that higher loading times drive users away, I think at the time they introduced the Chrome Developer Tools - Audit tab.

As a contractor you are also responsible for suggesting things that internal employees might be too bored to care about but end up affecting company reputation and bottom line. You are also responsible for getting yourself heard. The company is not at fault here, they simply don't understand the issue.

Sure, you did your job and can go home, but if you can sell yourself in a better way you might get better recommendations, if you do it in a constructive way.

  • I think you missed it was an in house product. Therefore your argument is slightly off. – François Gautier Jan 27 '17 at 11:21
  • In-house doesn't mean that it's not publicly visible. The OP wrote 'company website' so I assume that's the interface to their clients. Nevertheless, I still stand by the fact that if you KNOW something is right you should push for it. I've had similar issues with security, performance, flexibility - and in the end it has proven worthwhile and everyone saw the benefits, even though it was an uphill battle. – brainwash Jan 27 '17 at 12:27
  • He said the "employer is also the client", but yes, I agree about pushing it nonetheless. – François Gautier Jan 27 '17 at 12:57
  • @FrançoisGautier he stated in (now removed) comments that the website is public. In house project just means that the company developed their own website not that it's a site for internal use. – Džuris Jan 27 '17 at 15:31
0

If anyone is content with a page that loads 12 seconds, they are wrong.

Just be blunt and tell your boss, colleagues or anyone else, that this size and load time is completely unacceptable and that they apparently lack the competency to judge things like that. Tell them that you are a professional and it is your professional conclusion that this project is not done and there is more optimization to be worked on.

Explain that such load time is a detriment for the users experience and will render the website useless for the original purpose (to serve [..insert here..] to public). Explain that it is your professional opinion that the website is useless and must be optimized.

To address those talking about you being a contractor...

Back in the day Michelangelo was hired to paint the ceiling of the Sistine chapel. Imagine that his boss tells him "Hey Mike, the workers here have already drawn a couple of saints, you just do some finishing touches and sign your name... don't worry too much, this is good as it is! Ignore the three-fingered hand of Jesus, let's just finish the project and move on." Of course Mike wouldn't agree to that. I don't know how it went but I know that he spent 4 years painting there and held his work up to a standard.

Now imagine yourself. Suppose you have to look for a new job soon. How will the interview go?

-- Can you show any work you've done?

-- Ah well, it was mostly on internal or non-public projects. Well, we had the company website.

-- Sure, show it!

-- Ah, but I gotta tell you it's not really optimized yet...

-- Yet? It seems like coming from 2006. Wait, is it still loading? Why the hell is it so appallingly slow?

-- Well, uh... You know, my colleagues, they didn't care that much about optimization... The boss was content and said we should move on to the next project...

Note: You could get even fired by following my advice and you will certainly make some enemies, but that is what I would do. I would explain that the others got no clue how it should be done and I should take over leading this project. I have never been fired or punished over such things. You might even gain some respect :)

  • I don't think showing the boss off would gain the OP any respect ... – cst1992 Jan 27 '17 at 8:52
  • The actual end-use of the webpage needs to be taken into account here. You're right that slow-loading would be "appalling" for a public facing website where loss of viewers means loss of revenue. But this was internal. Employees are PAID to use the webpage. The people in charge made the decision to not spend any more money for the contractor to optimize. That's OK, that's the way things work in "enterprise" software applications-- have you ever used Oracle's "Enterprise Business Suite"? Don't. Someone like you would have a heart attack. – teego1967 Jan 27 '17 at 11:45
  • @teego1967 Actually you are quite on point, I'm in relations of mutual hatred with that masterpiece of Oracle. But I think you have missed one thing (and assuming the opposite) - OP stated in comments that the site is public not internal. – Džuris Jan 27 '17 at 15:29

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.