KPIs for a QA Team

This post is somewhat less than lengthy, but I figure this will be of some use regardless.  A while back I was doing KPI discussions for various groups, and got distracted.  Here’s what I measure for QA personnel:

  • Bugs that escape into production:  anything that gets out the door and into a production piece of software or site.  This metric is a direct measure of how good QA staffers are at catching bugs, how good are their test cases, etc.  Also, have bugs prioritized in this, so measuring them by severity will be useful.  If you go over this article – http://borkedcode.com/wp/?p=597– particularly the section that describes prioritization, that should give you an idea what I’m looking for.
    • Collection of these can come straight out of Jira or other bug-tracking software (issue=bug, create date after UAT start), the QA TL can compile their individual team reports weekly for you and then you can combine those to send a full team report on to me, or you can pull the whole thing together if that’s more convenient.
  • % of bugs caught in-house as a ratio against % of bugs caught outside.  This is a variant of the above, gives us a measure of how much is actually being caught by the team as opposed to a raw count of escapees.
    • Total bugs is a straight pull from your tracking tool, then assemble the ratio based on before and after UAT or launch date
  • Time taken to complete the performance of a test of a feature, or smoke-test, or regression.  Test Velocity is a direct measure of member’s/team’s ability to accomplish their primary mission.
    • Each feature will have time booked against it, TLs can build an excel sheet on these and you can get a baseline average over a month or two which you can measure each individual’s average against
  • Time taken to write a test case of a feature.  As with execution, analysis and assembly of a TC measures their ability to produce one of your key work products.
    • As above, everyone’s booking time against particular features with work descriptions – your TLs can build charts for their teams and you can compile them together.

 

Posted in Business, Work | Leave a comment

My suggestion on Gun Control in a nutshell

This has come up on FB several times, and rather than re-hash it over and over, here’s my recommendation (the first part modeled after the Czech legal system):

In order to be licensed to possess any firearm (of various classes from historic to military), you must:
1. Get a doctor’s certification every three years which testifies that you are of sound enough mind and body to bear and use the weapon appropriately (the doctor risks his/her license in doing so, therefore it is in their best interest to be honest)
2. Pass a written test to demonstrate that you are fully aware of the law appropriate to your chosen class(es) of weapon
3. Pass a practical exam under police supervision at a range to demonstrate basically that you can hit what you aim at
4. Re-license every five years or lose the privilege 

(For reference, the Czechs maintain four categories: atypical for dangerous pressurized gas weapons and other weird constructs, historical, hunting/sport, and military – things like high-cap magazines and laser sights considered military, you can figure the drift from there.)

Then, for each firearm you possess, within ten days of acquisition you must register it with your local police station (in the US, that’d probably be your local Sheriff). Move to a new locale, you find the local authority and tell them what your weapons are. 

The local authorities are obligated to do spot-checks of weapons, to make sure you still possess and that you are storing weapons safely (which isn’t, but should be part of, the legislation).

In addition, I would add to the legislation the following:

* A mandate for liability insurance for each weapon similar in nature to what we have for automobiles, to the tune of $50 per weapon quarterly, scaled down for quantity (so something like $50 first, $40 second, $20 third, $10 fourth and every after – subject to riders for semi-auto or “assault” style weapons) subject to proper storage restrictions, etc. Such insurance would be provided by a government-authorized corporation similar to the Post Office or Medicare, and any surplus go to a fund used to pay for treatment or funerary services for victims of gun violence.
- failure to obtain such insurance for the weapons in question will make the registered owner subject to felony charge, up to and possibly including a sentence equivalent to that handed down to any criminal penalty assessed against a user of the owner’s weapon as a result of conviction of a crime using that weapon.
- this insurance program would cover accidental discharge damages, and also serves as a disincentive to the local jerk-off who just wants to have a gun “because it’s cool” – $50 is a lot of cash for a dink who wants to brag. The price is workable for someone who *really* wants to possess (which is generally not the kind to go on a spree) or who simply enjoys the sport, or is a professional shooter with sponsors to pay. 

