2

First some back-story.

We (4 Developers, 1 of them is my Boss) are currently in the process of designing a new iteration of one of our products. So my boss told me to come up with a new firmware-update mechanism for this specific product. I sat together with our technicians (those who do the firmware-updates in the field, and have to deal with our customers) on how the new update-process should work.

We came up with an clever dual-firmware-image solution which does backups of itself when updating so in case if something goes wrong, we always have a working (backup) image and the device is still usable (i.e. it can still run without manual intervention which is very important in terms of availability which is also very important for this product).

I presented this approach to my boss and he absolutely dislikes it. He wants an "Firmware-Image+Recovery-Image" solution. His main reason is that thus we don't waste space to keep a mirrored image on the device.

I already told him about the disadvantages like maintaining two images, we have to implement a lot of new stuff in our well tested bootloader and DTS which again requires extensive testing, thus I have to waste a lot of time just implementing this instead of using already well implemented methods, and of course the biggest drawback: the usability. Every time an update fails (i.e. customer pulls the plug while updating) we only have a recovery image where the user/technician has to manually fix things. This produces a lot of work for our technicians and may upset customers since the device is not working until someone manually fixes it (99% of the time our technicians), remember: availability is key to this product.

My Problem: Ok, my boss wants it like this, he can have it. This is not my part of business. However, I have a really hard time to implement something that does not feel good to me. Every line of code I write feels bad and I know this is going to be a huge pain in the ass for our technicians. My motivation to work on this project already died completely because its just plain bad.

I know this is very opinion-based, but how do you deal with a situation like that. How should I proceed on this project? Most of the time when I tell my boss he has made a poor design decision we discus a lot about it and we find a solution satisfactory for all of us, but this time he insists on this pattern.

  • What exactly does “boss” mean? Company owner? – gnasher729 Jun 4 at 8:07
  • 1
    @gnasher729 exactly, yes. – bam Jun 4 at 8:24
  • I agree with the answers already posted but I would also propose to you that the technicians talk to your boss about how much of an improvement your implementation could be. Additionally you could preset your boss with some statistics/numbers, if you show him that your solution could be cheaper he might overthink his decision. – GittingGud Jun 4 at 11:55
  • 1
    We engines always want to do the shiny, new, "better" (in our opinion), rather than the tried and true. I am going to offend both you and your boss by telling you not to reinvent the wheel. The FOSS Fota RUAC does what you want, for free, use the time gained to pay off technical debt. – Mawg Jun 5 at 7:48
  • 1
    @Mawg RUAC looks very nice, would indeed save us even more time. +1 and no offense :P – bam Jun 5 at 10:05
10

Do the work you are told, but make sure your plan of attack and its complete disregard is documented. When you are inevitably questioned for a dumb design later due to internal and external user rage you can use it to protect yourself since it was clearly not your idea.

You can do this by getting your boss to explicitly state what he wants over what you suggested in writing, through e-mail or whatever.

Hello, Boss

Could you write a description of the solution you asked us to implement on project?

We need this requirement description to replace the previous solution we in development had come up with earlier on our tracker.

Do not argue about which could be better, stick to doing work. Merely documenting whose idea was it is enough. Besides, your solution might have a caveat your boss has spotted, who knows? Neither exist yet.

  • "your solution might have a caveat your boss" this is very possible, but most of the time we discuss about something like that and he tells me those caveats, this time he is on full block. – bam Jun 4 at 8:25
  • 2
    @bam I'm sure your boss does not want things to go wrong, so if he has been sensible in the past then the least you should do is follow through. Once documented like this it should be on him, anyway. Work your hours and no more unless negotiated. – lucasgcb Jun 4 at 8:30
  • I second this answer. Disagree, commit, but also document. – Little Child Jun 4 at 8:54
  • I selected this answer as accepted answer since I like the mention to document this clearly. Thanks a lot for all your answers! – bam Jun 5 at 10:09
12

this time he insists on this pattern

Then give him what he wants. He usually finds a solution satisfactory to everyone but this time is different for whatever reason. There must be a reasonable explanation on why your boss has done this.

So complete the task the way he wants and do your job as it should be done. You're not always going to agree on things you do but it's your job to do it the way that's wanted.

  • Agreed. You're a programmer. Sometimes it's your job to shut up and program. – Omegastick Jun 4 at 7:56
  • 6
    And do it to the best of your capabilities. Don't get sloppy just because you prefer a different solution. – Laconic Droid Jun 4 at 11:38
2

Your boss is thinking: This a situation to make money with support work and doesn't care or disregards all the negatives that come along with it. Not much choice but to follow along but realize this is soul crushing for the long term. It saps morale when you produce poor quality solutions and spend time doing pointless work like fixing things that could be made not to break. The only reward for the work is money so make sure you push hard for raises etc.

0

It can be tricky to focus on a project that you do not feel invested in. The feeling will not go away overnight but it will decrease over time.

My suggestion is that you treat your bosses choice as part of the design brief. Forget that you suggested an alternative design and focus on making the best product you can while staying within the brief. This won't be fun and you won't achieve your best work output but it does give you a short term goal to focus on. The less you focus on your alternative design the faster you will forget about it and the sooner you will be back to your fully productive happy self.

Personally I find that this kind of setback takes about a month to recover from. I do good work in that month but never my best work.

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.