Organic Cotton Thanks to Internet

December 13, 2009

I have been looking forward to telling my readers about our client Coyuchi.com ever since we were first approached to develop their Web store.  The new store launched just last month.  The story is about how the Internet enables a boutique style, socially conscious store, located in a quaint California coastal town, to reach beyond the foot traffic of people getting away from the city for the day.

Coyuchi sells organic cotton products including linens and clothing that are produced following the best practices for certified organic and fair trade products.  You can read more about them on their Web site here.

We have a set of Coyuchi organic sheets for our bedroom and we love them.  My wife is a serious linen shopper.  The bed is always covered with the softest cotton sheets and a warm down comforter in natural patterns.  We live in downtown Napa and our bedroom looks out at green hills and, right now, red and yellow colored maple trees. Every morning we share a cup of fresh ground brew in bed with our dog Huck at our feet.  Getting the picture that the quality of the sheets is a big deal?

Socially conscious living is important to us and to Open Mountain.  Here’s a post about company efforts to be more green.  Finding a company like Coyuchi is such a score because it allows us to be eco-friendly without necessarily sacrificing creature comforts.  Sure, we’ll make compromises to support the environment.  Give up our morning coffee experience?  That’s a tough call and I am glad I now don’t have to make it.

Coyuchi could make a small profit catering to locals and out-of-town guests visiting Pt Reyes on the Northern California coast.  The store is an hour or two drive from San Francisco and the town has an eco-friendly feel to it.  Two things happened that set Coyuchi on a different course.

First, people started to care about the planet.  They started to recognize that irresponsible consumption could have serious consequences in the not so distant future.  Second, the Internet provided a means to share information.  The availability of global information brought communities together and informed them about what was happening in the world.  We’re all much more connected now and I think we can agree this has been a positive change.

Coyuchi uses the Internet to expand their reach, sell to even more customers and increase their revenue.  They provide a nice solution for people looking for quality in their linen that also want to support the environment in a socially responsible way.  Best of all, I can tell my sister in New York or family in Los Angeles about the company just in time for Christmas (wink wink nudge nudge).  This is exactly what the Internet was supposed to be about among other things.

The new Web store looks great.  The design is clean and friendly.  We built the site on top of the open source product osCommerce for e-commerce.  Using open source tools fit with the spirit of the project while also providing a cost-effective way to launch an online store without re-inventing the wheel.  In truth, we prefer to use open source tools as much as possible so long as we can meet the needs of our customers.

You’ll have to see for yourself what you think of the result.  The store is live now at Coyuchi.com.  As for the sheets, I can only tell you that we are very satisfied customers and we look forward to more and more products coming online.  Until then, I’m off to my post-morning, pre-lunch nap on my comfy organic sheets.  Huck, hey Huck, time for a nap…


Design Tips from Lessons Learned in 2009

December 9, 2009

We had some fun and rewarding design projects this year.  Open Mountain has a new logo and Web site, and we executed a new ad campaign.  We also designed sites for our clients and were involved in many creative projects throughout the year.  I think it’s time for a little retrospective.  Before I take you through some of work, I thought I would provide some lessons learned from the year.  Assuming you are following a healthy design process, here are some tips to help you achieve success with your creative endeavors:

1) Start from a creative brief

A creative brief synthesizes the desired results or impacts of your project.  I recommend a single page brief that has 3-5 words that describe the emotion you wish to evoke, a sentence describing the impression you are trying to create or message you are trying to communicate, and then 5-10 bullet points listing everything that should also be considered.  We skipped this step a couple of times only to find out later that our lack of alignment was driving the design in different directions.  Resist the temptation to dive right in creating images before you collect your thoughts.

2) Use multiple visuals where ever you can

This one seems obvious.  Of course you are going to create visuals of your design.  We recommend using more than one as much as possible and use existing work for inspiration.  We started our logo project by creating a page of logos we liked from other sites and a page of logos we didn’t like.  Our Web site went through many prototypes before we started working in HTML.  Our design partners deliver 3 to 5 design choices per deliverable and that gives us plenty to discuss as we strive for something creative, intuitive and unique.

3) Plan to reset or start over at least once

All our best design projects hit the inevitable “we’re stuck” moment at some point in the project.  The current trajectory has run its course.  Where do we go from here?  Starting over allows you to dump the bad parts of everything you did while retaining the best of your brainstorming and thinking.  For our logo project, we liked the two-tone nature of the images but couldn’t converge on colors.  We realized that using brown to represent the strength of mountains was putting a damper on our brand.  Hills in California offer other choices such as green for spring or gold in fall.  The logo design direction was good but we dumped our color palette and started over.  You’ll see that progression below.  We recommend you embrace the set back as a healthy part of a creative process.  Try not to resist just because you are under deadline.  It may take you longer to make a bad design better than create a new design that works.

Here now is a trip down some of the design projects from our year and how we came to learn these valuable lessons.

Open Mountain Gets a New Brand