* A mandate that all weapons manufacturers and importers include microstamping devices in every weapon sold (this is *not* a pricey add-on – it would probably equate to $15-$20 per weapon – that will uniquely stamp the casing and the bullet of every shot fired with a code specific to the weapon which was used to fire it. 

* A mandate for weapons manufacturers to employ tamper-resistant serialization of their weapons (see microstamping above, this would mean putting a serial # in a lot of places, or installing it in such a fashion as not to be ‘removable’ without significantly disabling the weapon). 

* Establishment of a Federal buy-back program for pre-legislation weapons that will purchase back any weapon turned in to the local FBI office or kiosk (kiosks to be held open at gun shows) for a rate of 85% of the purchase price subject to original receipt and tracing of it to its FFL entry, if any, otherwise ‘going rate’ (reassessed every three years or so) as a non-collector weapon. This is intended to capture grandfathered weapons that would be exempt from this regulation. Needless to say, such weapons collected would be sent to Quantico for ballistics checks to see if they had been involved in a crime…any weapons not required for evidence to be destroyed.

 

Questions, comments, death-threats?

Posted in Politics | 1 Comment

What Are the Qualities of a Good Bug Entry?

Making a bug report can be a surprisingly subtle process – and precision is everyone’s friend when it comes to bugs.  In this section, we’ll briefly address the most important aspects of bug reporting.  Always remember:  the goal of a bug report is to get a problem fixed.

The process of removing problems and fixing bugs in software (or hardware, for that matter) is a lot like the process of identifying an illness in medicine:

  1. Study the symptoms
  2. Trace the symptoms to a root cause
  3. Once the root cause is found, cure the root cause, or
  4. If the root cause is not treatable, find a treatment that eases or removes the symptoms

In the case of software, the identification of the root cause is generally the process of locating a specific set of instructions that either conflicts with another set, or that itself is mal-formed.  The symptoms experienced are generally signposts that point towards this set of instructions, and taking those symptoms and turning it into a map of the problem is how the developer finds the bug in question.

With that said, the bug report is the primary tool you have in helping developers identify bugs in software you’ve used.  There are bad bug reports (“It’s broken.” – that’s not a joke, this author has seen bug reports that read exactly that way), and good ones.  What are the qualities of a good one?

Concise

A good bug report is concise – it is to the point, and spends a minimum of time talking around the problem.  Use clear language, and only enough to describe the issue at hand.

Isolated

Isolation is making sure that any individual bug report refers to only a single bug.  When entering a bug report, always try to make one report per bug, and one bug per report.  When chasing a problem, a developer will have a much easier time locating and repairing a single error – not because he or she can’t deal with more than one thing at a time, but because it’s very likely that any given set of bugs probably exist in different sections of code, or even different files or directories.  If a developer had to look at two different bugs at once, it’s likely that the two would confuse each others’ trails, making it very hard for the developer to dig out either one.

For example, if a “File – Open” dialog throws an error message, that is a different bug than attempting to navigate to a new page and having another error message – even if the messages end up saying the same thing.  These two occurrences are better off being entered into two separate bug reports.

Although multiple reports of the same bug can also be a problem (because the QA staff must verify a bug, and multiple reports potentially use up their time), if you are in doubt as to whether what you are looking at is new or a duplicate, it is better to enter it as a new bug.  If it is later identified as a duplicate, the entry will be closed, but a link will be made in it indicating the bug report that originally identified the problem.

Specific

Specificity is crucial to the technicians trying to find the source of the problem.  This is related to isolation (in that your report should pinpoint a single issue), but is also its own subject – when you describe the bug, be as specific as possible.  For example, if you experience an error when you navigate to a particular screen of an application or website, what is the method by which you navigate to it?  Are you clicking a link from another page, or picking an item from a menu?  Are you pressing a “submit” button and being redirected there?  Are you using a Mac or a PC?  Knowing these details can chop minutes or hours off of the process of finding the source of the problem.

Reproducible

The first thing a QA tester or developer will tell you when asked what makes a good bug entry is this:

Steps to Replicate.

Although often a bug does not evidence reliable behavior, if the reporter can find a method by which they can reproduce the problem consistently, that is vitally important information.  Including that in a bug report can mean the difference between saying “Oh, I see, click!” and spending hours or days in detective work trying to find the error and observe what it is doing.

Steps can be laid out in simple numbered lines, and often this is the best method.  For example:

  1. Open [application or site]
  2. Open menu X with Alt+X keypress
  3. Click on menu item “widget” with mouse
  4. When “widget” page/screen is loading, click on banner in upper left
  5. Computer will ignite and spark (describe problem behavior here)

Prioritized

If possible, a scale of importance should be applied to the bug.  Having a priority assigned to a bug helps the development team determine which bugs should be addressed first, and which might not be so important to deal with.  Not every bug should be considered a “stop the presses!” matter, just as not every bug can be written off as trivial.

This topic brings into spotlight the nature of individual perspective.  When dealing with software and web development, at least two widely differing perspectives are brought together to work towards a common goal.  Those differing perspectives are the most common causes of friction and strife in teams.

For example, the perspectives of a developer are very different from those of a marketing professional, because the two measure value based on very different elements.  A developer can look at a spelling error on a label and consider it the most trivial of issues, because generally software professionals measure importance as directly proportional to the complexity of a problem – changing the text on a label to correct its spelling is among the simplest operations one can perform.  Meanwhile, the aforementioned marketing professional measures importance by the content and impact of memes (ideas and concepts) – for that person, a spelling error in a highly-visible place will be considered a critical and business-threatening problem.

With this in mind, when creating a bug report, the reporter should assign to the bug a level of importance that the reporter feels is appropriate.  This will place the bug in the queue for resolution at an appropriate level for its importance.  Don’t worry overmuch about being precisely correct – if some question exists about the importance of a bug, the development staff will return to the reporter for clarification.

The Borked Scale was invented in 1998, specifically to help in assessing the criticality of a bug in a way that accommodates the widest number of perspectives.  This scale rates two factors of a bug – its severity, and its visibility.  These are measured on a scale of 1 (lowest) to 5 (highest), and are multiplied to provide a Borked factor.

The scale produces a Borked factor of between 1 and 25, with one being the least severe and rarest of occurrence (for instance, an off-color on a banner that is viewed by perhaps one individual user in a thousand), to the most severe and frequent (a crash that causes the user to lose data entered, which happens to practically every individual using the application or site).  Generally Borked scores of 16 or higher are considered must-fix, and quite often are reasons for emergency patches to be issued, while scores of 4 or less may go unrepaired for the entire lifetime of the application.

Notice the outlying scores that are multiples of 5 are color-coded as critical and must-fix:  this is because of the nature of either their severity or visibility being highest.  Usually this means that either every single user is experiencing the problem, or those who do experience it are having the most disastrous outcome in using the system.

Expected and Actual Behavior

This is the description of what the bug actually is – how it behaves differently from what the user expects to happen.  A short description of what the app does (i.e., “Screen scrolls forever” or “Error message and system locks up”) versus what is expected (“Screen scrolls to entry that matches search result and stops with result 40 pixels from screen top” or “System should never lock up”) is to be given.

Screen Shots or Other Media

Taking an image of the screen along the user journey to the bug can be highly valuable – these help the development staff confirm that they are following the right path to arrive at the bug.  Users on a PC can take an image of the screen by using the “Print Screen” button (on Windows, this takes an image of the entire screen, and places it in the Copy buffer), where it will wait to be pasted into a word doc or image-editing software with a CTRL+V key-press.  Notice this means the entire screen, including all background and running applications.  If there is sensitive information there, you may wish to crop the image a bit before including it in your bug report.

Another alternative is using the key combination ALT+SHIFT+Print Screen – this will capture only the active application in the foreground for the copy buffer.

Contact Information

When reporting a bug, always include contact information (most systems for bug resolution include this information automatically).  In order for any questions to be answered, the development team must be able to get in touch with the individual who first reported the bug to get first-hand information regarding the issue.

Proofreading

Proofing your text is very helpful.  Go back once and re-read your report before submitting it, to make sure it is understandable and intelligible.  If possible, read it out loud to yourself and see if it sounds clear to your ear.

Professionalism

Experiencing a bug in a program or site when you need it to work is a frustrating experience – no one will contest that.  However, as was stressed in the beginning of this writeup, the objective of a bug report is to repair the issue.  A bug report is not a place for abuse or venting.  Chances are the individual(s) reading the report are not responsible for the problem in the first place, and an unprofessional report may be discarded or disregarded – it almost certainly will not have the attention paid to it that it deserves.

Summary

A bug entry relies on professional, accurate and direct language describing the nature of the problem experienced, with as much assistance in locating the error as is possible to provide.  Ultimately, its purpose is to direct development staff to the source of the problem, with a goal of providing the fastest path to repair available.

Posted in Uncategorized | 1 Comment

Looking for 2 JavaScript gurus

I’m beginning a gig with a company to do custom development for eCommerce firms.  Potentially, this could mean I start an office here in Prague, but too soon to tell.  As a start, I need to locate two JavaScript gurus (the project we’re getting ready for is going to be using JQuery, possibly Knockout / Backbone, etc.).

The project itself is to provide a clothing dress-model for a site – the architectural side is being handled by people back in San Francisco, and some additional development may be done by others in Ukraine.  I’ll have more info after this week is up.

However – I need to line up the two dev slots to be ready to start asap.  So – if you know someone, or if you yourself are interested, I need to hear about it right away.

Important (not just for my needs, but also for anyone who is a developer):

I need folks good at estimations, and good at getting things across the finish line.  Gold plating is not necessary – we need to meet the requirements of the system, not what we as development pros think “would be great.”  We need to peg what the client wants.

Also, these are going to be full-time positions.  I can’t really give a lot of consideration to someone wanting to hold a regular 9-5 job and then do this stuff in the off-hours.  This needs to be the 9-5.

Other than being a magician with JavaScript, fluency in English is the only other requirement.

So – know someone?  Are you that someone?  Ping me asap and let’s talk – I’ll give you additional information and we can assess what we’re up to.

Reach me at ttheobald at this domain, borkedcode.com

Posted in Uncategorized | Leave a comment

Visiting Prague? Only have a few days?

Here’s the 5-minute guide:

Don’t bother renting a car unless you plan to travel out of town – just get a taxi ride in (about $35-$40 fixed rate to most hotels downtown).  Parking here is a bastard, and there’s plenty of public transport.  Plus, most stuff you’ll want to see in only four days is walkable.

Of course check out the Prague Castle and Old Town Square, and walk across Charles’ Bridge (you can start at either the castle or OT square and walk to the other in an hour or two, that walk will take you over the bridge).  There’s plenty of info on the castle and the bridge available, but when you’re walking around OT Square, remember the word “defenestration” – to be thrown out a window – it was a favorite method of killing rivals or dissidents back in the day, and a lot of people got that treatment there.  The big statue in the square, of the man with some followers – that’s Jan Hus (pronounced “Yan Hoos”), who was basically a Martin Luther type approximately a century before Martin Luther himself.  Was burned at the stake by the Catholic Church for his trouble.  The Astronomical Clock is also of course worth checking out – it’s been around for six hundred years, still runs.  Neat trivia legends:  after building the clock, the king had the architect’s eyes put out so he couldn’t go on to build another for someone else.

As I’m writing this, there seems to be a theme going on here ).  Hmm.

Wenceslas’ Square should also be on your list, though it’s not a square and once you’re there you’ll say “Okay, been there, now what?”  When you go there, make sure to get close enough to the big National Museum at the top that you can see the discolored patches on the columns out front.  Those patches are repairs done in 1968 after the Russian occupying forces shot up a big student protest.  The repairmen defied orders to make the colors match and made sure there would be a reminder there in protest.

Food-wise, Czech traditionals aren’t earth-shaking, but there’s one or two that are pretty good:  “svichkova” (I’m spelling that phonetically, you can just say that and they’ll know) is a loin of beef in a cream sauce, generally served with a few slices of bready dumplings.  (Where I’m from, dumplings are generally small and rounded, made by palming dough – here, they’re big logs of dough that get sliced before serving.)  Also, a “pork knee” sounds not so hot, but is really good if you’re into meat dishes.  Beef tartar here is also good, if you’re feeling adventurous.

Restaurants -

“La FInestra” is expensive, but arguably the best meat and fish selection in town.  Excellent pastas too.  Not fancy dress, but very stylish.  http://www.lafinestra.cz/cs/uvod/

“Jama Pub” has the best burgers in town, bar none – run by an American ex-pat who’s been here for nineteen years.  Good selection of local beers too.  A sister restaurant, Jama Steakhouse, serves up good traditional American steaks and sides.  Both Jamas are pretty low-key and relaxed.  http://www.expats.cz/prague/czech/tex-mex-prague/jama-prague/

“Ambiente” has several restaurants scattered around, all of which get good reviews – I’ve been to the Brazilian one around the corner from St. Nicholas’ cathedral in OT Square – reaaaalllly good.  http://www.ambi.cz/home.php

“Terasa U Zlate studne” – fairly expensive for Prague, but the view can’t be beat.  Stop in here one evening for drinks or dinner.  It’s snug up against the castle, so although you won’t see the castle itself much in the view, you’ll get most/all the rest of Prague.  http://www.terasauzlatestudne.cz

Hergetova cihelna – Czech style restaurant, next door to Franz Kafka museum, really good food, medium-expensive, great view across the river.  It’s part of the “Kampa Group”, of which there are quite a few restaurants in town.  http://www.kampagroup.com/en/index.php  “Cowboys” is also a Kampa restaurant very near the Terasa U Zlate studne – Texas-style steakhouse with an equally good or arguably better view.

Other things to do:

Go to an Absyntherie (there’s one next door to the Ambiente mentioned ^^, and one or two others within walking distance – have an absynthe “Bohemian Style”.  Quite good, very neat atmosphere, and it’s fun to watch the ritual they go through making it.

Vyserhad – this used to be a separate town, kept apart from Prague by a big natural canyon.  There’s a bridge there now, and easy access by metro or car (though parking is next to impossible).  Big cathedral, really interesting graveyard – you can easily lose 3-5 hours here.

If you like beer, have a beer at a local pub – and make it Pilsner Urquell.  You’re 40km from where lager was arguably invented, and this was one of the first.  On draught it tastes pretty dramatically different from the bottles back in the US.  Good place for that is down the street from OT Square, on the corner of Valentinska and Kaprova, at Ristorante Parlimento.  That’s also a good place to take a break if you’ve been walking around a lot.

The Old Jewish Cemetery – pretty neat, tour guides all mention it.  This is where the clay golem legend originated, it’s said an old rabbi (can’t remember his name) made it to protect the community.  In the same few blocks around the Cemetery are some of the same areas Franz Kafka used to live and hang out, so if you stop for coffee along the way, just watch the streets and ponder ).

Just walk around Old Town and appreciate the architecture, browse the antique stores, stop in at a local hole for a beer or a coffee, whatever.  Soak in the fact that you’re walking in a city that’s been around since before there were mechanically-printed books.

Posted in Uncategorized | 1 Comment

Salmon Glaze

My wife loves this, and she just had me print it up for her mom, so I figured I might as well share:

Salmon Glaze (use with .75-1.25 kg salmon filet)

In a 150ml cup, put in:

1 teaspoon of ground or crushed black pepper

1/2 teaspoon  fine-ground salt

2 teaspoons dried garlic powder

2 teaspoons onion powder or onion flakes

1 tablespoon butter

Juice from 1/2 medium lemon (include any pulp if you like)

3 tablespoons honey (more won’t hurt, so let them be overloaded if you like)

fill to the top with water

 

Microwave the mix on high for 30 sec or until it starts to boil.  Remove from microwave and stir to mix thoroughly

On a small baking pan, spread a smooth sheet of tin foil.  Grease with olive oil or butter.

Rinse off the salmon filet, and lay it skin-side down on the greased foil.

Spoon the first 1/3 of the mix onto the salmon, trying to ensure that all the exposed meat receives at least a little of the liquid.  The solids in the mix should also end up on the salmon.

Bake at 180 C for 10-15 minutes, or until the mix that has gathered in the pan has begun to bubble happily.

Spoon another 1/3 of the mix onto the salmon, same as the first time.  Return the salmon to the oven.

Bake another 10-15 minutes, or again until the mix is bubbling well.

Spoon on the last 1/3, return salmon to oven until mix is again bubbling.

As the baking goes on, the mix will reduce and get darker.  Using a spoon, take up the mix from the pan and re-apply to the fish occasionally, until the mix becomes a medium brown color.  At this point the fish should be cooked all the way through and should be ready to serve.

Cut fish into serving sizes and place on plate, taking one final spoonful of the brown mix from the pan and pouring it across the serving.

Posted in Cooking | Leave a comment

Review: “Star Wars: The Old Republic”

Gameplay (entirely subjective – how much fun did I have?  Would I play this again?):  5.0

Visuals (graphics quality, atmosphere, realism):  7.0

Audio (includes sountrack, effects, etc.): 7.0

Storyline (writing, pure and simple):  5.0

Delivery (packaging, contents, what you get): 3.0

Technical (Did it install?  Did I have to answer a zillion questions?  Did it break my machine?  Time from opening box to play?):  7.0

Overall:  6.67

Executive Summary:  save your money for Guild Wars 2.  This is 2012, and these dumb pricks spent half a billion dollars to produce a 2008 WoW clone with Star-Warsiness in it.  Your money can be better spent elsewhere.

Okay, it’s “Star Warsy”, it’s a space MMO, lots of shootey-shootey, and the first time you run a character through its storyline, you’re going to have fun.  That’ll take you about three to six weeks.

It’s pretty at first.  Until you realize that this is 2012 and graphics can achieve MUCH more than what you see.  Then you go looking at the graphics options to crank up the detail because you have a reasonable video card, and you realize this is as good as it’s going to get.  Apparently in beta it had really, really good graphics, but they were removed in order to reduce the size of the game’s footprint from 45GB to 12GB.

That leads me to another point:  packaging.  I bought this as a digital download.  I am also a software developer and manager of same.  I can say with authority that if this had been structured right, it could have been playable at about 4GB downloaded.  Instead it forced me to pull down all 12-13 before I could play.  Probably not a big deal for folks on a 50 megabit connection – but I’m on wireless, 4 megabit.  That download took me all day.  Frustrating.

Back to graphics:  hint to you, Bioware.  You’re running an online game.  Any system capable of running it is capable of running a threaded program.  You might have considered leaving the 45GB footprint as part of your online available files, and downloading them over a throttled connection on a background thread so that the graphics experience would improve gradually as a person played the game.  45GB is shit to me.  I have two terabytes inside my computer, and a swappable ESATA drive that gives me an unlimited supply of more.  Footprint is not a factor.  With a quick question, you could offer someone “Would you like to background-download additional graphics files of size XXGB?  (You have YYGB available on C:\ and ZZGB available on D:\)”

You’ve been at this game thing for over a decade.  That kind of novice thinking says a lot about your management.

Back to the game.

It’s fun at first.  Until you get tired of missions/quests that say “Kill 10 of this” or “Retrieve 25 of that, and you have to kill those to loot them.”  Which will probably happen in about a day.

The mobs change shape, which is a plus.  There are different ones on different worlds (a few get re-used, that’s true).  This is a HUGE step above WoW, where every world had a wild boar (some had spikes!), every world had a big rock elemental, every world had a flying bat, and that sort of bullshit.  But in the end, they’re all mobs.  They are ranged, they are melee, whatever.

As I mentioned before, you’ll enjoy the trip from level 1 to level 50 the first time.  (Further characters will strain your patience, though, because although the story line will be different, you have to visit the same places, see the same crap, and do many of the same grind missions to advance that you did with your first character.)  Once you get to 50 though, the same question will come up that did for me:

“Is that it?”

With the exception of some team events (of which there are about twelve – three of 8- or 16-person strength, and about eight or nine 4-person), sorry, yes.

Have you played an MMO before?  Was it WoW?  Did you leave WoW because you were tired of it and wanted something new?  Don’t do SWTOR.  Why not?  Because this game  IS WoW.  Just in space.  With Jawas.  The roles are the same, many of the classes are similar, and even the powers are blatant thefts from WoW.

Shooting things with a blaster is fun.  Taking a lightsaber to a bad guy (or a good guy) is fun.  Until you realize “Hey, this is some kind of future where I have small arms that should probably pack more power in them than is contained in the electrical grid of a small 20th-century city.  WHY DIDN’T THAT ANIMAL I JUST SHOT/SLICED SIMPLY DIE?” I understand for the sake of game balance and game play they have to make things not so realistic.  But they even break Star Wars styles – in the films, a lightsaber chews through droids like they were made of paper.  Blasters blast things.  In the game, it’s an ablative damage cycle, just like every other game.  Attack X does damage Y, which deducts hit points from Mob Z.  It’s a race to see whether Mob or you gets to zero first.

Is it too much to ask that in 2012, someone will have come up with an MMO that treats things differently?  For instance, degrading performance?  If I’m close to dead, I’m either going to go berzerk in a final blast of effort, or I’m too wounded to put up much of a fight.  How about something reflecting a different equation than just “subtract from hit points”?  Why am I waving a magic lightsaber around and I’m not able to cut through trees, walls, fenceposts, at will?  And how about giving me limited ammunition or charge?  At least force me to change the D-cells in my flashlight or something.

Companion characters – NPCs you pick up along your storyline that come along with you when you don’t have any live people who want to join you.  These are pretty cool, nice ideas, and each one has a slightly different attitude.  They actually help if you (like I do) play at off hours and have a hard time finding people to group with, or if you simply prefer (like I sometimes do) to do things solo.  I don’t actually have anything bad to say about this idea, I think it’s a good one.

Crafting skills – these are ultimately pointless in the small universe you play in, because everyone learns one, everyone skills it up, and then EVERYONE SELLS THE SAME STUFF.  It becomes a commodity-seller’s market.  Since gear never wears out and you never lose any to in-game destruction (as occurs in Eve, for example), once someone buys somthing, it’s bought.  The only real economy here is in consumables like health packs or stims, and there’s no distinction aside from price on who you buy it from.  As well, there’s no localized market – everyone goes to one central hub of eight (yes, you read that right, only eight) terminals to buy and sell.  This is one of the shittier aspects of the game.

PvP:  I’m not much of a PvPer, and have enjoyed a few of the PvP fields I was on, but apparently these are as limited as the PvE endgame content – there are only a very few fields, and it uses a “valor” system of awards that was old when this game first went into development.  Hard-core PvP players I’ve spoken to have little to speak of in favor of this game.

The recent addition of a “Legacy” system (which gives you an excuse to find a relation between all of your various characters), while neat, sends a very clear message:  ”Hey, we here at BioWare/EA can’t really think of anything new content-wise, so here’s this great system we spent a great deal of time on that will help you gear up your twinks.”

It’s also got a major strike against it:  it’s an Electronic Arts company.  BioWare put out some good titles back in the day, but not any more.  EA is where good game companies go to die.  And BioWare appears to be no exception to that rule, if Dragon Age 2 and Star Wars: The Old Republic are any indication.

I could go on, but in short:  it had a lot of promise, and lived up to almost none of it.  Like most other games in the Star Wars franchise, this turned out to be the usual Beauty Contest Winner:  pretty to look at, but once you get to know it, ultimately disappointing.

 

Posted in Uncategorized | Leave a comment

KPIs Part II – As Applied to a Technical Support department

This is Part 2 of a series – Part 1 can be found here

So…part 2 of this series will take a look at the KPIs appropriate for a Technical Support department.  In order to arrive at what elements of performance are both measurable and key to the department, we have to investigate what the role of a Tech Support department is.  I posit that the role of Technical Support is this:

To be the first layer of customer care, responding to and assisting the customer with issues surrounding the use of the product or service offered by the company.

What this means is that when the customer isn’t yet a customer, when they’re just a prospect, the first person(s) they encounter are the salespeople.  It is at that point up to the salesperson to put the company’s best foot forward and present the product in its best light as a solution to the appropriate needs or desires of the customer.  Once they are a customer, if any problem is experienced with the product of a technical nature, TS is the first line of assistance – often the only one.  It is often the only contact the customer has with the company, outside of mass-market advertising.

Knowing this about the role this department plays, let’s go back to the question of what is a KPI – a Key Performance Indicator.

What is Key about this department?  What is the reason it exists?  I will submit that the answer to this is that it helps customers use the company’s products successfully.  As well, it maintains a healthy customer relationship.  Some might argue that its cost is key – but cost is not correlated to success:  cost could be high or low, but does that impact how well it accomplishes its job?  Cost is important, and absolutely should be tracked and measured, but it is not key.

Let’s start with “helping a customer use the company’s products successfully,” and turn that into metrics, something we can measure.  I’m going to work backwards here – successfully sticks out in this sentence as a major point.  That means to me that we come up with a measure of successful resolutions to customer issues.  Either workarounds or fixes, as long as the customer has an answer and considers the issue resolved, that’s a successful resolution.  So immediately there’s a metric:

  • The ratio of successful resolutions against total issue count

I submit that that is Key, it directly reports Performance, and it is a measurable Indicator.

Next I want to tap that other role - “maintains a healthy customer relationship.”  Healthy in business terms generally means that the customer will speak well of the company to others, and will be comfortable with the idea of spending money with the company when the need arises.  This one is harder to measure, and some companies might not do it, but the way to measure this is to ask the customer periodically, or immediately after the resolution of the service episode.  Probably a small fraction of customers will reply to a request for such an evaluation, so keep the questions short and don’t spend a lot of the customer’s time.  It may also be worthwhile to offer some form of incentive to respondents (think small: a $5 coupon at Amazon, or a free song download from iTunes, something unrelated to the company’s products – you’re wanting answers from dissatisfied customers as well as satisfied ones, so they may not give a hoot about discounts on your products).

The question you’re trying to answer is:  would you, the customer, be comfortable doing business with us, the company, if your need should arise again; and would you be comfortable recommending us to a friend or colleague experiencing that same need?  I’ll distill this to a more recognizable term that almost everyone will recognize:

  • The ratio of satisfied customers among total customers experiencing issues

That is a quality that is Key, it directly reports Performance, and it is a measurable Indicator.

I’ll hit some other points here which are also extremely important, and perhaps to some businesses can be considered key (for example, if you run a company or department that handles outsourced tech support calls and you’ve got three hundred staffers manning a phone bank, some of these will definitely be key).

  • Numer of Issues Awaiting Resolution

This is usually referred to as “Calls in Queue”, but I’m trying to future-proof my writing here ).  This represents the absolute number of issues that are in queue awaiting their first contact with a member of your team.  The medium could be anything – telephone, live chat, email, snail-mail, whatever.  This is a measurable indicator telling you what your backlog is.  It will also be used to give you data points of absolute count of issues per product over time (which, if the foundation of the product is relatively sound, you would expect to see go down over time).  As well, the ratio of this number against 1st-tier support staff will indicate whether staffing levels are appropriate for the volume and duration of issues (too many issues indicates understaffing, too few indicates overstaffing).

  • Wait time in Queue

