Friday, September 14, 2012

True Collaboration


The finest example of true collaboration I had the pleasure to witness took place during an SAP project years back.  It started out simply enough when I needed to produce some statistics from SAP but lacked the location of each user.  We needed to get that data into each SAP user’s profile from some external source.  A simple problem statement, yet lacking a simple answer.

The solution presented itself through a most unlikely collaboration source: a simple email stream.  It started with an idea that would work, but at a fairly steep cost, in the six figure range.  That first email was sent to about a dozen people.  A short time later, someone else improved on the first idea.  Then another, and then another.  Somewhere in the middle of the ten or so emails that eventually became part of a stream of ideas, I improved on the idea.  And then my idea was further improved.  At the end of the stream, the final idea would take a couple hours of time and no further outlay of dollars.  I sat amazed at this string of creativity and the fantastic solution.  

Then I took a step back and realized how fantastic and unique this was from a people standpoint.  And how the credit for this was not just in the final idea’s creator, but everyone involved.  

The person submitting the original idea took what most people would consider a bold and probably an unwise risk.  But it took some uncommon bravery to write down a well thought out idea for a group of bright people to critique.  That bravery cannot be understated, and even though we all knew each other pretty well, it can still be a risky thing to do, particularly to one’s own ego.  But without that start, it’s likely the problem would not have been solved.  He deserved a special thank you and a nice chunk of the credit.

Then there were the group of people, myself included, that incrementally improved on the first idea.  And although we also didn’t find the final solution, we kept the energy alive and the ideas flowing.  Each of us deserve some of the credit for getting to the final solution.  

The person with the final solution certainly deserves their share of credit.  They designed a very elegant solution that was quick to implement and at only the cost of a couple hours of time.  

Bravery, energy and ideas are the lifeblood of collaboration, not cool social media tools.  Start and end with people.  Give credit to everyone that participates.  The rest (tools) will take care of itself.

Monday, July 9, 2012

5-50-500-5000

I mostly hear complaints about Change Management.  Too much paperwork, too many meetings and the process slows everything down.  All true, and if the Sarbanes-Oxley legislation didn't exist, I believe most IT departments would have abandoned the process years ago.  And that would have been an absolute shame.

A decent Change Management process is trying to tell you how risky the change you're making is in terms of the impact to the business if things go wrong.  It's also trying to match the level of testing, backout planning, etc. to mitigate that risk.  And the underlying cause in many instances is that we've designed our technology solutions as "big bang" implementations.  Have you noticed how big Internet and mobile device companies implement their changes?  They typically have a beta program which engages risk-tolerant people first.  When a few cycles of this passes and the known bugs are worked out, they begin a slow trickle of upgrades, ready to halt the process at a moments notice.  When all is good for a decent chunk of their users, they upgrade the remainder in short order.  They've avoided the "big bang" approach, shortened their cycle times and not upset their customer or their business.  

Sure, you say, they have advantages internal IT shops don't have, and in some cases that's true.  But in many other cases we do, and just haven't.  Which brings me to the title of this blog, 5-50-500-5000.

Years ago our email system, Lotus Notes, became an increasingly important service.  New software releases came out frequently and offered compelling new features and performance gains, and we wanted to deploy them as quickly as possible.  But with 5000 email users on a single system and everyday business counting on it, any major change was a very high risk.  A test system was of little help, since a few technical people could not adequately test everything, primarily because 5000 users do a lot of different things.  Our solution was to break up the email system into four partitions, while still making it appear as a single email system.  The first partition held about 5 users, just members of the core technical staff.  The second held about 50 users, a mixture of IT and risk-tolerant users.  The 500 system was a broad, representative set from across the entire organization.  The remainder fit into the 5000 set.  

The risk, to the business, of upgrading either the 5, 50 or 500 groups was very tolerable.  When it came time to upgrade the 5000 group, we had reasonable assurance that things would go smoothly, again, with respect to the entire business.  These Change Management meetings typically went smooth and short, which they should when the risk was largely mitigated by the facts at hand.  The real victory were users that experienced few problems and enjoyed new email features.

Listen, learn and adapt your IT services to what your processes are telling you.  Your customers, and yourself, will benefit from the results.

Monday, May 7, 2012

Linear and Binary Search



I find performance problems with applications a fascination, particularly the ones that involve really unreasonable response times.  A common cause is the lack of understanding and visibility into how searches are performed.  