Our first project of the year was a new logo and Web site.  As I mentioned above, we did the logo ourselves starting from a creative brief.  Open has strong connotations for approachable and transparent but also open in the open source sense implying community and knowledge.  Mountains are strong, substantial and impressive.  The image below shows our progression from earthy colors toward what we have today.  This project benefited from all 3 tips listed above.  We used a brief.  We created mountains of visuals to consider different options, pun fully intended of course.  Our earth tones palette was replaced by something green, open and fresh.

We tackled the Web site next.  Below is our first attempt starting from our existing creative brief.  Do you see any major issues with this perhaps after reading our previous post about design?  You see a guy in a kayak against a mountain range exactly where the eye looks first on the page.  How informative is that?  We had hoped that the serenity of the lake we create a peacefulness when perusing the site.  One reviewer thought we were a travel Web site.  Furthermore, most people didn’t even look at the content at the bottom because it appears secondary to the overall page.  Time to start again.

Our new design started by utilizing our own advice and putting meaningful content in key positions.  We decide to use Flash animation to make the experience more engaging.  Below is our first shot at the flash panels for the animation.

Next we played with color and attributes to encourage the users toward different sections of a page.

In the end, we feel we created a site that is informative and engaging, and delivers the right message about our company.  Take a look and tell us what you think.

We Have Ads Now!

Our next project was creating advertisements for our business.  We procured several 250 by 250 spots on various Web sites through pay or partnership.  Due to timing constraints, we were forced to create something quick and dirty to meet a deadline.  This is what you get when you don’t follow good process or utilize any of the design tips we mentioned above.

Is there anything in this ad that is the least bit engaging?  What incentive do you have to explore this company?  What service do they really offer?  Right, you get the point.

We reset the entire project and thought hard about what were trying to do.  An expert gave us some advice on how to think beyond our current approach.  She talked to us about advertising and about how you create something like a “Got milk” or “Just do it”.

We have said from the beginning that we wanted to be different from what customers have come to expect with outsourcing.  We strive to overcome the separation between organizations and instead work to provide insight into what is really happening with the remote development team.  Working with Open Mountain should not feel like typical outsourcing.  It should feel like your own team.

Outsourcing never felt like this!

That was it.  We knew right away this was our “Got milk”.  When you outsource with Open Mountain, it should not feel like any previous experience you might have had.  Below is our first concept piece with the new approach.

Happy smiling people.  People actually enjoying outsourcing.  Exuberance.  Feedback from our experts confirmed this had appeal and communicated the right message.  We created 4 ads.  Here are the two favorites and we also used the one in the upper left corner above.

If you outsource with us, you’ll be as happy as a kid sledding or a crazy guy eating a huge lollipop.

These ads still crack me up.  They are quirky and unique and communicate our core message.  Of course, we rejected some ads as well.  Here are the two most controversial.

Outsourcing should feel like you are about to eat a huge hamburger, right?  People said he looked constipated or nervous.

Reaction to the woman eating cake was truly mixed across woman and men.  At the time we rejected the ad, one woman reviewer was saying this degrades our business while another said this would get the attention of our target audience.  Let’s just say that the ad did not fit well with our corporate values.

Clients Restart Projects Too

Design tips were learned working with clients as well.  Our client ThriveOn.com launched their site based on the design below.  As we added features to the solution, we soon realized that the design was creating some challenges.  This design is more consistent with a Web portal such as iGoogle or my.yahoo.com, and didn’t fit well with upcoming product changes.

The client went back to the drawing board and created a design more suited to the long-term growth plans of the product.  Below is an interim step from when we experimented with different color schemes.

The final site is presented below.  You can read more about our work with ThriveOn in our case study on the OpenMountain.com.

A Look at a Work in Progress

The year isn’t over yet and we’re designing new products all the time.  We strive to follow good process and utilize the tips mentioned at the start of this post.  Here now are two final mock-ups from a product we are working on.  The project is in stealth mode and some content is redacted.  Overall, the design process has gone very well.  Our favorite approach is not displayed below however.  You’ll have to wait until launch to see where we ended up.


Understanding Development from a Day In the Life

November 23, 2009

Monday morning is the time when our teams interact the most about projects and the coming week.  I’ve decided to capture events typical of Monday to provide insight into our work developing products for clients.  I’ll do my best to include everything warts and all even if that means sharing something I would not normally share.  In support of full disclosure, I took sparse notes over a period of time and came back later to clean up the text and add commentary.  Here goes nothing!

Our high-tech revolution has plunged us into a state of continuous partial attention.

iBrain by Gary Small, M.D. and Gigi Vorgan

- A typical Monday starts by pulling my canoe out into the various communication streams.  Logging on to Skype is the watershed event.

- Skype is running.  Firefox is open with tabs for email, calendar, several Google docs, WordPress for this post and YouTube for a side project I am working on.

- I check in with my lead on Skype.  I have the same guy across a few of my projects.  This certainly streamlines the communication.  He’s in Costa Rica.  When I worked at Adobe, we used IM all the time as people worked on different floors and at different locations.

- I am acting as the product owner for one project and I clarify something about a feature we are implementing.

- On another project, our client provides detailed specifications and we review the documents to make sure we are in sync.  We are, which is good.

The new promise of collaboration is that with peer production we will harness human skill, ingenuity, and intelligence more efficiently and effectively than anything we have witnessed previously.