This will differ for each medium, so it’s not easily measured – it won’t be key unless your department is responsible for only one method of input.  It is important though.  It represents the amount of time between the arrival of the customer’s issue and the moment when it comes in contact with a 1st-tier staff member.  Combined with number of issues in queue, it gives you an indicator of whether your staffing levels are appropriate for the volume of issues.  It directly impacts one of the two KPIs I mentioned above, because the amount of time between arrival and contact affects the customer relationship.

  • Issue Duration

This represents how long it takes from either arrival of the issue or its first contact, to the point where the issue is resolved and the customer receives the resolution.  (I specifically say “receives,” rather than “accepts,” because it should be recognized that some customers simply never accept resolution outside of unreasonable circumstances.)  Where the number of issues and the issue wait time are something of a balancing act with staffing and you will have upper and lower boundaries which you know should not be crossed (and those boundaries will shift regularly or be different for each product), this is a one-way metric:  the shorter the better.  A certain level of “acceptable” should be established, which will only rarely be changed (as new techniques of resolution are adopted, for example).  This measurement indicates how capable your team is at providing the service that is their charter.  If things take too long, your staff need training.  There isn’t any such thing as too short – though you should keep an eye on short and verify that resolution is genuine, and not staffers closing down issues in an illegitimate manner.

Other factors that can be measured for valuable data – but which are not necessarily indicative of departmental health – would include:

  • Issue aging – addressing “cold case” issues, ones that have not had successful resolution and remain open a long time
    • If issues derive directly from product defects, a really good team would tie their issues to specific feature- or change-requests in the product.  When the product changes in such a way that these issues are resolved, having a message sent to those customers indicating the fix would be excellent customer service.
    • Product-specific issue counts – these can be given to product management for determination of whether development time should be spent on fixes or features; they can also be used to measure the overall quality of a product.
    • Ratio of escalated issues among total issue count – what % of issues require attention beyond first tier or knowledgebase?  This can be used to indicate whether 1st-tier staff need training, or on an individual level can indicate when a staff member is suitable for promotion.

