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.