It's difficult to not let mistakes drive you buggy
HOW secure are you? Do you encourage people to find errors in your work so you can correct them? Do you welcome even brusque or picayune reports of your mistakes?
If you're a programmer, you don't have a choice. Or, rather, your choice is between welcoming bug reports or distributing very buggy software.
Every day I marvel at my colleagues' ability to separate themselves from their work when users point out its shortcomings.
Fred Brooks called it "egoless programming." I'd like to see "egoless writing" or "egoless governing" as often as I see programmers congratulate users or testers for finding their bugs.
When I joined my new company, I found a batch of misbehaviors while using a software application we develop.
This is typical even for good-quality software; a new user uses software in their own idiosyncratic way, travels untested logic pathways and stumbles upon shortcomings that experienced users have (sometimes unconsciously) learned to avoid.
A bug is whenever the software acts in a way other than the user expected; the bugs had not taught me to expect them yet.
I happily wrote up my detailed bug reports, never leaving out the expected behavior, observed behavior and steps to reproduce. Developers said things like, "Good catch, Sumana." My treatises would help make our software better! How often do your thoughtful criticisms actually make a difference?
Now the newest version of this application is in beta testing. A group of current customers volunteered to test it on their own computers so we could find and fix more bugs before releasing it publicly.
We thank and reward these volunteers; a comprehensive bug report is like gold to a developer, and these beta testers can "bang on" our application in many more different configurations and environments than we could.
Yet, when I see concise and damning bug reports from people outside the company, I have to hold back a reflexive anger. Who are they to criticize our awesome app, to judge us?
The notes that start with self-deprecating disclaimers escape my wrath, but simple factual statements about misaligned graphics or persnickety drop down menus make me defensive.
That's an immature response, of course. I shouldn't feel for my company an unthinking patriotism; I should judiciously gather and implement suggestions to further our greatness. I got past that insecure defensiveness as a University of California, Berkeley, student and at my previous employers, so I assume I'll get past it here as well.
Like New York City cashiers and locker attendants and bus drivers, testers often dispense with niceties. Efficient descriptions of what's wrong sound like attacks to my soft ears. But that's just culture shock; again, it'll pass.
But what happens when the behavior being criticized is my own? When a colleague kindly lets me know that I often get defensive even before anyone has criticized me, and that I have no reason to do so because my intelligence and competence are not in dispute, can I help but get defensive about my defensiveness?
The "Bhagavad-Gita" tells me that an enlightened man (it's a pretty man-centric and caste-y book) learns not to let the slings and arrows get him down. External hardships and insults don't get him down. But, then again, strokes of luck or rewards for work well done don't delight him, either.
Equanimity keeps him from reacting angrily or joyfully; he glories in doing his caste-appointed work as well as he can, for its own sake.
My comic book version of the Gita illustrates this point with a sage who passes by a stone, a gold brick and a clod of dust, all with the same world-weary facial expression.
I generally modify the Gita's teachings for my life, to downplay the abhorrent sexism and casteism. Here: the enlightened woman finds her calling and rejoices in it, rejoices in improving her craft and welcomes opportunities to improve her process and product. There is gold hidden even in clods of dust; even the vaguest or crankiest complaint tells her something new about her world.
But that's no reason to take taunts to heart. I'm learning to distinguish the legitimate bug report, about software or about me, from useless insults.
Again, I turn to the world of tech. Secure software can deal with an attack. But software needs judgment, to distinguish attacks from legitimate attempts at communication. It's a tough balance, but we don't have much of a choice, do we?
Sumana Harihareswara writes each week for Bay Area Living. You can e-mail bug reports to her at sumana@crummy.com.