So that’s my two bits on tech support – I’ll do another article on general IT later (this time I won’t promise in a few days though, since things are a bit distracting right now).

I’d appreciate your thoughts on the matter!

Posted in Business, IT, Work | 1 Comment

Battle-Bands: table-less / mapless D&D 4e

With the oncoming death of the VT (actually, this was spurred because while insanely useful, the VT made mapmaking a HUGE pain in the ass), I was spurred to create a “mapless” battle plotter for D&D 4th Edition.  The rules below are a first stab at such a system.  All powers and ranges, etc. are handled normally, with the abstractions listed below.

Unless specified otherwise, In this description below, any rounding is done with .50 or lower rounding down, .51 or higher rounding up.

 

Bands:

Bands are indeterminate distances, generally considered about 10 spaces across.  When an encounter is defined, the number of bands is decided (and may be undefined).  Generally the two “outermost” bands are considered “in the middle distance” and are in sight of the combat, but are disengagement territory – to move off the bands is to remove oneself from the encounter.

Within a Band:

* The band # you’re in confines you to melee combat with other creatures in that band only

* range 5 powers reach target(s) in your current band and those two adjacent bands at the time the power is used

* range 10 powers reach target(s) in your current band and up to two bands away

* range 20 powers reach target(s) in your current band and up to four bands away

