After my latest slideshare contribution about sex and APIs, the SmartBear team challenged me to take it up a notch. I’m always up for a challenge, so let’s talk about sins. Let’s face it, most of us have a secret sin… and that’s okay, as long as no one gets hurt by them. But some of those sins have more negative consequences than others and it’s important to know the difference. Your decision about how to address those sins (or not) has to be made based on how much risk you can absorb.
Nice lecture, Lorinda. So what does that have to do with software?
I’ll tell you.
It’s easy to forget that software, at its core, is built by humans for humans. If you’re a geek like me, the software you build is a separate beast from the software you use. When you’re building it, an application is a technical problem to solve, a complex system of gears and pulleys that have to work together for an end result. In the science of it, it’s too easy to forget that there are people on the other side who need to use that machine you’re putting together. The technically-elegant solution may not actually be the solidly usable solution.
And that brings me to the secret sins we technologists often indulge in that we would prefer our users (and managers) don’t know about.
A little chocolate is good for the soul. A lot of chocolate, not so much. Here are some things we like to do that we can get away with in small doses (but don’t get carried away):
- “Enhancements” to the screen designs – as long as you’re in there, you have a couple of little ideas to make that interface a little slicker. You can tell QA about it later.
- Stubbed predictions – you know they’re gonna want it so you might as well put it in while you’re thinking about it and just stub it out. If nobody ever builds it, what’s a few extra lines of unused code?
- Concessions to customers – one loud voice became too loud and now you’ve added something that only one customer cares about. We can worry about the cost to maintain unnecessary functionality later.
- Reinventing the wheel – sometimes you want to build it just because it would be fun so you don’t tell anyone that an algorithm already exists. After all, maybe yours will be better… right?
We all have needs. Here are a few things we need to do, but should make every effort to take precautions and do them safely:
- Third Party APIs – doncha love the look on the product manager’s face when you actually deliver what they asked for without a lot of effort? Hopefully, you did enough testing to make sure it doesn’t come back to bite you later.
- Single Sign-On – users love it, but it feels like you’re handing out skeleton keys to your tenants. Your momma always told you there’s more than one fish in the ocean – don’t settle for the first SSO option you meet.
- Dancing Bears – the cool sliding panel your product manager can’t live without, or the complex messaging bus your architect came up with that you know is going to be a pain to maintain. Sometimes, the high maintenance trade-off is worth it, but do it too often and nobody’s going to be happy.
- Hot off the presses technology – you know that feeling in the morning when you think “oh no, what did I DO last night?” Go with it when you just can’t resist, but you can get yourself in a serious tangle if you are seduced by every shiny object.
- Performance tuning – no getting away from it, but do you really have to design your system to serve 10,000 pages per second, or is an hour okay? It’s fun to tweak this stuff, but you have to know when enough is enough.
The Occasional Martini
Okay, sometimes you just want to kick off your heels and suck one down. And why not? If you don’t party now and then, you forget how much fun it all is. Here are some things you gotta do every now and then to keep it fun:
- A feature nobody asked for – some ideas are so out of the box the customers don’t think of them… sometimes you just have to give them a free shot.
- Easter eggs – cuz you know… someone’s gonna find it someday (if not, you can always blog about it so they do).
- Animations – just put them where they do no harm. We know that often your product manager isn’t imaginative enough to ask for a dancing bear, but they always smile when we give them one – don’t they?
- Riding the technology wave – how often have you updated third party libraries without doing the proper research? Truth is, technologists love technology, so go ahead and indulge when you just can’t resist.
I guess the key message here (besides just proving to the SmartBear team that I can make just about anything into a software discussion) is to have fun, but keep it real. And every now and then, go ahead and have that chocolate martini.
- Practicing Safe Sex with Third-Party APIs
- The Viral Bump: Will your app survive?
- 14 Ways to Contribute to Open Source without Being a Programming Genius or a Rock Star