Post

What’s Your User Story, Morning Glory?

In process on October 19, 2009 by libbymo

What is a user story?

Stemming from agile software development, user stories are used by the customer to concisely convey what they need in their site or software. In only a sentence or two in the language of the everyday user, a user story describes a solution requirement. While they can be a by product of in-depth requirements gathering process, their use can replace extensive documents on smaller projects.

No really, what is a user story exactly?

While there has been some discussion of how user stories should be structured, we here at Pop Art derived a pattern similar to this one that states:

To <achieve some value>
As a <role>
I want <some feature>.

In this version the value of the story is placed first, and yields a bit more importance than the role or the feature. The object of a user story is to state in simple terms specifically what the product needs to provide, without branching out into how it should be designed, what the user interface should look like or in what language it should be developed.

Recently we wanted to better streamline our QA process here at Pop Art and create a piece of software that would better help us list and track the completion of all the needed tasks to assure we deliver a high quality solution. Some of the user stories written for the development were:

  1. To avoid overlooking common but important tasks on large projects, as an employee, I want a centralized checklist of our collective knowledge.
  2. To identify the amount of remaining checklist items for a given project, as an employee, I want a view of the entire project checklist display the status of each checklist item.
  3. To improve the value of the checklist items over time, as an employee, I want to insert, update or delete checklist items at any time.

These user stories don’t describe how the user clicks here, or on which area of the site they do what. From this document it is actually difficult to tell that the solution is to be a piece of software. The focus is placed on the value needed and the business tasks that need to be achieved.

How are user stories used?

When I worked off-site on a large software project that spanned several months, user stories were written on small 3×5 cards. I suspect the process of arriving at these small nuggets of information was tedious. It took several stakeholders, pouring over gathered requirements from all of the various areas this product would touch – business/marketing, legal – and the various types of end users.

From large amounts of data, they were able to work with a developer/project manager to determine which user stories would be worked in which order throughout this large agile project. Once priority and time-line was established, each user story was then broken out into a series of tasks for various areas, like design, programming, and front-end development. Each of these tasks would span a short two-week period or a “sprint”. This allowed each of us to focus on what we were to accomplish without losing the larger focus of our overall goal. At the end of two weeks, the stakeholders would then test and view pieces of the software assuring that the requirements for that particular story had been met.

What can user stories do for me?

Be it on large or small projects, user stories are used to slice requirements into manageable sections and pieces that can be digested and completed in a quick manner. They are often coupled with a way for the customer to test and validate that the user story requirement has been completed successfully. The key behind this kind of development process is a strong interaction between the stakeholders and the project team. In this way a project can be jump-started and the conversation begun around what the perceived function and value a system or site should embody. Often user stories go through quite a few iterations which communicates a lot of information in a short time, making development time and cost estimation more effective.

Post

Eliminating Development Traffic from Your Google Analytics Stats

In Uncategorized, code on September 17, 2009 by libbymo

Recently we were asked by a client if traffic from their test site was being posted to a Google Analytics (GA) account. It turns out it is. Not only that, so is any version of the site hosted on their development and test servers, and any developer’s local site.

We tested this by placing several pages on various websites and subdomains. For example pages were placed on www.popart.com, test.popart.com, and blogs.popart.com as well as www.clientsite.com and test.clientsite.com all with the same GATC.

Data was collected under that profile for each of these pages in Google Analytics regardless of domain or subdomain.

How Can We Eliminate Development Traffic From Our Statistics?

Removing the GATC from all but the live site was one option, but having two sets of files would require us to remember to insert this code when pages go live raising the concern of releasing a page without a GATC and losing data.

Also this solution would not address the possibility that someone could accidentally or intentionally copy our code to their site, meaning we’d be collecting stats from their site as well.

Instead by using filters we can target and collect only the site traffic we’re interested in. Moving forward when creating a GA website profile, in addition, we will create a second GA web profile to which we can apply our filters. This allows one profile to be untouched with all of our master data, and one that only collects data from our target domains.

