I love this mindset.

Don't ask your boss or client if it's OK to take the time to build things the right way. Don't debate with peers if cutting corners is OK. Don't compromise or even give the option to skip foundational things like accessibility, or readability of code. https://twitter.com/okonetchnikov/status/1335494068349104129
Worried that if you hold to a higher standard for your work, peers will swoop in and "under bid" you, convincing your boss or client that they can do it for less cost/time than you?

If that actually happens (which is rare), fire that client or quit that role. You deserve more.
Software development does require you to balance complex competing interests, unrealistic expectations, impossible deadlines, etc.

But none of that is justification for sacrificing what should be non-negotiable: basic human decency and quality.
In fact, I'll go so far as to assert that when you compromise on the core foundations, and ship unmaintainable, unreadable, undocumented, untested code "that works" but is inaccessible, you've not only cheated your fellow humans, you've essentially stolen from your boss/client.
Why do I say that? Because they (bosses, clients) aren't in a position to actually make the tradeoff judgment calls that they often make anyway. They don't know.

You, the informed engineer, own the ultimate responsibility to protect them from their wrong/ignorant decisions.
That's one thing what we've gotten so wrong in this industry: we've perpetuated/allowed the notion that the non-engineer gets to dictate how engineering works simply because they have the money.
If I "hired" a structural engineer to work on some additions/improvements to my home, and I instructed them to ignore basic physics or building codes and cut corners b/c I'm the paying customer and "the customer is always right"......
...if they agreed (they almost certainly wouldn't -- they'd be jeopardizing their license and facing legal liability if something failed), they'd actually be cheating me the client, b/c it's literally their job to know and adhere to things I am not qualified to judge.
Engineering in almost any other discipline doesn't allow this sort of compromise of core fundamentals, but in software we've allowed it to be the status quo.

I know people will dismiss this assertion because there's no certification/licensing standard that constrains developers.
But... that's a cheap shortcut that's shrugging off the deeper ethical responsibilities inherent to roles of expertise that are offered for hire.

You owe bosses, clients, and end users an end-result that didn't compromise on the fundamentals.
Any excuse you make to justify doing the wrong thing, cutting corners, violating standards, etc, just undermines your credibility as a practician in this space.

You never should have accepted the premise that this was up for debate in the first place.
It amazes me when I hear excuses like "they don't want to pay for it"... ummm, why is it a line item on the bid or invoice?

Did the client actually say "please don't waste time making it accessible?"

Did they say "we don't care if the code is so bad it can't be maintained"?
Why was it even up for discussion? If they actually said those absurd things, why didn't your stand up from the table and walk away?
You can follow @getify.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled:

By continuing to use the site, you are consenting to the use of cookies as explained in our Cookie Policy to improve your experience.