Sunday, October 20, 2013

Adding Capacity? Turn the Spigot Slowly.

Success does not consist in never making mistakes but in never making the same one a second time. - George Bernard Shaw
 I've seen this more than once on two different teams where I work:  on a network upgrade and on our BI Tools Team.  Capacity is identified as a problem which is causing incidents.  The solution is to submit a change to add horsepower.  Come Monday morning, new incidents arise.  To the clients the systems still aren't working, but to IS the problem has simply shifted.

When you add capacity to a system, you're fixing a bottleneck but are all of your downstream systems equipped to handle the deluge of new data coming their way?  You could be breaking South Fork Dam over Johnstown.  When you open the floodgates, are your systems ready?

In my case, an upgrade to SSRS server capacity threw more at the report source databases than they could handle.  After a day of intense investigation, we realized what needed to be done.  Adjust queue depths and indexes and upgrade disk frame technology and database server memory and CPU.  Additionally, the application support team took the most important and often overlooked step of report query tuning.  Soon everything was humming like a well oiled machine.

The lesson learned was that bottlenecks are systemic:  they don't go away they just move.  Before adding capacity, if you're lucky enough to be able to replicate Production in your Test environment, test the upgrade thoroughly.  If upgrading Test to match Prod is too expensive or wouldn't yield accurate results due to differences is load, then turn the upgrade spigot slowly.  The temptation to do everything possible all at once can be hard to resist, but changes are best done one at a time so the effects can be observed.  If multiple changes must go in at the same time, use administrative tools to restrict the effects, allowing you to turn the knob slowly and keep an eye on things.

Sunday, August 18, 2013

Too Many Choices, Not Enough Metadata

In my efforts to do a bathroom remodel I've realized a common point of frustration: search fatigue. Not to pick on Lowe's in particular but rather case in point because I like them, whether the search is bathtubs, tile or fixtures a customer's ability to filter search results seem limited mostly to the standard three: price, rating and brand. However if there is an online selection of over 200 Delta shower heads, and I'm looking for an antique bronze colored hand-wand-in-shower-head, it is a frustrating endeavor. 

