Your web browser is out of date. Update your browser for more security, speed, and the best experience on this site.

You may also visit the site on your mobile device.

The Software Swamp


Last fall, I decided to take a walk to clear my head between battles with some software that was frustrating me. My walk took me through some public parkland and an adjacent golf course. Part of the golf course has been closed for a few years due to drainage problems caused by seepage from a deteriorating dam. The dam was rebuilt in the past year. The fairway grass looked much shorter than last year indicating that it had been mowed sometime this summer (last year it was a few feet tall in places), and recent months had been fairly dry so I decided to take a shortcut down one of the fairways. Well, it wasn't a shortcut. I ended up zigzagging my way down the fairway in search of the high spots as much of the fairway was boggy. Which is comparable to how I felt when I was getting frustrated by the software a few moments earlier.

As customers, we want the software we use to work and to work easily. We want the software to be easy to install, easy to use, easy to understand, easy to tune. We want it to work reliably and when it does not work, we want to receive easy-to-understand diagnostic messages - diagnostic messages that tell us what is wrong and, heaven forbid, tell us what to do to correct the problem. How often do we use such software? Probably not very often and certainly not often enough.

Anytime I use new software I feel like I am about to take a walk through a swamp. I just want to get the software up and running quickly, yet something unexpected happens and, lo and behold, I'm suddenly moving oh so slowly wondering what my next steps will be and will they continue to frustrate me or lead to that elusive success.

But then again, why should usage of the software be any less frustrating than the development of software. As a software developer, I find that while there are certainly times when things go well, there are also those inevitable moments when it seems nothing goes right. The latter can come in the form of a compilation error that does not have an obvious solution, a series of tests that continue to fail for an obscure reason, or an oops moment when you realize there is a disconnect between different aspects of the design. But sooner or later (usually later), the obstruction is overcome and you come out of it with a sense of satisfaction that you have met a difficult challenge and succeeded or, at the least, learned a valuable lesson. And if you are really lucky, you might just find the software design was able to accommodate disconnects with only minor revisions or workarounds.

Another source of frustration to the software developer and, ultimately, the customer, are those elements of the software for which little attention and forethought are paid. While the bulk of the software is usually implemented with care, these ancillary elements are implemented with only rudimentary functionality with elegance and ease-of-use conspicuously absent. For example, Workforce Central's system setting mechanism, while arguably appropriate for most Workforce products, has provided inelegant and ineffective for a product like Workforce Record Manager where connections to multiple databases need to be established and are seldom accomplished in a single iteration. If fortunate, such oversights are corrected in subsequent versions or perhaps, by the development of some tools by a third party, for example, a value-added re-seller, a branch office, support/installation personnel, or even the customer to fill the feature gap. For example, we all know home grown SQL is often employed to answer questions not easily answered by existing applications or reports. Along those lines, Improvizations has written a SQL Generator tool that allows users to write command line SQL against any Kronos table with a fill-in-the-blanks capability. And sometimes something as simple as SQL evolves into something greater. For example, Kronos Connect had its origins in a Kronos branch office before evolving into a full product offering.

I'd like to start a discussion about tools. Feel free to comment here or add your tool idea into the upcoming tool-man initiative here at Improv. Share your wealth and you will share in ours.

Comments

YouTube Icon LinkedIn Icon Twitter Icon