* even with altitude, you’re still in a band – range to altitude creatures is altitude within your band, altitude + 3*(the difference in bands) for those outside your band

Movement:

* to move between bands, use a move action roll your current speed (which might be more than normal if you expended a power, or less if you are slowed or immobilized) or less on a d6 to move one band up or down the scale.

* a non-shift move action or ranged attack in your band will provoke OA from whatever enemy/enemies are currently adjacent

 

Push and Pull:

Push and Pull powers and effects can be used to pull creatures from another band into the caster’s band, or may shove creatures from the caster’s band into an adjacent band, just as if the caster were using a move action – the caster rolls a d6, and if the total is equal to or less than the total length of the push/pull, the desired shift in bands occurs (if a pull, the caster may pull the creature affected adjacent if (s)he desires it).

 

Adjacent:

Without shifting as given above, you are considered adjacent to 20% or at minimum 1 enemies in your band (random) at any given time, rounded.

You may expend 1 move action to be adjacent to a specific creature in your band.  This does not provoke OA.

You may expend 1 move action to become adjacent to 10-40% (d4 * 10, round down) of remaining enemies in the band.

You are considered to always be adjacent to 20% (round down, minimum 1) allies in the same band without expending any movement points.

You may expend a move action as a shift to remove yourself from adjacency to a number of creatures equal to or less than your shifting speed.

 