In simple terms searching can be performed by starting at the beginning of whatever your searching, looking at the first item to see if that’s the one you’re looking for and proceeding until you find it.  This method is referred to as a linear search, after its namesake, the line.  For small amounts of things, a linear search doesn’t take too long, for example, if you’re looking for a particular jar in your kitchen’s spice rack.  But if you have really large number of jars, like a grocery store, you put them on the shelf in order by their name, with allspice coming before rosemary and rosemary before tarragon.  This sorted order allows for a much quicker search since you can eliminate large portions of the spice rack at one time.  You look at the middle of the shelf and find poppy seeds.  Since you’re looking for salt, you know which side of poppy seeds that must be on.  A few quick repetitions of method and bam!, you have salt.  This searching method is called a binary search, and while it takes some effort to put, and keep, the spices in sorted order, it’s well worth it for larger numbers of jars.

Computers love binary searches when dealing with millions or billions of pieces of data.  The math is pretty simple.  If I have a table of 1,000,000 numbers and perform a linear search, I have to, on average, look at 500,000 pieces of data.  A binary search needs to look at more than 20 pieces of data as it divides the data in two, figures out which side what it’s looking for is on and repeats that process.  219 is 524,288, not quite enough, and 220 is 1,048,576, which is a little bit more.  So you just find the power of 2 that’s equal to or larger than the number of data items you have and bam!, that’s your maximum number of tries.  Comparing 500,000 to 20 iterations is a no-brainer.  Now try 1,000,000,000 (a billion).  Linear takes 500,000,000.  Binary takes 30.  ‘Nuf said.

A couple of examples to illustrate how this works using a couple of typical pain points: Excel and Databases.

Excel has a nice function called VLOOKUP that allows searching a range of cells (aka a table).  Excel will do a linear search if the FALSE parameter is used or the range of cells that’s not in sorted order.  Having both sorted data and using the TRUE parameter is needed for a binary search.  This has little impact if you’re dealing with small sets of data and a few VLOOKUPs.  Excel searches 100,000,000 cells per second on my laptop.  That’s a lot, unless you’re searching 10,000,000,000 (ten billion) cells, in which case it takes 100 seconds.  But using a binary searches would take less than ¼ of a second, a 400 times improvement.  An excellent writeup on how to code VLOOKUPs using the TRUE parameter can be found at:

http://fastexcel.wordpress.com/2012/03/29/vlookup-tricks-why-2-vlookups-are-better-than-1-vlookup/

Databases also make extensive use of binary search technology to deliver good performance.  The primary tool used is the index, and there can be many indexes for one database table in order to provide a number of different ways to efficiently (i.e. binary search) find the row or rows desired.  When no index can be used, the database system must do a brute force search (i.e. linear search), and the larger the table is, the slower that search will be.  Even in cases where an index can be used, that index might not reduce the number of rows that must be inspected to provide good performance.  

You may encounter poor performance on smaller tables more often than larger tables.  Large tables tend to have more attention paid to them earlier than small tables.  Queries against tables when they’re small may perform just fine, since linear and binary searching are not all that different at smaller scales.  But when the small table grows over time, that lack of early attention slowly degrades performance.  Having a discussion with your database administrator to discuss tuning your query, adding an index or applying some other optimization technique can result in the same type of magical improvement in performance that the Excel example above delivered.  

Most importantly, just don’t accept bad performance as a fact of computing life.  In most cases there are alternatives and improvements available to solve your problem.

Tuesday, February 7, 2012

Your Own Device


BYOD (Bring Your Own Device) is all the rage these days with the onslaught of truly portable and useful devices combined with relatively free spending personal technology budgets.  But what an employee wants when trying to bring their productivity into their workspace depends on how their company’s infrastructure has adapted, or not, over the last decade as the non-portable versions of their technology, for example a home PC, has been permitted, or not, to access company email and applications.  

If UYOD (Use Your Own Device) has gained traction, then BYOD is a simple matter of providing Internet-facing Wi-Fi access while at work.  Using, not Bringing, is the key point here and UYOD should be the focus of this effort, after all, these new devices are meant to be used anywhere, and the office is just one place an employee would find using their smart-phone or tablet useful.  And UYOD speaks to the much larger effort required to securely deliver and support IT services on these devices.  BYOD typically means that a personal device would be connected to the company’s internal network.  UYOD only requires the same Internet access that the device has when it’s not in the office.  

UYOD is easily enabled by creating a separate Wi-Fi network that only provides Internet access, just like I have defined on my home wireless network to allow my friends Internet access without accessing my home’s internal network.  If there were internal services on my home network that I wanted a friend to use, I would find a secure way of providing that, while still keeping them on my guest wireless network.  

If the Internet and its hundreds of millions of web sites are built on a UYOD basis, maybe it’s time to see the light.

Saturday, December 17, 2011

A House Without Windows