Creating a Second Web Profile

  1. Select Create New Website Profile, and then choose Add a Profile for an existing domain.
  2. Select the Domain from the drop down for http://www.mysite.com and give a profile name that suggests it’s the filtered version of your data.
  3. Select continue.
By creating a filter we only collect data from our specific domains.

By creating a filter we only collect data from our specific domains.

This sets up a second profile that uses your original GATC – not a new one. So any data collected moving forward will collect in BOTH of your profiles.

If you are doing this to a site profile that already contains data – be aware that the second profile does NOT pull the historical data. While it is a profile that uses the same GATC it is not a duplicate. Any previous filters, reports or goals are NOT included in this second profile – you’d need to add those manually.

The filter works only on stats collected moving forward. So the goal for this second profile is to only include web traffic from http://www.mysite.com, and http://mysite.com. What we want to exclude is everything else. Excluding the chaff from development environments and different domains was easy – subdomains prove a bit trickier. But we found a filter that seems to work for these purposes.

Adding a Filter

  1. From the home view that allows you to see your Web profiles listed, you’ll want to select Edit.
  2. Scroll down to Filters Applied to Profile and click Add Filter. Give the filter an intuitive name such as “Only www.mysite.com traffic” or some such. Under filter type select Custom Filter, Include.
  3. Under Filter Field select Hostname.
  4. Under Filter Pattern we’ve used the following reg ex: ^mysite\.com|www\.mysite\.com The caret tells analytics to ignore subdomains, then we add an ‘or’ that adds back www.mysite.com.
  5. Now note if there are any other subdomains that you WANT to include in this profile such as blogs.mysite.com, you would want to add that at the end after a | (pipe). So any additional subdomains you WANT to track should make the pattern look like this.^mysite\.com|www\.mysite\.com|nameosubdomain\.mysite\.com“What kind of special characters can I use?” gives a more in depth explanation of the characters used and other filter options.
  6. Case Sensitive – No.
  7. Save Changes.
By creating a second web profile we have a safe place to apply filters that won't effect your data.

By creating a second web profile we have a safe place to apply filters that won't effect your data.

It takes at least 24 hours for this profile to show data, however it begins collecting data immediately. Depending on the speed of setting up the filter, you might get some traffic from other domains. But the majority should be just from the domains you specified.

This is Great But What About My Historical Data?

GA does allow you to view your data by Hostname and it also allows you to create custom reporting. While this may not solve all of your problems it can give you insight to specific questions. In the scenario presented by our client they had numbers on one of their goal pages that was higher than the number of completed e-commerce transactions. By doing the following they should be able to view the page and exclude numbers from different domains.

Viewing by Hostname

  1. In your original profile that contains all data (including historical data) navigate the following in the sidebar:
    Visitors/Network Properties/Hostnames/
  2. In this case we’re interested in the numbers of unique visitors to our goal page from both www.mysite.com and mysite.com.
  3. Select www.mysite.com to view the details.
  4. After clicking the domain, use the dropdown next to Dimension to select Landing Page, locate the name of the goal page under the listed pages. You can narrow the time frame to only select the days you’re interested in.
  5. You’d need to do this again under mysite.com, and then add the two numbers to get an overall view of the goal page data.

Another way to do this that might be helpful should you need to refer to this data again in the future is to create a report.

Creating a Custom Report

  1. Click Custom Reporting in the sidebar, then in the upper right of that page, select Create new Custom report.
  2. The one I created I titled “Pageviews by hostname, page and day”. Give it a title that means something to you.
  3. Then under Metrics, select Content – I chose Unique Pageviews but select the metric you are interested in tracking. Drag it over to the blue box.
  4. Under Dimensions you’ll choose three:
    1. Systems/Hostname – drag over to first subdimension box,
      Content/Page – drag to second subdimensions box
      Visitors/Day – drag to third

    I’m not sure the importance of order here, I think it allows you the drilldown so if it makes more sense for you to pick the day before the page then you’d probably want to switch the order on this.

  5. Save the report and then you should be able to click on this under your Custom Reporting anytime in the future. You will still need to add the two numbers together from your two domains, but this shows you a day by day break out as you click to drill down into the numbers.
