Sunday, November 9, 2014

Developers! Developers! Developers!

Some of you who follow tech news will undoubtedly recognize the title of this blog article as a quote from former Microsoft CEO, Steve Ballmer. I feel a kinship to Mr. Ballmer: we both like to rant. He, from the stage of Microsoft events - and possibly the sidelines of Los Angeles Clippers' games, and me, from the digital pages of this blog.

Rest assured, even though this particular article will deal with technology and developers, I have great affection for those who spend their days huddled in front of computer monitors writing line after line of code. My day job is that of Executive Assistant to the Chief Technology Officer, and administrative assistant to a staff of over 150 I.T. and business analytics folks. I also spend much leisure time listening to podcasts from the likes of individuals as Tom Merritt (@acedtect), Paul Thurrott (@thurrott), Mary Jo Foley (@maryjofoley), Patrick Beja (@NotPatrick), Jonathon Strickland (@JonStrickland), and a "digital Jesuit" named Robert Ballecer, SJ (@padresj). Sometimes, though, I think that what comes out of the keyboards of some developers leave the customer's best interests out of the mix.

This past summer, my wife and I had the pleasure of meeting a number of great folks at an event in Salt Lake City, Utah called "Nerdtacular". Along with some fantastic artists, musicians, and simply "geeky" podcasters, we got to meet people like Josh Freeman (@jdfreeman11) from San Antonio, Texas. His Twitter bio states: "Software Engineer. @thefullformat host. Netflix C-list horror connoisseur." He also tweets statements like "Design better software today than you did yesterday. Continue doing so until the day you stop writing software." and "If sleeping is the human version of rebooting, is dying the result of an uncaught exception?".  Josh is the inspiration for this article.

"Dear Developers. The removal of a feature is NEVER considered an upgrade. Signed, Your Customers." - me.

The above is one of my major gripes regarding technology. Here's an example why:

Back in the day, Microsoft came out with their iPod competitor: the Zune. I have one of the 30 GB brown "bricks", and I really like it. It holds a large chunk of my music collection, but not all of it. I have auto playlists that I use to dynamically go through my music collection. For instance, I have one that pulls all songs, minus genre:Christmas, with a play count of less than one, shuffles it, and limits the playlist to no more than 30 GBs. I sync that playlist and start enjoying the music. When next I synchronize it, those songs that no longer fall into the playlist criteria (for instance, a play count of less than one) will fall off, which updates the overall playlist, and syncs new songs back to the device. This way I can work through the 26k+ songs in my collection without hearing the same Billy Joel song over and over (not that THAT would be a bad thing!)

The desktop software the Zune used was also called Zune - a kind of iTunes. You could play music through your computer, or sync it to a device. This was built on Microsoft Media Player (11?) All was happy in the world, until Microsoft came out with its new Zune HD player. When this device came out, a "new" desktop software was released as well. Microsoft came out with their own Market Place, and the Media Player core was not sufficient to do it. So, they rebuilt it from the ground up. And, since they were under a deadline to get the software out there to match the Zune HD hitting the shelves, many of the features were missing.

"A fast approaching deadline is the most important reason to have code reviews, not to skip them." - Josh Freeman

One of those missing features was the ability to generate auto playlists. Yup! One of the most useful features - a carryover from Media Player - and it was "removed". Okay, maybe not "removed". Just not in that current build. After a time of many people complaining in the forums, missing features slowly returned. But that took time. (And don't get me started about the mainly-useless Xbox Music either!)

I understand that sometimes a program needs to be rewritten from the ground up. Sometimes the program becomes so large that it slows down your computer just running it!

"More code doesn't necessarily mean more better." - Josh Freeman

What's even more annoying, is when you install an update to software and it "breaks". One of the reasons TO update is to fix security holes. Not updating software can therefore be a risky proposition. Unfortunately, most updates do not let you know what is changing, until after you've updated and it becomes a mess. Let me give you an example:

You have replaced your refrigerator with the newest model. Not only does it keep the food cold, it has many adjustable shelves, an ice maker, a water dispenser, and a beautiful stainless steel exterior. Very nice. One day, overnight, an "update" gets pushed. When you walk in your kitchen you find that your refrigerator is missing all of the shelves (the food is piled on the bottom), the ice maker doesn't work, the water dispenser is missing, and the stainless steel exterior is now a vinyl-clad hot pink. When you go online you find many other people complaining. The only responses you get are "the shelves will be returned in a future update", "we are aware of the ice maker issue and are working on it", "what water dispenser?", and "the color is a UI upgrade." At least the food still stays cold.

So, please, developers, and those managers pushing the deadlines, keep us, your customers in mind when you make changes. The future of your products depend on it! (Remember Vista, Microsoft?)

"Feature - feature - break - feature - break - fix - break - test - fix - test - fix - break - feature - break - break." - Josh Freeman

(Special thanks to Josh for inspiring this post: looking forward to seeing you at a Nerdtacular again soon! -j.p.)

© Emittravel 2014

No comments:

Post a Comment