WIKINOMICS by Don Tapscott and Anthony D. Williams

- Our newest client jumps on Skype to validate the release, our testing and the schedule.  There is a lot to discuss so we move to a Skype call. He does a good job managing his business to create an active and valuable community.

- Another issue comes in about how a feature should work that requires some thought.  I ignore chats and emails for the next 30 minutes and open specifications in Google docs and mock-ups in Preview.  We clarify the issue.

- By late morning, the major communications have been completed.  Projects are moving forward and our teams seem to understand what needs to happen this week.  I am responsible for a couple of releases that are in full swing.

No matter how clever the idea or great the implementation, an invention typically lives or dies depending on how well it can be integrated into a larger social or technological context.

Juice by Evan I. Schwartz

- The marketing text for our Web site update is long overdue.  Some tasks on the docket this week are for corporate business.  But I decide to focus on that side project and YouTube.

- I started a project called ReachGivers.org to help charities and non-profits get their message out over the Internet.  ReachGivers.org uses Ruby on Rails and has Twitter integration.  I added a poor man’s blog a while back as well.  This week I want to add video support.  Side projects help me stay connected with technology.

Economics is above all a science of measurement.  It comprises an extraordinarily powerful and flexible set of tools that can reliably assess a thicket of information to determine the effect of any one factor, or even the whole effect.

Freakonomics by Steven D. Levitt and Stephen J. Dubner

- Off to Starbucks for a Mocha and a blueberry scone.  This happens so often that people know me by name there.  The Ethos water billboard reminds me I wanted to blog about that on ReachGivers.org after finishing the video work.

- My brain stumbles on some concepts for the marketing text and I jot down some ideas.

- I was working on a product a while back and was not that impressed with the end user documentation.  I sent a book proposal out to a technology book publisher, which turned into a series of titles, and I have been writing every since.  I love it, I really do.  I even enjoy working on marketing text and ads.

Execution is not a one-time event.  Nor is it a process where you check off goals as if your sixth-grade teacher were looking over your shoulder.

The Art of the Start by Guy Kawasaki.

- Shorty before noon we get a curve ball. Mid-cycle, our client needs to shift direction on a project to change the prioritization and the release date.  I’ll spend the next few days updating user stories and validating the new plan. Sometimes I feel like we’re actually better at hitting a curve ball.

- The Agile software process, which is intended for flexible development, actually advocates against this type of mid-cycle change.  Release cycles are purposely shorter so that a direction shift simply influences the next cycle.  For start-ups, next month can be years away.  We have to be more flexible.

- A site we monitor generates an alert right before I can escape for lunch.  I used to get a little rush on these mini-emergencies like working as an EMT. Now I am the ambulance driver who knows that most pick-ups are not at all like the show ER.  Still, up-time is important and so we resolve the issue as quickly as possible.

- It occurs to me that this post demonstrates why people Tweet.  Expressing myself effectively with 140 character didn’t work well for me.  I decide to try it again because I am enjoying creating this running dialog.

- We’re trying to send large Photoshop files with mock-ups.  Some days technology just seems to work against us.  We’re hitting proxy issues and time out issues.  Eventually we solve the problem and remind ourselves yet again we should standardize on an approach.  Problem is, email and Skype are so convenient and work well enough most of the time.  I guess this would be one of those warts.

Agile software development methods should be able to survive in an atmosphere of constant change and still emerge with success.

Agile Management for Software Engineering by David J. Anderson

- After 40 plus years of eating sandwiches, I still love a good sandwich.  The best sandwich in town is from the deli in Vallergus and the people at the cash register all know me by sight.

- I never get back to the post after lunch.  Clients and partners all eat at different times and issues were waiting for me when I got back.  That is definitely a typical Monday.

- I didn’t finish the marketing text either.  The text I came up with was not remarkable.  I made some small updates to our corporate site instead and also finished my changes on ReachGivers.org.  Perhaps I will think of something while winding down for the night.

- My iPhone sits by my bed.  With several releases in play, there is always a chance a developer is still working and will fire off a question.  Of course, I can’t just let the device sit there, now can I?  I pull my canoe back out into the stream and see what else I might have missed during dinner.


Integrated Outsource Partners

November 16, 2009

Open Mountain software projects succeed because of our tight integration with our primary development partner Avantica in Costa Rica.  This connection sets us apart from most other outsource providers.  After all, who can provide a local contact with significant career experience in the US and also deep experience with cost effective resources in another country?  You need two partners who spend the time and effort to remain tightly integrated.

How do you know for sure we are as integrated as we say?  Have a look at the photos below from some recent trips with us going to Costa Rica and our partner coming here.  Open Mountain and Avantica work well together because we make the effort to become familiar with each other.  We know the teams in Costa Rica and nearly everyone in the Avantica has been on one or more of our projects.

Leaders GG bridge

The leadership of our partner Avantica at the Golden Gate Bridge.

Better Leaders Napa

The Avantica team at Rubicon in Napa.

Teams Napa Improved

Open Mountain showing Avantica engineers one of the oldest wineries in Napa.

Team Costa Rica

One of our newest clients meeting with Bob and the team in Costa Rica.

Costa Rica

Where Bob and Tom stayed over the weekend in Costa Rica.