Custom reporting doesn't permanently affect your data.

Custom reporting doesn't permanently affect your data.

This may be useful to you in case you don’t want to add the filter, or you find this is a better way to view historical data for comparison. You could essentially do both – since the filtered profile is separate from this one.

While I looked into a good portion of this on my own, the idea of creating a second website profile and applying a filter that just pulls traffic from your site was only one example from a chapter called “Best Practices Configuration Guide” from Advanced Web Metrics with Google Analytics by Brian Clifton. I would highly recommend this book to anyone who wants a more thorough understanding of what GA can offer.

Note:
This was originally posted on my work blog, and I’m re-posting it here for archival purposes.

Post

Down with the sickness.

In Uncategorized, pregnancy on August 29, 2009 by libbymo

An old post – I wanted to write even prior to making the bun in the oven news public.

It’s been so long – once again, since I’ve posted. I’ve spent the last 3 months with one singular focus: trying not to puke. There’s a part of me that wonders if this isn’t some evolutionary attention getter. Voice on high: You will focus on nothing else other than you, your digestion and the well being of your child. Knitting? God who cares. In depth mind processes aka thought? Who has the energy.

I did stumble upon something that I wish I would have tried a long time ago: Sea sickness bands. I’m not sure what took me so long. But it was the late night session of being face down in my toilet after a rather greasy noodle meal at lunch and the 5th episode of Anthony Bourdain’s No Reservations, that was the clincher. I would try anything to avoid feeling this way, even if it was to resort to a harmless yet not proven accupressure method. (And to avoid watching cooking shows when all I can manage to put down is a bowl of Cream-o-wheat.).)

I’m happy to say that I’ve felt so much better this week (Update: this wasn’t to last but the respite was nice). With the bands, and some other modifications: I essentially ate nothing of color for the first few days after the puke incident and proceeded to eat nothing warm (and thus smelly) – cold food only: fruit, and my current mainstay – sushi. I’ve eaten non-raw sushi for probably every other meal this week. I must confess I’m getting a bit sick of it. But it’s held me together. It digests easily, has vegetables, and occasionally protein.

It’s been such an insular focus, and oddly I feel like the most uninteresting person on the planet given all my thought and energy is going into the not puking and reading all that I can on birthing and preparing for giving birth. Yes, I’m jumping the gun a bit, but I’m trying to figure out where and how I want to have this kid. It’s been relatively all consuming. I have managed to squeeze some news reading in, riding my bike to work a bit more, and am planning to go to an art show with a friend tonight so the horizons are widening. But it’s been a strange state: The one thing that is consuming my attention and focus and every bodily function is something that is the biggest secret. Because I refuse to make it all public, especially at work, until I’m out of the miscarriage woods.

Meanwhile I feel like I do my weird rituals to keep from puking: like eating saltines like they’re going out of style, drinking lemonade like it’s the nectar of the gods, and not removing my sea-bands except for showers and sleep. I have a fear that I’ll wake up one morning to find my hands pinched off – two bloody stubs with a form of sophisticated rubber band wrapped around each.

Which by the way brings up the issue of rituals. I never was superstitious until I mountain biked. I think it was the lack of confidence in my own abilities. I couldn’t depend on myself to win a race, but if I did everything just so, and I had my lucky string with me – like the first time I won a race – well, then, I could win another one. And so it went. Same with the nausea and “morning sickness” (There’s a special hell awaiting the asshole who named this ‘morning’ sickness – since it strikes most folks, including myself, all day long.) Since I’ve put on my sea-bands god help the person who tries to wrench them from my body to wash them. I’m pretty sure I’m going to have to ask my Felipe to wash them while I sleep.

Post

Going Public

In Uncategorized on August 29, 2009 by libbymo

