1

I'm revamping a website for work. This was the old website of an acquisition, and he likes the look of it (and to his credit, it is a nice looking website). However, this website was done in Adobe Muse, and the CSS/HTML is like a brick of text to go through. There's no rhyme or reason to it. Now he wants me to edit the navbar, and that looks like it will be a nightmare.

He's a technical person, but more so on the hardware side. How do I convince him (I've already told him a couple of times it's disgusting code) that this is a problem? I'm already working on a bootstrap site; however, we let our crappy site sit to long without any updates and now he wants it done fast (hence, revamping the other site). I'm a perfectionist, I can't handle this.

  • 5
    Is the problem "this will be very hard and take a long time" or "this be very hard based on my personal opinions of how it should be done"? Because if you drop the perfectionism, that usually cuts work required to modify one little thing in an end-of-life mess by about 90%. – Erik Jan 7 '17 at 15:57
  • @Erik That's a fair point. However, when I mean I'm a perfectionist. I mean, the code will be disgusting. And highly unreadable for my successors. This looks bad on me. The code itself is horrible. No site wide CSS file (well, a small one). – Thomas Hutton Jan 7 '17 at 16:03
  • 8
    It's already a mess, and you're already rebuilding it. What's going to look REALLY bad on you is refusing to do a job because you're afraid of writing something as ugly as the codebase you're working with. Just flag the change with "I know it's ugly but what can you do" and be done with it. – Erik Jan 7 '17 at 16:06
  • 3
    No one is going to think badly of you for maintaining bad code you didn't write yourself. We've all been there. If you have the opportunity to improve it, take it, but don't let that get in the way of getting the job done. – Seth R Jan 7 '17 at 16:49
  • do you have a Muse licence? – Neuromancer Jan 10 '17 at 0:15
6

First, get the job done with the "nightmare" code. Then create one or more refactoring tasks in your bugtracker. Now discuss with your manager why this refactoring is important, and agree on a schedule when these would be done. If it makes you feel better, write a comment in the "nightmare" code mentioning the refactoring task numbers.

With this approach, the required task is out of the door quickly, and the customer (or the next team in the delivery chain) is not breathing down your neck, as you work on the refactoring.

Nobody would accept "we will be rewriting nightmare code for a couple of months" as an excuse for delay in delivery of a feature. Besides, doing a complete rewrite of the "nightmare" code into a "perfect" one is not as easy as it sounds (with all due respect to your technical competence).

I expect that the "nightmare" code also does not have a great test suite, which means if your replacement code introduces any new bugs, it will take you a while to track them down. Making small incremental refactorings is more manageable.

  • I wouldn't call muse code nightmare code - its probably cleaner than someone writing all the responsive html5 from scratch – Neuromancer Jan 10 '17 at 0:14
  • I don't even know what muse is, but that is not really the point. My answer is meant to be general enough to cover all those scenarios where an "expert" comes across (what he considers) poorly written legacy code. Whether the existing code is "nightmare" or not would be clear when the OP tries to justify the refactoring effort to his manager. I just picked the word "nightmare" from OP's question as a shorthand for "legacy code which I could have written better". – Masked Man Jan 10 '17 at 0:30
  • Muse is an adobe product used to produce html5 based pages – Neuromancer Jan 10 '17 at 0:43
  • @Neuromancer The point is that this is The Workplace, not Adobe StackExchange. Most of us aren't technical experts in Muse, and we shouldn't try to be. The question is asking how to approach his boss, not how to fix his website. It's okay to challenge the premise of the question (that the task is extremely difficult), but you should still answer in a workplace, not technical, context (eg. "Maybe your boss knows more than you. Tell him you're concerned about XYZ and ask if he has a better approach.") – David K Jan 11 '17 at 19:23
5

Are you not able to use Muse to edit the site?

Trying to add hand edited code to a muse site will be difficult unless it is very simple like say adding GTM code or tags in the header as I have had to do for some of our sites.

Get your boss to pay for a training course in muse would be my suggestion.

  • I don't have access to the original Muse file. – Thomas Hutton Jan 11 '17 at 15:15
2

Talk to him about "technical debt" - use that term, because its an industry norm one that can be googled.

Basically what you have here is a mountain of technical debt - a poorly developed application which is now having to be maintained. Bad decisions early on in the projects lifecycle meant that short term views were taken for immediate gain, pushing difficulties in maintenance far down the road - and they have now landed at your door, not the original developers.

Technical debt is like owning a house. A house built out of cardboard, balsa wood and spackle. A house which is in a high humidity area. A house which was built on quicksand, and has no foundations.

Thats your house and you have been asked to re-wallpaper one of the rooms - sounds simple enough. Except that the actual wall, being made of balsa wood in a high humidity area probably has the consistency of toothpaste, and thus you now need to renovate the wall as well. But the structure supporting the wall can't support a heavier, newer structure, so you have to renovate that as well. And then the quicksand starts moving because of the new weight on it, and so you have to add in new foundations. Etc etc etc.

Technical debt is the prime reason why "simple" changes become major ones, but its a reason you can use to explain why expected deadlines are unreasonable in given situations - if your boss ultimately decides the extra time is worthwhile, and he puts in a reasonable deadline for the change, then you have at least won on that front.

If your boss still doesn't see the issue, then there is a larger problem and personally thats the point at which I would start backing away slowly...

1

Sit down and work out just how extensive a change you need to make just to make execute the change he is asking for. Then give him an honest assessment of how long you think it will take. If he questions you on why it will take so long, give him a quick walkthrough of the code and what you will need to do. Even if he isn't a coder, a technical person should be able to recognize poorly structured code if you show it to them. If you aren't certain about how long it will take because you just don't know what you will need to do, be honest about that too. He needs to understand how much risk to your time is involved.

Also make clear what it is going to cost (in time and future hassle) if you keep the old horrible codebase without any cleanup and how difficult it is going to make future modifications. Explain what work you won't be getting to if you go through with this and remind him of why that is valuable (you won't be able to work on the site rewrite you already have inflight, which might still take a while, but will be a lot cleaner and easier to update in the future). You can also consider the effort it would take to cleanup the bad codebase (including how long it would take for you to learn Adobe Muse) and build that in.

You mention that you already have a site that is out of date and has been that way for a long time. It could be your boss is getting pressure from above from someone losing patience with your efforts to revamp the site. He could think this is just a quick win to please his superiors so you can get more time to continue your work on the rewrite. Or he could think the acquired site can replace the work you were going to do in rebuilding the site from scratch. You need to help him understand why it isn't the quick win he thinks it is and what additional costs he is going to incur by taking this route. Contrast that with the advantages you all will gain if you are allowed to continue your rewrite work in that you will be better positioned in the future.

Ultimately, it is your manager's call on how you spend your time while working for him. All you can do is give him as much information as you can to let him make an informed decision. Remember that you may not be aware of what his objectives are or what political pressure he is under from above. Make him aware of the full ramifications of his decision one way or the other, but then let him make the call.

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.