Napa

Avantica and Open Mountain enjoyed wine over lunch with this view of the vineyards.

After you look these over, you’ll have to tell us who visits the better location.  I do like my Costa Rican beaches and Imperial beer.  But how about the Golden Gate Bridge and wineries of Napa?  It’s a tough call that I am glad that I don’t have to make.

Thanks to all the travelers who donated images for this post! – Cheers.


The Funny Side of Web Development and Multiple Languages

November 9, 2009

I was adding a few features to a product the other week when I contemplated that often times the simplest change takes forever and adding major features can be a snap.  The inconsistency comes from the complexities of Web development.  To illustrate the point, I am going to borrow material from one of my favorite comedians Robin Williams.

Robin did a routine a few years back about the invention of golf by the Scottish using a conversation between the drunk Scotsman who invented golf and an interested player:

Drunk: We’re going to make a game.  We’re going to make you put a ball in a gopher hole.  It will be really fun. (hiccup, burp)

Player: Sort of like bowling?  We roll the ball into the hole?

Drunk: Heck no.  We’re going to make you hit a tiny ball with a stick.

Player:  I guess if we are not that far away from the hole-

Drunk: Heck no, we’re going to put you a couple of hundred yards away.

Player: Hopefully, you’ll at least make the thing straight so we just-

Drunk:  Heck no, we’re going to curve holes left and right.

Player: Just don’t put anything in our way.

Drunk: Heck no, we’re going to put water and trees in the way and even sand.

Player: We can try it once to see-

Drunk: Heck no, you’re gonna do it 18 times…

I think you get the point.  Different holes and sand traps certainly make the game fun, but these obstacles also make golf challenging to learn and harder to master.  Web programming feels the same way to me.  There are many reasons why it has become so complicated from humble beginnings.

Just for your edification, the essence of any Web site is a URL which looks like this http://www.openmountain.com/hello.html.  Somewhere on a server, there sits a file named hello.html.  All the other stuff on the URL before this file name helps the Web browser on your laptop locate this file on a central server and download it to your laptop for display.  I know, I know, this is so 1997.

The file hello.html contains HTML which is a simple display language.  The browser understands this language and can turn HTML code:

<html><head></head><body>

Hello <b>Robin</b>! How <i>are</i> you?

</body></html>

into this:

Hello Robin! How are you?

If only Web programming was that simple.  Here now a conversation between our fictitious Web creator Lee and our programmer Marc:

Lee: I have created the Web for you so you can put all your information and data on a central server and everyone can share it.  To display your information, you just need to create HTML files for people to download.

Marc: That’s fabulous!  I love it.  Can’t wait to start.  Can I add If statements and For loops so I can do real programming?

Lee: Good point.  OK, I will add Javascript in the file.  You can code loops and stuff using <script> tags and do display with HTML.

Marc: That works.  But wait, if all my data is on the server, do I have to download all of it all the time?  How do I get only the data user’s want?  Use Javascript on the server?

Lee:  Heck no.  We need a completely different language for that.  It will execute on the server where your shared data is.

Marc: OK, we’ll execute all the code on the server.  We don’t need HTML and Javascript anymore.

Lee: Heck no.  The output of the code on the server will be HTML and Javascript.

Marc.  So our code will output code?  Seems complicated.  Well at least the server side language can collect data and do processing all in one language.

Lee: Heck no, you have to use SQL language to extract all the data and then another language to process it and create the HTML and Javascript.

Marc: Wow, that’s a pain.  I guess so long as there is only one server side language in addition to SQL that’s not too bad.

Lee: Heck no, there’s Java or PHP or Ruby on Rails or Python or-

Marc: I get the point.  So let me get this straight.  I have to learn 4 languages 2 of which execute on the server and produce output that is comprised of the two other languages that run on the client.  Is that right?

Lee: So far so good.

Marc: I was expecting another response.

Lee: Which was?

Marc: Never mind.  OK, so now my users want more interactivity and less download times.  If I pull down all the data they want at one shot, then every time they request something else I have to go collect a bunch more stuff, right?

Lee: Heck no, but this “heck no” is one you’ll like.  You can use something called AJAX to go back to the server and just pull a little bit of information.  Users love it and it uses Javascript and the server side code you already have.

Marc: Finally!  OK, that’s cool.  So I just have Javascript, my server language and SQL and I am set.

Lee: Well…

Marc.  Don’t say it!

Lee.  Um, well, hmm, heck, um, no.  See the X in AJAX stands for XML.  Now XML is a lot like HTML so it’s not exactly a new language.

Marc: Lee, did you ever think about what would happen if I had a bug in my code?  Like a user clicks a link that does an AJAX call and it does something wonky?

Lee: That could be a problem.

Marc: Yes it could.  The bug could be in the server side code in the SQL or the server side language that is executed when I first download the page.  Or it could be in the client side code in the HTML or Javascript that is generated.  Or it could be in the server side code that gets executed when AJAX is called which also has the server language and SQL.  Or it could be in the result that comes back from the AJAX call which has HTML and Javascript and XML.

Lee: Did I show you how easy it was to create a page to say hello to Robin Williams?