So I told the folks at work yesterday that I’m having a kid. I had been guarding my secret as best as someone can who snarfs down saltines all day, is really finicky when it comes to choosing lunch spots, and who seems to have lots of flu-like symptoms. Again. It went well. I’m not sure why I was intimidated. I think if anything, I’m relatively private about some things (I know, I can hear folks who know me chortling from here. But seriously!) and telling someone something like that just felt strange to say the least. But I actually discussed so many things with them that it set me at ease.

That said it’s made it all so real. I went from zero-to-pregnant in one day. I had been waiting to pass the 12 week mark just to be on the safe side. And now all of the sudden it feels like that day I peed on the stick all over again.

Very exciting. I have more to write, but given I’ve been up since 4 am, I think I’ll wait until I’m coherent. I do have one post I wrote prior to “going public” that I’ll post. But hoping I’ll do more updating here, because it seems like I’m always astonished during this experience with the changes. From simple things like my insanely intense dreams to seeing an ultrasound for the first time. It’s already been a crazy ride.

Post

Homeless man’s passive aggressive tactics rival my mothers.

In Uncategorized on December 11, 2008 by libbymo

So the other day I went to one of the carts downtown. It’s one of my favorites and I was one of the reasons they started using a number system – they accidentally gave my food to someone else. But I digress. Upon receiving my order they paid me my change in all ones. As he was counting it back it seemed like he must have given me an extra dollar, so as soon as I moved from the window, I went to a table to recount the change. As I was just beginning this process, a gentleman approached and asked me for money. I’ve been known lately to hand over duckets on the street. After living in Berkeley for several years I got really jaded, and stopped giving to folks on the street completely. But several months ago, I gave some money to the guy who walks around in a blanket with the matted hair. That guy has a special place in my heart. And also stupidly gave some money to a young girl who claimed to “be stuck in Portland after coming here from Seattle for an internet date” that went awry and now she needed a hotel room. Well, I could identify with that. How many of us haven’t been stuck in another state due to a crappy internet date. Oh. Just me?

Call me naive, but I was really hoping her story was true. But then several days ago I saw her again, and she asked me again for money. Which doesn’t necessarily mean she was lying it could just be really hard to get money to get back to Seattle. I’m just sayin’. So all that said. I’ve become jaded again. And when Mr. Man accosted me, I was a little annoyed. I didn’t show it, but I did say, holding a fistful of dollar bills, “No, Sorry.” He responded, to the air behind me, “I’m just trying to buy some lunch. And I’m just short a dollar.” Hoping I would sense the universal irony in my evilness. I went back to counting.

After lunch I went with spaceninja for a walk to the RiteAid just up the street. On our way back, Mr. Man stops us and speaks to spaceninja, “So how about this. If you needed money, and you asked me I would give it to you.”
Spaceninja: “I’m sorry, I’m not following.”
Mr. Man: Repeats himself, a little more agitated.
I stand there quietly. I knew where this passive aggressive diatribe was going, and I could speak up, but figured it would just exacerbate the situation if I spoke to the earlier thing. So I sat tight.
Spaceninja: “Sir, are you mad at me?”
Mr. Man: “Uh no.” Realizing somewhat that the plan of attack is backfiring as he’s approached the most well-adjusted person in Portland. “No I was just saying if you ever needed money…”
Spaceninja: “Oh. Ok. Sorry.”

We walk away. And I explain to spaceninja my earlier karmic infractions that had led to his trouble.

I felt bad for like a second. I mean I would never enjoy my friends having to deal with my choices with the homeless folks, but seriously, dude – I’m just not giving money on the street today, ok? I don’t explain myself to you, I don’t need you to explain yourself to me.

But later I realized it was a classic example of passive aggressiveness! I had never experienced that on the street before. With my mother? Yes. Seen it taken to an artform in the hands of the Lebanese mother of a guy I dated once. Yes. A homeless guy? Never. Until today. Kudos, Mr. Man.