I recently donated my last two Windows PCs to Goodwill. They were getting a bit long in the tooth, but both were very capable machines. I got rid of them for three reasons.

First, I use a Mac Mini as my main computer, making the old Windows desktop an unused fixture in the basement, just taking up space.

Second, I use my iPad as my mobile device, for example, as I write this blog sitting in the Chicago airport. It does 90 percent of what the laptop did, but the laptop added weight, time-wasting boot ups and downs and terrible battery life.

Finally, I simply got tired of the maintenance on the Windows PCs. I bought back an hour or more every month eliminating the patching and updating. The Mac Mini occasionally asks if I want to update something and the iPad's Update All feature is equally a few seconds work.

I had also noted that my collection of "computers" had grown in the last couple years and it was time to thin the herd.

Of course my cell phone is another primary device. I've just upgraded from the original Droid to the Droid Razr. Not crazy about the battery life of the Razr, but it's wicked fast, light as a feather and bright as a star.

Then there is a Google Chromebook and an Archos 101 Android tablet, which are useful in their niches. Almost forget the iPod Touch, which is now exclusively a music player attached to a pair of Griffin Evolve wireless speakers.

Of course my work laptop is Windows.

At least for now.

Love and Hate

As we live though this exciting, and turbulent, time in technology, I've started to notice the building tide of emotions towards companies and their products. The new wave elicits more "love" comments than "like", while we speak about the older ones, many previously loved, more likely being "hated" than "disliked". The business value of being loved versus hated is much greater than being liked versus disliked. This wider gap breaks down the barriers to change more quickly, leaving less time to react to market changes, perhaps fatally.

There is no better example of this than Apple. Talk about the iPad and you'll hear the word "love", loud and often. You will see smiles on the faces of people using them.  Watch someone begin using Siri on their new iPhone 4S.  Listen to them say "thank you" to their phone and the very personal connection they develop with it.  Love has powered them to the top of U.S. companies. Not the tablet or the phone. Love.

On the other side you find Research in Motion (RIM) and their previously loved Blackberry phones. A few years following the start of serious competition, that "love" has increasingly turned to "hate". I haven't talked to a single person that has replaced their old Blackberry with a new one, except when their company provided them with no other choice. Of course that just helps build the "hate".  RIM is not tumbling because of products missteps or product delays. The reason is simple. Hate.

Telephone, wireless and cable companies are on many people's hate list, mostly for are arrogant customer service practices and perceived price gauging. Given a viable alternative they will abandon you in a heartbeat. That might take them a quick phone call or requiring them waiting for a two-year contract to expire.  But a couple years is a very short time to move someone off their emotional cliff.

Perhaps the most paradoxical example are Windows PCs in corporations. IT staffs love Microsoft products. It's what they know well. But many users hate their desktops and laptops. They're slow, restrictive and unreliable. How long can that last? With the advent of tablets, smartphones and buying services, probably less time than you think.

The bottom line is to take stock of people's emotions regarding your product or service.

If they hate you, you're in big trouble.

Sunday, May 29, 2011

No Killer App


It’s the easy question that has no easy answer that is quite often the most fascinating to ponder.  As the owner to two iPads, it was natural for me to get the “why should I buy an iPad?” question.  I would describe the iPad in glowing detail.  Lightweight, instant-on, all-day battery, touch interface and really cool smart cover.  Lots of apps in the app store, many of them free.  But the answers never really seem to satisfy, so I reflected on why that might be the case.  

Really ground-breaking technology always seems to deliver on something new, something so compelling that almost all people see it as a break-through and they want it badly.  Mainframes had back-office accounting apps.  PCs had VisiCalc, the first PC-based spreadsheet program.  Smart-phones have email and texting.  These “killer apps” drove the technology into an increasing number of people’s hands.  And new eco-systems grew up around these new platforms, propelling the technology world to new heights.

So the real iPad question I was being asked is: “What’s the killer app?”.  The answer: “There isn’t one.”

If not, then why all excitement?  Why do iPads fly off the shelves?  In my opinion, it’s the new “killer experience”.  All those things I was describing had to do with how it felt to use an iPad and much different and exciting is was to use it, not at all what I did with it.  It’s similar to my first HD TV.  It didn’t enable me to watch more TV, cable TV did that.  But I watch HD content almost exclusively because of the awesome experience.  I imagine 3D TV will be the same in 5-10 years.    

I suggest approaching iPads not as a new way of doing old things, or looking for the application that everyone is clamoring to get.  Look for opportunities to completely blow-up or dramatically revise what you’re doing today.  People can now carry a “computer” everywhere, all-day and interact immediately.  We’re not used to thinking that way.  Changing your mindset is the place to start.