In case you were wondering, the feature that inspired this post was your standard geo map integration.  Creating a map on a basic HTML page should take you no more than an hour at most.  Our product uses toolkits with the Rails framework and the nuances from using both combined caused the delay.  In the same amount of time later that week, I created user profiles with custom fields and modified the product to show the thumbnail of the user’s photo with comments.  I guess some holes you par and some holes you double bogey.

Web development truly is comprised of server side code operating on shared data and client side code running on your local computer.  The client code is primary about presentation and analysis.  Server side code manages shared resources and data.  If you think about it, optimizing languages and development processes for each scenario seems like the correct approach for creating a well-functioning solution.  The complexities of engineering are a necessary outcome of distributed systems and data.

Although, we think it is entirely possible to create a single integrated development environment that separates organically upon deployment.  You should then be able to standardize languages and processes.  We’ll add that to the list of other ideas we may never get to.  Would it be cheating if your golf club used a robotic arm with laser sighting?

You can find Robin’s original routine at the link below.  I am warning you that it is filled with tons of profanity.  This should be no surprise to Robin Williams fans.

http://www.funnyordie.com/videos/8e441c0a24/robin-williams-drunk-scotsman-invents-golf-from-dirttron


Developing on a Platform Creates a Dependency

November 2, 2009

Companies are finding real benefit from starting on a platform that provides functionality and existing customers.  More and more developers are launching products on the iPhone, facebook and SalesForce.  We definitely encourage our customers to use existing technologies and services to expedite time-to-market.

A few months back, we were proposing to build a facebook application using some other technologies as well.  In our proposals, we like to think ahead to point out issues that could arise and we stated that any changes to these technologies could impact the schedule.  At this point, the customer emailed me an interesting question.

How do we mitigate the risk if facebook or the other technologies change?

Our customer was asking a pretty good question.  If facebook changes their API or markup language, we may have to re-factor significant amounts of code.  Don’t think this could happen?  It already did.  Here’s how it impacted some developers.

At first I was tempted to say that is the nature of the beast.  If you are building a house and it starts to rain, construction will be impacted.  Materials will get wet.  You might have a major disaster if you just poured the foundation and the cement hasn’t cured.  We can’t stop the rain.

I then realized this is a profound question and that I needed to give it some thought.  We develop for start-ups all the time and a significant delay from outside influences could prove disastrous.  I started thinking through the possibilities.

First, we need to consider if companies we are depending on actually appreciate this risk.  How often does the facebook API change?  How does SalesForce improve their platform without breaking existing applications?  It’s reasonable to conclude that if Apple, facebook and SalesForce care about their business they wouldn’t adversely impact people making a living off their technology.

I did a little investigation to see how well these companies keep their developers informed of changes.  Everything I discovered was as of the writing of this post and may have changed before publishing.  I certainly welcome anyone from facebook, Apple or SalesForce to comment on this post and provide information I may have missed.

facebook clearly embraces developers as a community.  Their WIKI is comprehensive and includes a link to view the latest changes to the platform.  A proactive developer could sense changes were in the air for sure.  I was hoping to find a way to subscribe to emailed changes.  I’ll keep looking for that.

Apple’s developer site feels very polished.  They clearly focus on information presentment making it easy to find documentation.  That said, the site seemed to offer less insight into what is happening with the platform.  By way of contrast, WIKI community sites are easy to edit and therefore updated more frequently, but often contain posts that are not completely accurate or have become out of date.  A good editor solves this problem of course.

SalesForce.com is definitely going the community route.  The developer site includes documentation, news, events, updates and discussions.  An active developer can stay abreast of changes for the most part.  After looking at the site, you can see that the company is making a good effort to keep the developer community informed.

Back to the question, how can we mitigate the risks of a key technology or platform changing mid-cycle?

Here are some the techniques we recommend for staying informed and managing the risk from developing on existing technologies and platforms:

1) Subscribe to all change lists – The best way to find out if an API or technology is changing is to have the company tell you in advance.  Trust me, you don’t want to find out from users your site is broken.

2) Avoid developing functionality that has a shelf life – Some times, it is clear an API or functionality may have limited long-term viability.  Certainly privacy and security issues won’t stand over time on any site with significant usage.  Developers love to exploit a loophole or over reaching function.  Your business might be doomed if this loophole is core to your success and it gets closed.

3) Plan for scenarios in the business – The corollary to point 2 is plan for the unfortunate or unexpected.  You should certainly utilize any advantage you reasonably uncover.  Just don’t bet the farm on anything that may pose a long-term issue for the platform without a backup plan.  Spend time thinking about how your business would need to adapt.

4) Create a business that is truly platform independent – Try to see each technology used by your product as a component instead of a necessity.  facebook could be swapped out for MySpace or Twitter for example.  If you use an open source product for your shopping cart or CMS, consider having a backup choice in case you find a bug that can’t be fixed.  Ask your architect to present an alternative technology stack that changes all third-party technologies just to prove it can be done.

Experienced teams use existing platforms and technologies to enhance products, speed up development and create forward-looking solutions.  You should too!  Just don’t get caught depending on something that would hobble your business if it changed.  Have a plan to get back up if the rug is pulled out from underneath you.