So now some advice to retailers, particularly to home improvement retailers where a bad online search capability can cost you thousands: allow your products to be pivoted to the maximum number of common product dimensions. If your customers are buying windows, they want color, size (if not custom), material*, efficiency*, number of panes, open method, and whether replacement or new construction, in addition to price, rating and brand (*in fairness Lowe's had material and Energy Star certifications as categories- but there are four binary categories for Energy Star on their mobile site which is confusing).  You already have product specs on your site, now unleash the metadata possibilities!

Sunday, August 19, 2012

Don't beat yourself up for being an almost lottery winner. There's no such thing.


I was reading through an article with recommendations on how office lottery pools can fairly play the lottery as a group.  There were some good points, but two in particular that got me thinking.  This led me to conclude that two of the points taken together are fallacious.  In a nutshell, one says "let the computer pick the numbers" and the other says "play every week so you don't miss the week that hits".  However, the truth is, if the computer picks the numbers on a week you didn't play, it would not have picked those same numbers if you had played.

Quick Pick lottery numbers (I use the Powerball term to cover all computer generated tickets) are generated at each terminal by a random number algorithm probably seeded by something unpredictable like atmospheric or electrical noise.  Many people have the misconception that if a lottery winner comes from a store in their neighborhood, they were much closer to winning than someone on the other side of the country because if they had been next in line instead of THAT person, they would have won.  Not true.  If we assume that your being there has no impact on the seeding mechanism of Quick Pick, the time factor alone is mind numbing.  There are limitless ways to interact with the checkout clerk to ask for a lottery ticket and if the button that generates that ticket were not pressed at the exact millisecond as before, you may as well have been a million miles away from that store.  Maybe the clerk pauses because you remind him/her of someone, or maybe you preface your request with "Um", or maybe the other winner had asked for tickets three times to be understood because of their accent.  Regardless, different numbers will be generated.

So let's assume that your lucky office pool buys some tickets and wins without your participation.  If you called in sick that day, your team merely thinking about your absence changed their behavior enough to generate the winning circumstances.  Said another way, if someone wins from playing Quick Pick, it's because everyone and everything behaved exactly as it did and the game was played at that exact location at that exact second.  This sounds like science fiction, but it is not.  This indeterminate randomness is absolutely necessary; otherwise, someone would have cracked the lottery by now.

This knowledge may not allay the jealousy you feel from seeing your coworker's new found wealth, but it can at least spare you the misery of continuously reliving the "what if" scenarios in your head.  About the only thing you can say with near certainty in this case is "Damn!  If only I had played the lottery with my team that day!  Then they would not have won and I would not have the misery of closely knowing the jackpot winners and seeing firsthand how much fun they get to have!"

sources:  http://www.molottery.com/powerball/understanding_chances.jsp
              http://www.ehow.com/how_2073998_enter-lottery-coworkers.html

Saturday, July 28, 2012

How Apple is Better even When it's Worse


The latest U.S. Cellular commercials are trying hard to obfuscate their lack of an Apple offering by highlighting their Android lines and by poking fun at the Apple faithful as lemmings running off a cliff.  I shake by head when I hear this because people still don't understand why Apple commands this kind of loyalty.  So let me state the obvious.  It's not the specs.  To borrow from James Carville, "It's the usability, stupid!"

There are many smart phones with better cameras, faster processors and ultra fast 4G networks rocketing them ahead in the specs department.  However, in the interest of usability, Apple does the following things:
  1. Control the hardware.  Apple's software is stable because it's designed to run on a limited line of devices, whereas Google and Microsoft license their software to just about anyone.  If you can't guarantee the hardware, you can't guarantee the software.

  2. Control the user experience.  Apple will not allow network providers to dictate device features or create "exclusive" phones for their service.  True, Apple and AT&T did originally have an exclusivity agreement, but it was truly exclusive so the user experience never suffered. Samsung learned this the hard way and is now pulling in the reigns on Verizon, AT&T and Sprint.  Network providers may retaliate by lowering smart phones subsidies, but at least we'll get a common experience out of it.

  3. Offer easy OS upgrades for free and not too frequently.  This will ensure a quick adoption rate. 
    •  I can't speak for Google, but Microsoft got it all wrong and is now taking a page from Apple's playbook.  It took Microsoft over 10 years to get 51% of their users off of Windows XP because they were charging hundreds for features that made us yawn.  Windows 8 pricing?  $40.  
    • Apple offers updates every one to two years.  Every time I turn on my Xbox 360 or reboot my Win7 machine, I'm getting forced updates with no idea what benefit I'm getting.
    • Windows 8 distribution is now more like the iTunes Store.  Nix the DVD, and offer downloads

  4. Design is dictated by usability and vice versa.  Engineers are critical for some things, but leave them out of the design discussions unless you want key features hidden 8 menu layers deep.

  5. Apple only introduces features that are mature and stable.  A fast network and 200 megapixel camera are useless if your apps and OS crash. Apple also control's apps through a tight QA process. 

  6. Don't compete on price.  It cheapens your image and invites the crowds that want to jailbreak your product to death.  These folks then kick and scream to their friends about how it doesn't work.

  7. Protect your intellectual property.  Everyone takes the pinch zoom for granted and many claim it should be not be patentable because it's "intuitive", but that's exactly why it deserves a patent!  Someone came up with that idea and they deserve to be paid.  Apple also goes aggressively after unlicensed third party accessory makers.  This may increase the price, but it ensures that these things have some quality standards.

  8. Eliminate competition at the point of sale.  Apple's own stores sell only Apple products.  Now they control the manner in which the products are displayed and have expert help who are qualified to answer questions.  Despite a lack of choice for consumers, the stores and the gadgets are exciting enough to draw people in.

Sunday, July 15, 2012

How to Deliver Training


Technical knowledge and training are two separate skills.  Case in point, last week I had training on SQL Server Reporting Services (SSRS).  There were two presenters and both were very technically knowledgeable, but their training abilities left something to be desired.  If you are a company putting on training or you are a trainer yourself, take heed to these pointers:

  • Know your audience. The training isn't about you - it's about them.  Is your audience developers, project managers, architects, engineers, operational support, business lines or executives?
  • Have an agenda.  Do not wing it!  Include subject matter and breaks.  One tried and true formula is intro, body, and conclusion, also known as tell them what you're going to tell them, tell them and then tell them what you told them.
  • Always tag team.  
    • One person can train while the other controls the slide deck and adjusts lighting and sound. 
    • This is the best way to keep your audience engaged.  It is harder for people to zone out if there are alternating voices, personalities and bodies.
    • Instructors should be apart from or roam within the audience.  This ensures that  they can receive nonverbal cues from the audience.
    • If you are the only one training, move around a lot, animate your vocal patterns and involve the audience as much as possible.
  • Make sure you can be heard.  Get a microphone if you're in a room with a capacity over 10.
  • Announce how questions will be handled.  
    • Roaming instructor
    • Ask in real time
    • Q&A section
  • Powerpoint is optional.  A few large visual aids printed at Kinko's can be just as effective.  If you do use Powerpoint, use it for high level points.  It's your job to fill in the details.  No more than 50 words on a slide.
  • Have a common theme. Use similar color patterns, branding and terms for that extra polish.
  • Check out the venue in advance.  Get a sense of the room's size, amenities and potential obstacles.  This will give you a sense of comfort with your environment and prevent you from not being able to find your place on game day.
  • Know your configurations.  Sometimes the room is fixed (stadium seating) but many times it can set up to need.  Lectures are great for disseminating expert knowledge or policy decisions, horseshoes work for team meetings, analytics, and video conferencing and roundtables work for collaboration and negotiating. New virtual classroom software is also quite sophisticated and commonly used.
  • Make sure you have what you need.  Will training PCs be locked?  Will you need Internet access?  Test setting up the technology and doing a dry run.  Have the contact info for the AV and Service Management teams.
  • Get personal.  Make your contact information available.  Have your audience wear name tags or use tent placards and then call people by their names. 
  • Break.  At least 10 minutes every 90 minutes of training and one hour long break if over 6 hours.  Provide drinks and snacks if over four hours.
  • Dress for success.  Grooming and hygiene should also go without saying.
  • Be flexible.  No matter how much you prep, something will go wrong.  Diffuse it with humor and move on to Plan B until the issues can be resolved.
  • Ask for feedback.  Get some data of your own to analyze and improve your training skills!

Monday, June 18, 2012

My Journey BegIns

After two years of studying, networking, and interviewing on the subjects of Enterprise Resource Planning, Customer Relationship Management, and Business Intelligence, I have accepted a position with my current employer supporting BI tools.  I am very exciting and I can't wait to help mature this very important field: a field that is new and interesting but one that will also bring real results to the business.  There is no better way to get hands on experience than to support Production systems and I look forward to working with the engineering and consulting folks of BI as well.