I don’t know what to call this. I’m sure some Paul Graham or Jonathan Blow or Carson Gross type has already written a long essay about and named the concept I’m currently crudely calling “bullshit.”
There’s nothing new under the sun and some people just say things better. But I haven’t found or read that essay yet so I’m just going to bring up a problem that I’m sure many of us have struggled with but I’ve never heard anyone really talk about.
The best way I can explain this is through an anecdote.
I’m currently integrating Netsuite with an e-commerce site.
Netsuite is a love hate thing, it’s one of those things that’s hyper-configurable, but a pain in the ass to use and expensive by some standards.
It’s a SAAS solution (software as a service) from Oracle, meant to handle everything from inventory to accounting and more. A cloud one-stop shop for business management.
The things I’m trying to do are actually quite simple. Update a custom field’s pricing, retrieve a saved search and use that search to determine items which are in stock.
The rest of the implementation was in rest, but it’s not that simple when it comes to the saved searches. You need to use SOAP
The implementation in SOAP is under-documented, and I a hate SOAP, so I just resorted to using their PHP toolkit. A thing I didn’t even know existed from the outset.
The problem is that I have no one to defer to. The company handling Netsuite has no idea how to do the implementation, and I have done this before but not with the exact same specifics.
The documentation is OK, but that’s about as much as it is, which is a problem with most online documentation.
I’m the Sr. developer and the last line of defense. And I always deliver. Always. Lest I lose my job. So I figure it out, I always do.
Of course I could contact Oracle (HAH!) but by the time I have a response I’ll have figured out the issue. It’s very rare that I have to resort to actually asking the company how their crap works, because I’ve learned that’s a great way to never get anything done.
“Ok…” I hear you say “So you’re just not knowledgeable in this field, whoop-dee-do, sounds like a you problem.”
But this isn’t a one time thing, and definitely not just a me thing. It’s just my most recent example that happened today.
I can think of an earlier scenario this year where a payment provider upgraded their OAuth implementation. I was put on the project and was chipping away at it. We had something like 10 sites using the old implementation. We were emailed by the provider at some point “Hey you guys have to figure this out within the next two weeks.”
We had to pull the fire alarm here.
I worked tirelessly on this. Literally working all day and night until I figured it all out at the very last minute.
We needed to use a JWT implementation to decode a response from their SDK. No biggie, but the technicals on JWT were beyond my knowledge and I was running out of time. So I do what most of us do and use a library.
Not so fast. The JWT is encrypted by an SSL cert, no biggie, just need to find a library that supports that. All of the ones I found required PHP 7+ and above. Regrettably, and embarrassingly, we’re on PHP 5.6.
I find a library that claims to support 5.6, the only one I could find that supported 5.6 and SSL cert decrypting of JWTs and voila, it works. Just kidding.
There is a bug in all of the versions of the software, I know because I tried all of the versions that claimed to support this, and none of them did. I had to resort to debugging their code to find the issue. Also their newest version only supports PHP 7+ and they’ve deprecated support for 5.6…so I feel like a PR to fix this here would be meaningless
I had to make changes to their code to allow passing the SSL cert in key functions where it was not.
Finally….finally we had it. We got that rolled out right in the nick of time, although they ended up upgrading weeks later than they said we would and we found out there were still some broken parts of our implementation then.
No biggie, we patched those up quickly.
But the point is this:
Software developers, and the like, are not paid to know how to code. We’re not paid for our knowledge. We’re actually paid for how we acquired most of our knowledge. It’s that thing they often call ‘experience’. But more specifically the process we’ve learned on how to acquire it.
Software developers are generally forced to experiment to get to where they need to go and to meet deadlines and metrics. Which is why the field is full of people who like to solve puzzles.
I know this because when I became a Sr. developer and started interviewing people and meeting staff I’ve lost count of how many times someone told me they enjoyed solving puzzles.
And I’m Mr. Sokoban Stephen’s Sausage Roll Catherine himself.
And while there’s something admirable about being able to solve and handle problems like this, and I’ve been proud of my solutions in my finest moments, I’m also somewhat disgusted and horrified that this is the state of this industry.
Hacking – a term which basically means “hack away;” keep trying until you get it.
The term means a whole different thing entirely if you apply it to the medical field. No one wants a hacker working on them there.
And that’s just it: No other industry accepts this as the norm. No other industry goes “Wait a minute, no one can do their job. They’re constantly stuck, banging their head on the wall, and getting burnt out ten years later. Cool, guess that will be status quo for at least 5 decades.”
I understand that in this industry we’re usually on the bleeding edge. But no doctor would throw you a stack of papers and then go “Go for it, figure out surgery on your own.”
And it’s not far off because programmers aren’t just working on crummy little e-commerce sites. They’re working on medical equipment, weapons, and vehicles.
If I could find the tally you’d be either shocked or nonplussed about how many people have been killed by software bugs, depending on how much of an optimist you were.
I don’t have a solution, but I do see a problem. And this is more of a rant/vent session than anything.
I spend most of my day at work mentally exhausted. I’ve told my spouse often that at the end of the day I’m drained mentally.
And it’s because of shit like this. And I guess it won’t get better until we all get together and admit it’s a problem and do something about it. But I won’t hold my breath.
No Responses