Burst and Blast Powers:

A close-burst power will always catch every creature adjacent to you as part of the affected group.

The affected group of a close-burst-2 will add 10-20% of creatures in the band (random, round down) in addition to those adjacent to you.

A close-burst-3 will add 30-60% of creatures in the band (random, round down) in addition to those adjacent to you.

A close-burst-4 or higher will add 70-90% of creatures in the band (random, round down) in addition to those adjacent to you.

A burst attack that is not “close-burst” may be designated to be centered on (a) a creature, or (b) a space.  If a creature, treat the burst using the same rules as the close-burst above, centering on the creature in question.  If a space, treat the space as if it were a creature using adjacency rules above and apply the same rules as close-burst powers above.

A blast attack will catch 10-30% (d6/2 * 10) of all adjacent creatures (caster’s choice of which ones, rounded), and will catch additional creatures as given above under close-burst attacks – but may not target any additional adjacent creatures.  Adjacent creatures not eligible for targeting are counted among those that do not fall into the affected group.  Allies adjacent to targets (but who are not already among the randomly-determined affected) that fall into the blast may be included or excluded from the affected group at the caster’s choice.

 

Zones:

Zone powers are treated the same as burst powers when they are laid down.  Any creature in a zone may roll to escape the zone if it chooses to.  The required roll must be greater than the zone size (as defined by its size in the power with any inherent modifications due to feats, equipment, what-have-you) minus the creature’s current speed on a d6.  For example:

