Thursday, August 2, 2007

Tricky day at work today - an appropriate part of the penance for staying up past the wee hours on a weeknight to (among other things) post gibberish about bunnies. Part of the sackcloth that really chafes is the loss of one of the favorite software features I've built lately - I'm somewhat in mourning for the silly little thing.

When you're building software as fast as you can, designing the bridge as you step out over the chasm, you bend rules a lot - in this case, data security rules. Most software projects these days have somber security responsibilities - at least the projects that feed families. When the code meets the real world, it has to be caring well for people's precious personal knowledge stuff, or better it never were born. This goes double for medical software, where the potential problems could range past mere embarrassment to actual death. Throw in actual federal penalties for failing to secure some of the information in question, and there's simply no room for fudging one's responsibilities in this area. Security is a continual part of the mindset of how the software does things, part of the texture of the backbeat of the composition.

However, nimble software development requires a different mindset. You're wanting the express lane through the tollbooth where you verify who you are, and that you have a reason to be there - after all, there wouldn't be a "there" at all if you weren't there. Careful secure logins aren't appropriate - the knowledge stuff while under development is all foolish fakery anyway. Some compromise must be made, palms greased with the border guards, or you'll spend your days carefully logging in and out, rather than building something into which one might want to log.

On my current project, I decreed a fun way to cut through this problem before it got too Gordian. On the careful secure login page, beside the places where one should enter username-password-domain, I put a button labeled simply "Frank". (Well, not really, but as we're here, let's use the here-name.) Click the button, and the login page would behave as if one had carefully typed all the information needed to prove to the border guards that one was me, and wave you on through.

It was something I simply added without announcing or explaining to the team a few weeks back, when I decided we needed an express lane. There was no group discussion, but my teamies in one-on-one conversations all grinned as they used it in front of me, and declared to me their secret love for what quickly became called The Frank Button.

(One thing I've learned in building software, everybody loves knowing some tricky shortcut. It's in everyone's mindset to want to tilt the pinball machine, and it pays off in human satisfaction to add some sort of bender for every rule one must make.)

We're about to show the software to users that will evaluate the current state of its evolution, nurses who will tell us how well our stuff will do its job when they and their colleagues really use it. They're kind enough to provide us with that little touch of Darwinian pressure that will make us great, and we try to be accommodating.

Yet another mindset comes into play, though - nurses find all the login rigamarole to be a bit foolish. If you're standing where they stand when they use this software, you're in the intensive care unit or wherever. If you can't be trusted to stand there, they're a bit more worried that you'll do something malicious with someone's IV tubes than with someone's patient information. So they certainly want an express lane, and if they knew that anybody ever had one, they'd feel like they were being deprived if they couldn't use it too even when the border guards are a serious necessity. It's a given on my team that a nurse that feels deprived is a perilous thing.

Weighing this knowledge against his somber responsibilities, the project manager sent me brief orders of one last required change before we make the software we'd actually show. These orders have been his only formal acknowledgement of the most pleasing work I've done lately.

"Nurses should not have access to The Frank Button from the login page."

So it is written, so shall it be; this is the way of the world. With little time to implement, I simply made the damn thing invisible to everyone; I'll scheme tomorrow to get it back in somehow. It's my damn pinball machine, I'll tilt it as I please - that's just part of my mindset.

Along with disappointment on an increasing number of levels that no nurses will, anytime soon, be accessing The Frank Button. I'm convinced it would have been great for everybody.

No comments: