CityBits Launch Postmortem
The CityBits launch went off with more success than I could have hoped (more on that in the CityBits Newsletter, if you're interested).
- With Google Reader being decommissioned at any moment and having a very tech savvy audience, I was concerned that in the transition a number of chances for folks to share or read about CityBits would be lost.
- My own availability would be low, so it was important to me that as much as possible be automated.
Tools & Process
I sent and measured two emails, the first at 7:30 am and the second at 4:30pm.
Each email identical was identical, except for the line before the signature ("may your morning latte be delicious" vs. "may your evening cocktail be delicious"). I choose MailChimp as my email service, based on a good API, strong analytics, and the ability to schedule emails.
I knew with a targeted list, the numbers would be higher (industry average is in the realm of 20% for opens and 2.5% for clicks) I hoped to double if not triple those numbers.
Morning email, 7:30am
Had an open rate of 64.6% and click rate of 30.5% (for those of you playing along at home MailChimp calculates the click percentage against total emails sent).
Evening email, 4:30pm
Had an open rate of 73.7% and click rate of 63.2%.
You can find a copy of the email we sent here.
One event that surprised me, was sharing (email forwards, Twitter, Facebook) was much higher for the morning email, despite the evening email having much stronger opens and clicks. Possible explanations:
- Total fluke - I was tempted to rule it out this way, but after looking at the lists, the first had many more people I did not expect to engage. In short the second list had a greater number of heavy social media users.
- My going theory - People start the day in creation mode, developers create code, writers create copy, designers create art. At the end of the day, people are winding down, tasks including email is being dealt with as efficiently as possible. Does that subtle shift in modes carry over to how someone processes email?
Sharing principally took place on Facebook and by email forwards. Which I am happy with, all my experience trends toward a Facebook share being more personal, while Twitter sharing acting as more of a broadcast.
At 7:30 when the first email went out, our two month old Eli and I were asleep in the bed, after having spent the early hours walking around the apartment. When the 8am tweets hit, we were just waking up. During the 4:30 email we were trying to do some good burping.
My advice is automate whatever you can - MailChimp and TweetDeck are great for scheduling emails and tweets. Most launches won't include a baby, but they will have a million other things going on.
I used Panic's Status Board, to track happenings on Twitter. I thought a status board would be a bit frivolous, but it allowed me to be intentional about checking news feeds and I could do it just walking by my iPad. Next time, I'll add in open info from MailChimp's API.
July 03 2013
- My biggest regret was not having a larger email list. Tools like MailChimp make adding a static signup form to a website super simple. If you don't have a way for people to get notified when you launch, do it now.
- Automate, automate, automate. If you can put it on a timer, do it. By not having to worry about the mechanics, it lets you do be engaged to what is happening organically.
- Spend some time on your emails. Simple, direct asks and good copy seemed to work really well for CityBits.
CityBits Launch Ho! (& FAQ)
Who? I've been working on a small side project.
What? CityBits — a collection of 1000-word (or less) travel guides for your iPhone.
When? Now. You're already late to the party.
Where? The iTunes App Store, purveyor of many fine products.
Why? In a world that is increasingly homogenous, CityBits is a guide to what makes a place unique.
July 02 2013
Resources for App Store Pricing
If you're looking to price an app in the App Store, this is the stuff by Michael Jurewitz. You'll wonder why it exists free of charge.
July 01 2013
rbenv + Ruby 2.0, OS X
Is rbenv giving you an OpenSSL error trying to install Ruby 2.0.0 on OS X?
As a big fan of minimal invasiveness, I pieced together the simplest solution I could find:
brew install openssl
export CONFIGURE_OPTS="--with-openssl-dir=`brew --prefix openssl`"
rbenv install 2.0.0-p195
See: ruby-lang.org to make sure you're installing the current patch level.
A big thanks to this post [dlackty.org] for helping me avoid a mess of dated information and lib installs.
June 16 2013
Sidekiq ProTip #1
Is Sidekig giving you:
TypeError: can't dump anonymous class Class? aka the most helpful error message in the world?
It takes some digging, but here is the deal: Sidekiq's .delay method only works with Ruby 1.9.3. So if you're doing
October 30 2012
@user.delay.some_long_running_method, it'll fail unless you're on 1.9.3. See: Sidekiq Issue #84.
hstore You Just Might Enjoy Shopping There
At work, I've been lucky enough to be developing an entirely event driven application (more on that in the future). I knew it would be an interesting challenge, but I didn't realize how much I'd enjoy it.
Being a green field app, we're using a number of technologies and services that have me excited. While it took me a bit of diliberation to decide on, the piece that has really surpised me and expanded my architectural thinking is PostgreSQL's hstore. In hindsight the fact that hstore is allowing us the flexibility to prototype quickly, is less surprising than the fundamental shift in how I've started thinking about storing an retrieving data.
If you're interested in checking out hstore, I recommend the following stops:
The one bit that took me some time to find was about getting hstore running in my Rails test environment. Rails' default schema load doesn't enable the Postgres extension (as happens in
rake db:test:prepare). To have hstore enabled you'll need to uncomment or add the following line in
config.active_record.schema_format = :sql
This will change your schema dumps from Ruby to SQL. If you're unsure about the implications of this change, you can learn more in this Rails Guide.
October 27 2012
New Haven Ho!
The cat is officially out of the bag. After a healthy amount of collective anguishing, Candice has accepted the position of Associate Chaplain at Yale University. We're dreading leaving Durham, excited to explore New Haven, and thrilled that Yale and Duke share similar color schemes.
To this end, if you know of great places to live in New Haven, interesting places to work, or people who enjoy eating pizza as much as I do – please let me know.
May 16 2012
After reading Mark O'Connor's post about swapping his MacBook for an iPad+Linode, I decided to give the setup a whirl. For reasons that probably defy logic (what can I say, I'm a slave to fashion), I substituted Panic's Prompt for the recommended iSSH and have yet to feel any pain from the decision.
Mark covers a lot of the setup for a Linode server in his follow-up post. For now, I am just SSHing to my home machine via no-ip.com, and the only real fiddly bit that I needed to add was the following in my vimrc:
The key thing here is to force solarized to use the
let g:solarized_termcolors=256 even if vim is running in a terminal. Panic's Prompt by default will register itself as a 16 color terminal, to get 256 colors working (and the beautiful Solarized color scheme), I added
export TERM=xterm-256color to the login script which can be configured in Prompt's individual machine settings.
We'll see how the setup works out, for now it is nice to just be traveling around with only an iPad.
December 07 2011
IDEO HCD Toolkit: Deliver
While reading the HCD Toolkit, I've noticed that each section is roughly the same size. Don't get me wrong, each section has been a small wonder-world of information, but I couldn't help wonder if the Deliver section had been hardest of all to trim down. It covers a lot of ground and not a word was wasted. To summarize it would be to re-write it, but the pieces of the section which really resonated with me were:
- Mini-Pilots & Pilots - These seek to allow understand and refine the solution, its context, and support system as well as possible. I especially liked the idea of mini-pilots that focused on a subset of the solution and/or allowed participants a deeper understanding by taking them out of their traditional roles.
- On-going Learning & Iteration - This is something that I think is so often missed, or haphazardly bolted on at the end of a implementation. This involves revisiting stories from the Hear phase as well as collecting new ones while continually refining the solution.
Page 97 of the IDEO Toolkit
- Measuring Impact - The toolkit does a great job of diving in to indicators like leading and dynamic changes (both positive and negative), assessing outcomes, and strategies for measuring the impact of a solution in a holistic fashion.
As you can tell, I am a big fan of the upfront work and the continual learning presented. I think companies all too often equate a customer's final product with their final product. A great product doesn't end with ending up in the customer's hands. Putting a product in a customers hands is an opportunity to learn more about the product, evolve the product (see the product lines here), and recognize the new opportunities a strong product creates.
November 17 2011
I'm scared. You're scared. We're all scared.
Listen to the whole thing, but know that (I felt) it was around the 15 minute mark Merlin hit stride. Given at Webstock 11.
November 01 2011
IDEO HCD Toolkit: Create
While I can't do the toolkit justice in my notes, I fount the Create section to be a real gem. The goal of the Create phase is to synthesize the research of the Hear phase, identify opportunities, brainstorm solutions, and create prototypes with the purpose of eliciting feedback. Through the create process, don't focus on feasibility and viability, instead focus on desirability.
October 31 2011
- Story Sharing - These are stories collected from in the Research phase. When sharing, remember to be specific and be descriptive (use physical senses, cover who, what, why, when, where, and how). No judgement. Create post-it notes of key pieces of information.
- Pattern Identification - Select the most surprising and provocative post-it notes, grouping them into related thoughts. Create a succinct "insight statements" for each post-it group which summarizes the take-away.
- Find Themes - Sort the insight statement cards in to themes and evaluating each to make sure they are on the same level. Some themes may need to be generalized, while others may need to broken apart.
- Create a Visual Framework - A framework is a visual representation of a system, often a framework will take one of the following structures:
Page 70 of the IDEO Toolkit
- Create opportunity areas - Ask the question "How might we..." (HMW) - Opportunity areas are not solutions, but questions to spur idea generation and the brainstorm of multiple solutions.
- Brainstorm! - Brainstorming makes us think expansively and without constraints, so there are no bad ideas and wild ideas are encouraged. Build on ideas using AND rather than BUT. Go for quantity, 15-30 minutes per HMW. The practice of generating impractical solutions often sparks ideas that are relevant and reasonable. The toolkit provides a rough rule of thumb, that out of 100 ideas 3 may be truly useful.
- Prototype - Make solutions tangible in a rapid and low-investment way. Prototypes are disposable, they should be built as roughly and as rapidly as possible.
- Feedback - Feedback brings constituents directly back in to the design process. Presenting multiple prototypes/ideas allows people to easily give honest feedback via comparing and contrasting. For each prototype identify 3-4 questions you'd like to answer.
IDEO HCD Toolkit: Hear
As the toolkit is meant to, the Hear section is very focused on working with folks in under resourced areas of the world, but I found a few principles which are easily extended to a process working with a broader group. The goal of the Hear phase is to gain a strong understanding of an audience's needs, barriers, and constraints.
- Engage in context - While this section is called Hear, context is the reoccuring theme. The way a person presents a narrative, can differ from actual observation, especially when a person is learning a new skill or process. So, hear with all five senses, and hear in the actual environment a person will be operating in.
- Be qualitative - Seek a broad understanding. Work to understand a person's social, political, economic, and cultural oppertunities as well as barriers. Analyze the relational dynamics in a system (eg., people, places, objects, and institiutions).
- Testing - This is the chance to validate assumptions and preconceptions, be very intentional about letting any through without verfiying them.
- Framing - Challenges and statements should all be framed from constituents point of view.
- Inspiration - Look for inspiration in new places, search for similar problems in different contexts. The concept seems so incredibly straight forward, but rarely to I take the time to intentionally think about parallels of a design problem. The toolkit gives the example of hospital staff visiting a hardware store to gain insight about organizing supplies.
The toolkit goes in to excellent detail on how to identifying a challenge, recognizing existing knowledge, research, interview, immerse, and document.
October 17 2011
IDEO HCD Toolkit: Introduction
The toolkit was funded by the Bill & Melinda Gates Foundation, targeting organizations that work in Africa, Asia, and Latin America. I am not going to lie, while traveling to Asia would be wonderful, I am reading the toolkit hoping to draw out some more general lessons of the human centered design process.
The Three Lenses of Human Centered Design
The HCD process examines starts with the people being designed for, examining thier needs, dreams, and behaviors. The process steps through the following 'lenses':
- Desirability - What do people desire?
eg. Rocket pants, space cars, unicorns, and sporks. To be desired something dosen't necessarily have to be feasible, which brings us to...
- Feasibility - What is technically and organizationally feasible?
And now we have to cross rocket pants, space cars, and unicorns off the list, leaving us to examinine the viability of sporks.
- Viability - What can be financially viable?
So, I am assuming the spork business is pretty competative and covered by many interenational patents and we're back to the drawing board.
Page 6 of the IDEO Toolkit
October 12 2011
HBR: Murray's Law for Success on Your Terms
There are three critical ideas within Murray's two sentences:
- Are you positioning yourself so that one day, you do not have to work?
- When you no longer have a financial need to work in the role you occupy, would you still continue to occupy that role?
- Do you define your own standards of career excellence?
There are three phases in a professional life:
- Learning the "Game."
- Winning the "Game."
- Defining the "Game."
Where are you? Where do you want to be?
More at HBR's Murray's Law For Success.
I'll keep the cheap and preachy to a minimum the next few weeks, but wanted to record this.
October 07 2011
"The premise of the system is ideally suited to rapid prototyping, but it would work equally well when integrated into a production environment. There are printable sketch sheets, design layouts, and a CSS file that have identical measurements." - http://960.gs/
What the hey? Sounds good enough to me, lets give it a whirl. Since this site is heavily gridded, I decided to convert it.
For starters I added the following a wrapping div
<div class="container_12">, you could go with 16 column grid:
<div class="container_16"> and was in business.
Basically, moving items about the grid, is dead simple, above is my introduction:
<h1 class="grid_5 prefix_7 clearfix">Hello, my name is ... and technology.</h1>.
grid_5 places the element across 5 elements of the grid. I added a class of
prefix_7, which shifts the element to the right by 7 grid columns.
By using the
March 06 2011
suffix, classes you can position elements about the grid. The last bit to remember is that if a continer has a grid within it, attach a class of
omega to the last.