Joe throws a burst-3 zone over a speed-6 hobgoblin.  Size 3, minus speed 6, results in a total of -3.  If the hobgoblin chooses to escape the zone by spending a move action, it can do so automatically. 

However, if Joe’s zone includes a Slow effect, that reduces the hobgoblin’s speed to 2, which means it has to roll higher than a 1 in order to escape.  If the hobgoblin were somehow immobilized, it would have no move action and could therefore not escape this turn. 

The DM may insert conditions that make the roll more difficult as (s)he deems appropriate.

 

Moving Zones:

Many zones include a movement rider if the caster spends a move action or commits some other activity.  In those cases where the caster may move a zone, the caster may choose to try to add creatures to the zone’s area of effect (in which case, expending action to have the zone engulf creatures), or may attempt to move the zone into an adjacent band.

Engulfment:  the caster may attempt to add a number of creatures to the zone’s effect no greater than the zone’s size plus 1 (add one creature for a burst-1 zone, two for burst-2, etc.).  The caster rolls a dX, where X is the number of spaces the zone is able to move.  The resulting roll determines the maximum number of creatures that may be added (not to exceed the limit established by the zone’s size).  Any creatures already in the zone remain under its effect.  The creature(s) so affected are determined randomly, unless the caster chooses IN ADVANCE to reduce the roll by 1, in which case allies of the caster are excluded.

Changing Bands:  the caster may attempt to shift the zone into another band by rolling the total movement of the zone this turn or less on a d6.  If successful, the caster may change the zone’s band and may then attempt an Engulfment (as above) on creatures in this band.

 

So as a DM you’d allocate forces, describe the terrain, and maybe decide how many bands wide it would be – few for tight spaces, lots for wide-opens.  I figure average would be about seven.  If players are calling for cover or using terrain in their description of how they want to act, the DM imposes difficult terrain penalties etc. per judgment call.  A sample band set might look like this:

 

Band 1:  cornfield, 4′ high, not difficult terrain but possible cover (full cover for creatures under 4′)

Band 2:  grassy lawn, open area

Band 3:  burnt down farmhouse, difficult terrain, some cover available

Band 4:  grassy lawn, some burnt bodies, open area

Band 5:  burnt down barn, difficult terrain, no cover available

Band 6:  partially-burnt cornfield, cover available but only if asked for

Band 7:  dirt wagon-road, open

 

Players start in band 7, what do you do?