Success And Failure Contribute To The Experience It Takes To Succeed

October 23, 2009

Experience matters when it comes to advisers, vendors and employees.  A recent post by Eric Ries on gigaom.com challenged the conventional wisdom that people who worked at previously successful start-ups hands down have the solid experience you need in your employees and advisers. If you had a good run at a Google or an Amazon or an eBay you are without a doubt the person a start-up should bring on board. The problem is that founders and companies get so caught up in the name that they don’t look behind the curtain.  How do you choose between employee 100 at eBay versus someone who did time at HP and Apple but the one start-up they worked at hit the deadpool after two years?

We can’t discount the impact of having big name success in your company pedigree.  We see it all the time at Open Mountain as we work with start-ups and investors.  We had one prospect use the pedigree of advisers to a consultant he briefly hired in his pitch.  Sort of like his company hired the guy who dates the sister of the guy who walks Steve Job’s dog if you know what I mean.  Another case the person with the pedigree had joined one of the Internet giants after the battle had been won and during the time the business plateaued.   In both cases, we observed first hand that the viewing audience accepted the pedigree on face value.

Remember Webvan?  Webvan was one of the high flying companies of the first Internet boom that spent obscene billions on grocery delivery infrastructure only to go belly up at first sign of trouble.  Who would ever hire a person with that on their resume?  If you were to hire that person, the first thing he or she would tell you is don’t over build and make sure you have ways to reduce  costs during economic down turn.  That seems like really valuable advice to me.  If you hired someone who had been at Amazon, he or she might tell you to build like crazy and run up huge debt because it’s a land grab and we’re playing for keeps.  This is exactly what Amazon did and it certainly worked for them.  Which approach would be better for a start-up in today’s market?

Let’s dispel a few myths of our own.  With the exception of the leadership at the top, the job done by most people at say etoys, Webvan or uBid was not much different than the same people at eBay, Yahoo or Amazon.   There were plenty of good people at the first three companies just as surely as there were bad people at the success stories.  We tend to assume that everyone who worked at a runaway success was a home run hitter.  Yet we all know many great lessons are learned by failure.  Your experts need to know how to succeed for sure, but they also need to know how to avoid failure.

Here are 3 tips on how to get the best people and avoid the glossy eyed acceptance from talking to someone who worked at a runaway success story:

1) Don’t hire anyone who doesn’t have at least one significant failure they are willing to talk about.  The failure means they have learned.  The “talk about” part means they are being as honest as reasonably possible in the vetting process.  Here’s an interview tip.  After hearing about the failure, ask them for the name of someone else who also went through the failure with them that they still like. Then ask the candidate to describe their impressions of the themselves from perspective of the other person.  In an excellent interviewing class I had a while back, the teacher explained that the possibility you may actually know or contact the third person increases the chance your candidate will give you an honest answer.

2) Go rent season 4 of the TV show House.  In season 4, House is forced to build a a new team.  The process is entertaining but also valuable if you are interested in characteristics of a great team.  You should probably watch some of the earlier seasons so you understand the show.  House understands that to build the best team, you have to hire people who compliment your skills, who are not afraid of failure and who are willing to look for the best solution no matter the cost or process.  Most importantly, don’t just hire people who think like you if you want to benefit from the unique experiences of individuals with different points of view.

3) Hire people with great pedigrees in their past too!  Yes, I know the focus of this post was about how not to let pedigree cloud your thinking.  Simply put, experience matters and working with people who have done great work and achieved great success makes a difference.  My point is that you need to look beneath the surface and make sure the experience is real.  That is also the point of Eric Ries in his post.  He provides all the ways people with pedigree experience may not have earned that experience or learned from that experience.  I would suggest you review the post before the interview and do your best to determine if the person in front of you fits one of his profiles.

Any day of the week, I’ll take the person with substantial experience that includes brand names and failures over the person with only one great success story in their past.  I like to see some start-up experience, but I like that most when it is balanced with large company experience too.  After all, I’m not saving people’s lives like my good friend Dr. House, but I do want to have a team that can save a company in need and to do that they must know what to do when things don’t go as planned.


Virtual Corporations are Accepted Practice in the New Economy

September 8, 2009

We were meeting with a new client this week discussing how we cost effectively deliver products and technology.  Low overhead is a key part of our strategy along with near-shore resources for development.  We’re a virtual corporation and that means our work force is distributed.  Office space is limited, and we use other strategies to achieve collaboration and a sense of company.  We explain our strategy in our post on being a green company.

We did not take any initial investment to start the company and that mandates we watch our expenses fastidiously.  In an upcoming post reviewing our predictions for 2009, we think our prediction about back-to-basics business principals has proven true in the new economy. Young companies that thrive in 2009 are often profit drive and bottom line focused.  Open Mountain is no different.

That said, there is a risk staying virtual.  Will customers be more impressed if they walk into a well decorated office with large conference rooms and amazing views of the San Francisco bay?  Or will they understand if we meet using rented conference room space that is nice but not part of our headquarters?  Does this really matter?

The good news is more and more of our customers understand the virtual concept.  Customers are in fact virtual themselves including the new customer we met with and many of our existing customers.  We no longer have to explain that working remote and having a work-space only head quarters does not hinder our ability to deliver.

A virtual company structure is becoming a sign of forward thinking and smart money management.  Companies grow more cost effectively and avoid the risk of expensive leases or even worse having to move.  This approach beckons back to the original Silicon Valley garage start-up and the lore that turned the garage of Bill Hewlett and Dave Packard into a historic land mark.   Spend your money where it matters and preserve your cash until you have money coming in.  As developers, we like working for smart companies as that increases the chance the fruits of our labor will live beyond the challenging launch phase.

I’ve spoken enough in the past about remove collaboration strategies like this post.  I thought I would add some other ideas to help create a sense of company for people who primarily work together yet separate.

Meet periodically face-to-face

We try to meet once a week in a common location.  When we do, we often include lunch, dinner or social activities.  If our near-shore developers come to town, we do our project work in-person as much as possible even if it is not necessary.

Become friends on facebook

Sharing photos, links and comments on facebook is like putting a picture or comic outside your cubicle and having people stop by.  My business partner posts his runs and other actives online and in my mind I hear him telling me I need to exercise.  Sharing life experiences contributes to the sense of company and community.

Use video conferencing

I’ve talked about the benefits of using video in collaboration often enough.  Next time you have a remote Skype session, fire up that Web cam that probably came free with your laptop.

Send weekly status reports

A great way to keep everyone connected is to send and read status reports from everyone in the company.  Reading status reports takes the place of weekly or monthly company meetings and creates a more effective way for employees to feel part of a larger whole.

As you start your company or plan your growth, we highly recommend you consider a virtual strategy.  The cost benefit is significant.  Online tools, status reports and other techniques help you ensure your work force is connected and engaged even if you can not see for yourself.  Interestingly, we are seeing the same evolution with online computing resources.  Companies are saving the cost of building expensive hosting infrastructure by deploying applications on virtual resources in the cloud.  While you are at it, how about considering a virtual development team too!


Understanding Engineering Management Through Shipping Metaphors

May 31, 2009

We completed our first release with our new client ExpertCEO and were pleased to read the blog post of CEO Ken Ross about the update and the role our team played.   Open Mountain experts work as engineering management to oversee development and guide near shore teams to successful releases.  Ironically, we sometimes find ourselves explaining engineering management to companies even when their own experiences tell them software teams need leadership.  I’ve joked that you don’t know what engineering management is, but you know it when you have a good one.

Ken described our leadership as “oversight services to ensure that all of the technical, architectural and operational aspects are synchronized.”  Mario Chaves, CEO of our development partner Avantica, described Open Mountain another way, “[Open Mountain] experts improve communication, refine requirements and ensure all parties work seamlessly as one integrated team.”  These explanations certainly help to clarify our duties.  Perhaps a metaphor might help explain things better?

Developing software is like shipping cargo

Developing software is like loading a ship with cargo and navigating calm or rough seas to get to a final destination on time.  The captain puts together his best crew hopefully using seamen he has worked with before.   The navigator is the architect planning the journey.  The helmsman is the lead engineer and has the best sense for how the ship is handling.  The crew maintains the engines, cargo and supplies.  The captain, of course, is in charge of the ship and crew.  Let me provide some examples of how this metaphor is useful.

I took over a project in trouble at a previous job and described the project like this.  The ship was on a trip from Hawaii to San Francisco and right now they’re half way to Alaska.  We need to make a hard right turn and we may lose some of the cargo and crew overboard to get there on time.  This translates to making some decisions to change the direction of the project and that may include changing the team and cutting features.

Prioritizing features is like loading cargo.  We need to be in San Francisco within 3 months and you still have cargo on the loading dock.  You need to make some decisions fast and get this ship going or we’ll have no chance to arrive on time.  Load the ship too full and the ship will travel slowly.  Let’s quickly decide what needs to be loaded and shove off.

Agile development is like using a small, fast ship.  The client need not decide all the cargo he wants right away because the ship will be back in a month to pick up the next load.  It’s easier to select some items to load on a ship returning soon than trying to decide the only cargo you can bring in one shot.  As you can see, shipping works quite well.

Engineering management is like being the captain on the ship

The job of engineering management is to act as the captain of the ship.  The captain’s first job is to get the ship underway.  He helps the client decide what cargo to bring while selecting the crew and loading supplies.  The captain reviews the plan with his navigator and helmsmen, and manages the team to get the ship to sea as quickly and efficiently as possible.

If your development leader is pushing you to decide what is in a release, that’s because he knows the decisions you make start the journey.  He still needs to navigate the boat out of the harbor and across the ocean.

A good captain watches the early part of the journey intensely to verify his decisions.  He makes sure everyone knows their job, that the course is clear and the weather is known.  Making major course corrections in the middle of the ocean is definitely more difficult.  He makes sure the cargo is tied down and the supplies are sufficient just to be sure.

The role of the crew is clear to the client.  The navigator did the navigation, the helmsmen steered, and so on.  But if you refer to my earlier comment about engineering management, the captain was in charge but the client can’t say for sure what he did unless he was on the ship or talks to the crew.