Much of the combat would then be descriptive, range combat could still be shielded by gaurdians, because a double move would bring you two bands to go face-to-face as needed, etc.  I’m working on some rules for pulls/pushes in case you want to keep the target in your band, etc., and how to wrangle large squads of adjacents (for when you want to throw around really big #s of minions).

 

Thoughts?

Posted in D&D, Games | Leave a comment

Problems in Retail

I was asked recently (during an interview) what my view of the retail world was – as an open-ended question and not focused on the aspects of how to use technology to provide a solution, I stumbled over it.  It was playing at the back of my mind, and I realized why I stumbled – the question wasn’t centered on the solution, it was a general view of what’s happening in the retail space.

Some who know me may remember that I tend to view things from a perspective of biology (blame it on my university degree, but regardless of source, it’s still true).  The current consumer climate is very much an ecology – but where a biological ecology is driven by energy (in the form of solar, captured by plants and exploited in a long chain of herbivore-carnivore relationships), our economy is an ecology driven by money (generated by work applied to raw materials, modified by value instilled through psychology).  I’m going to refer to the driver in this context as “fuel” – whether it’s energy or money, it is the fuel on which the respective ecology runs.

Any ecology is driven by the flow of its fuel among the constituent living creatures in it.  From sun to plant, plant to animal (or for you nit-pickers out there, fungi or other plants), and them among animals and even in the recycling of waste materials, fuel in a system drives its movement.

In the case of the retail environment, the flow of fuel has been dramatically cut back at the base of the food chain – the consumer.  Enormous and sustained job losses, cutbacks on welfare programs, and the outright theft of retirement funds by institutionalized fraud have stopped a large amount of the flow of fuel into the system.  This has produced, not surprisingly, a drought that is being felt up the food chain – consumers aren’t buying with the same cash they used to.

As a result, retailers are finding their revenues shrinking, in some cases with alarming rapidity.

Unfortunately, those same retailers can’t change anything in the system (unless they want to spend some money buying a few politicians with the idea of introducing more money into the system instead of shielding CEO wages for a change).  So they have to do what animals do in such a situation – adapt, and do better what they do than the others in the same space.

In the case of a retailer, that means communicating the value of the products they offer more effectively.  In the end, that’s really all a retailer does:  communicate the nature of and deliver their products.  Of course they also sell those products, and provide showcases for them, but the value they really add to the product is their ability to communicate and deliver to the customer.  Their manufacturers already sell, and if pressed will enter the distribution business – there are more than a few manufacturers who sell direct.  It is in the communication arena where retailers provide value.

Specifically, the communication needed is to give the consumer of the product the knowledge (or the long-term perception of knowledge) that he or she is making the best-informed choice for the expenditure of his or her money, and to do so in a way that the consumer associates the knowledge provider with a sense of trust.

To delve a little into the psychology of selling, a customer can have all the perfect intellectual knowledge and confidence in the world, but when dragging out the wallet, the brain kicks into something akin to the “fight-or-flight” emotional state.  All that confidence gets shaken when money’s on the table.

Having built up a trusting relationship, a seller can take the edge off that fear and provide a more comfortable/secure environment for the consumer.   That translates into a higher number of customers being comfortable enough to lay down their cash.  (I am not stating that this relationship is justified in this context – just that it exists.  I always advocate honesty in such dealings, because while establishing a false trust might score you a few wins up front, long term it’s a failing proposition.)

So what does this mean from a pragmatic standpoint to the retailer?  It means retailers have to step up to the bat and really hammer home their product knowledge, and their ability to interview the customer and get a solid grasp of their needs.  Mating the absolute best product to the customer’s need, and being able to walk the customer through that process so they participate in the decision is really the key to the whole thing.  In a lot of ways, our product at PrismaStar was designed to facilitate this process, but unfortunately it was still not ready to be sold to a large audience.  Had I had another eighteen months of hard dev work with a good team of six to ten, I think we’d have been mass-market capable, but that’s just not how things went.

So on a technology basis, what does this mean?  A couple things:

  • Analytics:  retailers need good, reliable metrics to evaluate their results (A/B testing, customer reviews and interviews, etc.).  If they don’t have an analyst on staff already, they need to contract one independently or from a third party.  Without this, any changes made to their methods of selling will be little more than shooting in the dark and hoping to hit something.  Analytics also provides the ability to have predictable stock on hand, pricing needed to wipe out existing stock, and increase turnover counts.
  • Information:  absolutely top-notch, high-quality and pertinent product data in a language that their customer will understand and relate to, provided in several different formats (video, text, blog postings, customer reviews, images) to catch the various types of cognitive readers.  This information has to be VISIBLE and easily accessed – which includes making it easy to find info on the product the customer might come looking for.  At MidwayUSA, that company took pride in often knowing the details of the products better than the manufacturers of the products did.  That’s the kind of product knowledge needed.
  • Tools:  good selling tools.  This means the website, product search, the shopping cart, the payment system, delivery to the customer, they all have to be as free-flowing and seamless as possible.  Throwing bumps and slowdowns in the process (are you listening, MasterCard?) causes loss of sales.
  • Stores:  retailers are going to have to get used to the idea that having a physical store  might not be the best thing any more.  I’m not saying shut everything down, but take a long look at what they have in place.  Don’t be afraid to keep marginal stores open – breakeven sites have room to improve, and can provide intangible benefits such as name recognition and hands-on opportunities for your customers.  But failing stores, ones that consistently lose money, are obviously going to have to change.  That means coming up with new ways to cover their markets – maybe there’s a way to provide that customer segment with a kiosk instead of a full-on shop?  Maybe a store-on-wheels?
  • Shipping – evaluate how shipping is done.  Can the product successfully be drop-shipped to the consumer?  Most retailers have to provide two legs in the product’s journey – one from manufacturer to warehouse, one from warehouse to the storefront or the consumer.  Can that be reduced to just one – manufacturer to consumer?

And lastly, but probably most importantly:

  • An attitude assertion must be made to be helpful to the customer, no matter whether that customer ends up buying from you or not.  Do everything you can to help them find what they really need – even if it’s something you don’t carry and you end up having to direct them to someone else. 

Without this attitude, the retailer remains in the stance of viewing their customers as little more than a crop to be harvested.  Although such a view is useful and is very tempting in the abstract IT-dominated world of an eTailer, it negates the benefits gained in subtle ways.  The company culture must adopt a helpful attitude from top to bottom – or the depersonalized attitude will leak out, and the customers can smell that coming a mile away.

Okay, that’s enough of that for now.  I hope this helps someone out there – and even if it doesn’t, it was fun to write anyway ).

Posted in Biology, Business, Economics, Evolution, Work | Leave a comment