Most captains I know are fine with this.  If the cargo arrives on time, the client is happy.  A well managed crew walks off the ship content.  If a captain made good decisions early on and tracked progress with an experienced eye, then the job was well done and the cargo is on its way to the final destination.

Had enough of this metaphor yet?  How about one more time?

Weather is unpredictable

Like it or not, projects get in trouble despite the best laid plans.  You’ll find out the hard way if you have a good captain when this storm hits.  An ocean storm can loosen your cargo or create a leak in your hull.  At that moment, the captain is the only crew member not assigned to a specific task and this probably is not his first storm.

A good captain will know that the leak is the most serious.  He’ll make sure that the navigator and helmsmen have their marching orders and put his best men on the leak.  The rest of the crew will be assigned to battening down the cargo and doing other less critical tasks.

By having the knowledge and leadership from experience, and the freedom to asses and assign, the captain is in perfect position to restore order and get the ship under control until the storm clears.  Most captains will simply confirm for the client they hit the storm and apologize for the damaged cargo.  He might ask for an extra long furlough for the guys.  And that’s really how you know you have a good captain!

So you see, a good engineering manager will do his best to create a project that runs on schedule and without hitches.  He’ll work with the team to define the work and make sure the engineers understand what needs to happen.  Throughout development, the manager tracks the progress of the team validating his decisions just like the caption of a ship checking in with his navigator and crew.  If things go awry, the engineering manager is the one team member with the experience, bandwidth and responsibility to get the project under control and manage it through to completion.

Three rules for selecting a good captain

Here are a few guidelines for helping you assess if you have an experienced and reliable engineering manager:

1) Has he been to many destinations encountering different weather patterns and obstacles along the way?  Is he an experienced manager and can he describe projects that were challenging to manage to completion?

2) Does he know how to build a good crew and does he bond with them and treat them well?  What does the team say about him?  Do they respect his experience and leadership?

3) Is he familiar with the most common and reliable boats used for shipping?  Is he familiar with the latest technologies?

These guidelines should help you select the best engineering manager for your project.  If you can’t find a sea worthy captain, a good leader will work provided you pair him with an experienced navigator and helmsmen.

Whatever you do, don’t head out to see without a captain.  If the ship hits rough waters, someone is going to have to step away from the job they are doing to get the crew under control and he may not have the experience to get the ship to port with cargo and crew intact.

Here’s to calm waters and white sandy beaches!

DSCN0636


Apple Likely To Overtake Microsoft

April 18, 2009

I am convinced it is just a matter of time before Apple will over take Windows as the dominant operating system on personal computers.  Let’s look at the facts:

- I am doing my taxes on my Mac this year for the first time.  I have years and years of Windows Turbo Tax data files from at least 3 generations of computers.  Having the history helps me get through the experience each year.  Installing Turbo Tax this year, however, has rendered my Windows system useless.  I can only boot safe mode to access my files.  Big thanks to Intuit for giving me the Mac version to complete my taxes.

- We have a family laptop that is stuck with Windows Vista.  The machine is slow and cumbersome.  We constantly lose the wireless connection and are forced to re-boot often to get Blackberry active sync working.  My iPhone works with my iTunes as if they were developed by the same company.

- We use Google docs and other online tools at work for 80% of our document creation.  Graphics work is most of the remaining 20%.  We do this work offline but guess what, Photoshop, Fireworks, and the lot, run equally on Mac and Windows.

- My Windows machine was turned off for a week.  A whole week!  This is a big one.  I use a computer more than anyone I know for many things such as contributing to community sites, writing this blog, and developing software.  A week for me is like a year for everyone else.  Monday morning the other week I turned on my Mac and started working.  By Friday, we were both looking forward to the weekend while my Windows desktop was cold to the touch.  I still can’t believe I never had cause to turn it on.

- My office TV is Windows Media server using the second monitor as the display, but I rarely use it anymore.  All my favorite shows play episodes on the Web after the initial TV run.  NetFlix offers movies online.  I don’t even have to DV-R Heroes.  YouTube and FunnyOrDie are great distractions if I want something new.

- I am totally addicted to Spaces on my Mac.  I have multiple work spaces running all the time that I flip through so quickly people watching me get motion sickness.  There is no chance of getting motion sickness with Windows.

Let me summarize.

The Mac OS is easier to use and more reliable than the Windows.  It’s fast and fun.  The applications I depend on are no longer OS specific.  Rich content is readily available online.  The files I created on Windows over the last 10 years are in my Mac documents folder.  I really don’t need the Window machine much for anything anymore.

All the strangleholds and monopolistic software plays that made Windows what is it today are gone.  For example, MS Office was once required at work.  Now, if it doesn’t come with the machine, people don’t need to buy this expensive software.  I am struggling to find just one example of something I must have Windows for.  The fact is I am several hours into my Monday as of now and I still have not started Windows (to be honest, that’s because the first thing I know I have to do is fix the problem I am ignoring).

Windows continues to go head-to-head with Mac and people are taking a good hard look at the merits of each.  Most of the people I know are going Mac.  The transition happened over the last 5 years to the point where I don’t know anyone raving about the Windows laptop they just bought.  Did I mention I am doing my taxes on my Mac for the first time this year?