'Software Development' Archive

A Minimalist Company

July 14th, 2010

I came across this Less 365 post today which is lovely and simple. I’m going to pitch to my wife and kids that we each try this on for a year.

The line that stuck out for me: “It’s one aspect of a larger goal to apply the philosophy of minimalist alpinism to everyday life: light, fast, with minimal protection—your wits, your experience and the strength of your companions.” This isn’t the first time I’ve compared climbing to startups and I’m sure not the last.

The idea of light, fast, with minimal protection is a powerful way to shape a startup. Reworking this for a tech startup, you have to build your team and products to be light and fast, with minimal protection. All that matters is your wits, your experience and the strength of your companions.

Squirrels Taught Me When to Outsource

May 2nd, 2010

A quick review. We had squirrels living in our old house for months, I’m guessing 4 or 5 months. Late one summer I tried to evict them only to realize there were babies in there. It was at this point I decided to call in the pros.

Looking back, that decision went against my basic beliefs. In the end it cost me about $300 to get back to where I started, that being having squirrels in my roof I need evict. After having their entrance blocked, the squirrels simply found a new way into the roof and the company I paid only guarantees that the squirrels won’t come back in the hole they “fixed”. Next step was to purchase the same trap the company used online for $30 and do the work myself. In the end I had to block three more exits which would have cost me well over a thousand dollars with the ‘pros’.

So what was the belief I violated? That if something has any value then do it yourself. That doesn’t mean I have to do everything myself but it does mean that I don’t call rodent removal people out of ignorance. No one cares about our home as much as we do and no one cares about your business either. Companies inevitably learn this lesson around outsourcing in general. Be honest with yourself and tred cautiously if you’re outsourcing because you lack knowledge or experience. If it’s an area that’s core to your business in anyway then keep the experiences close to you and don’t ever outsource it. If it’s not a core area then at least do it yourself once or twice before you hand it off. You’ll make better decisions all around by having the experience of having done it.

Speaking from the other side, the good service providers out there will appreciate your understanding for what they do. It allows you both to get working faster and get deeper to the good stuff.

Epics

April 23rd, 2010

I spent a night recently watching rock climbing videos including this one from 2005. It’s the first female free ascent of the west face (V 5.13b/c A0), leaning tower at Yosemite.

“Yosemite is a place where you have to have had a certain number of experiences and epics before you really understand what you’re getting into”

It reminded me of a previous life spent climbing up rocks and mountains. Within the rock climbing community there is always a lot of talk of epics. It’s ingrained in the culture. “My last climbing trip went well but we had an epic on that last day I need to tell you about someday”.

The picture above is a route named The Cyclops located in Joshua Tree California. I’ve climbed here a few times and the last time I was by myself. When you’re climbing alone, you make friends quickly so you can climb with someone. I immediately met a group of three that welcomed me to climb with them. That first evening they asked if I wanted to tag along and solo up cyclops to watch the sunset. The short story is that one of our group had no business solo’ing any climb harder than a ladder. This particular epic included me downclimbing the route and then a night time rescue to get the ladder climber off the face safely. I’ll only add that I did manage to save the two Heinekens in my pockets.

My point is this, within climbing, epics are explicit. They’re part of the language, they’re earned and there is esteem that grows around them. No one hides from them or pretends that there’s anyway to get around experiencing them in order to get better. In the video above Lynn doesn’t talk about Katie needing to read more books or talk with more experienced climbers. It’s just a fact that she needs more epics under her belt before she’ll be a better climber.

To me, this is what David is speaking about here, and Mike Lee here. Lamenting the lack of talent or the fact that we don’t have people with enough epics under their belts is a start. How do we actively find out a solution to this? How do we grow the leadership skills a startup community needs? Applying funding where there’s a lack of epics does nothing. I agree with David and can speak from experience that working in services companies like BandOfCoders is fundamentally different and will not prepare you for a startup.

If you’re someone who can, how are you facilitating the next generation to have their own epics? If you’re on the other side, are you seeking out epics of your own? I agree, let’s stop talking about failure but I can’t agree that learning from failure is overrated. Every epic I’ve experienced included some form of failure. Seek out your epic experiences and encourage and provide opportunities to those willing to have their own.

Nobody Cares About Your Product

August 31st, 2009

I subscribe to a Canadian workshop magazine that runs a contest in each issue. The contest is simple, they print a photo of some ancient, odd looking device and you have to guess what that device is.tool

The contest is called “Learn How to Run a Tech Startup”. Ok, no it’s not but it should be called that. One of, if not the, biggest challenge of every business is connecting a real problem with your solution. Why is this more of an issue with startups rather than ‘traditional’ businesses? Tech startups often start with a solution, or a tool, not the problem or the customer. At some point the smart ones realize building a tool isn’t enough, you need someone to use it.

We startups often operate like that contest, in that we hand strangers wacky looking tools expecting them to fill in the blanks. Worst case they don’t give our tool a second look. If we’re lucky, they look at it, maybe play with it for a bit, then put it on a shelf to gather dust. Maybe, just maybe, some day in a distant future that person is struggling away with a task and has a revelation. They shout “hang on! I think I have something that’s just right for this” as they run to the basement to hunt for that wacky tool only to realize their son used it as an ornament for the spaceship he built last summer.

Now contrast that with this story. Picture a woman standing in front of a massive overgrown hedge on her property holding her grand-dads rusty pair of garden clippers with a look of despair on her face. You walk up and hand her your company’s nifty electric hedge trimmer all plugged in and ready to go. With a smile she breezes through her chore, writes you a cheque and runs up the street with your trimmers shouting “hey guys! you have to check this out!” Ignoring the liability of her running with your trimmers in hand, that’s a dream experience for a business.

Simple right?, yet rarely achievable. You must identify a real problem a real person has. Then conceive, create and build the right solution, AND show up in the instant when real people are experiencing the problem you solve? The opportunities to fail along that path are monumental and an easy trap is to focus on products and technology instead of customers, their problems, their business, etc.

Some related recent reading: The Customer Development Manifesto: Reasons for the Revolution, The Customer Development Modal.

Free Lunches and Bubbles

March 19th, 2009

So apparently we don’t learn from our mistakes? I love it that it’s news in 2009 that a business requires revenue to sustain themselves.

“Ultimately, though, every business needs revenues—and advertising, it transpires, is not going to provide enough. Free content and services were a beguiling idea. But the lesson of two internet bubbles is that somebody somewhere is going to have to pick up the tab for lunch.”

For me, the subtle part of this is when you think about how many responsible businesses don’t exist today because of this approach. Over the short haul, it’s tough to pit reasonable business plans directly against unreasonable ‘free’ handouts. Sure there are some who stuck to their guns and succeeded but they’re the exception.

We see similar behaviour on the services side with BandOfCoders. There’s always a lower, and usually unreasonable, bid. It’s easy to get drawn into that but before you know it you’ll be forced to sacrifice what differentiated you in the first place. Inefficiencies, and driving them out of your company, is one thing but unsustainable businesses are just hard to compete with.

In our case, we typically don’t compete. A lot of those projects and clients return to us after having spent more than our original quote and ending up with far less. It’s unfortunate but something that often requires first hand experience.

The same exists with ‘free’ applications or services. You need to be very aware of the applications you use regardless of price. There’s typically a real cost to you, or your company, associated with migrating off any service or application. An unreasonable business model will eventually fail and you’ll have to find a new home and pay those real costs to migrate there.

This is also why offerings like Bizspark mean nothing to me personally. If you choose a tech stack to build your business around purely because of a few free years, you’re naive and in trouble. Nothing against Bizspark as the same applies to an open source stack, don’t choose a foundation for your business because of free licensing costs!

Healthy Conflict in Product Design

December 16th, 2008

Warning: generalizations and stereotypes follow.

In all software companies, likely all companies, there’s a constant battle of varying degrees of ugliness between sales and design. Sales spends all her time with customers and potential customers. All they want is for design to just do what they ask. My client needs the product to do this, just make the product do it.

Design on the other hand doesn’t like knowing that real humans exist. Design prefers personas or focus groups and doesn’t want to hear what sales wants built. Instead design wants to lie on the grass, get inspired, simplify, contextualize, and maybe design a feature or two. Will design solve real customer problems? Well in the best companies yes but likely not in the way sales suggested.

So we have a divide? A constant conflict between sales and design. What do we do? Well we get them in the same room together and hug it out right? Build consensus, get sales and design to agree and get on the same page.

Naw. Sure you need some of that, however, only so much as to have a respectful relationship between the two. The phrase ‘if two people always agree then one person is redundant’ applies here. If sales and design always agree then the good news is you can get rid of one. The best approach is to recognize and embrace the conflict and the divide. There’s strength and value in it, don’t get rid of that. It’s healthy dysfunction, keep it but make sure it’s just enough that you can still be productive.

Arbitrary Design

October 15th, 2008

In architecture, there’s often discussions about so-called simple cultures and how they are better, or worse, at designing and constructing dwellings that fit with their environment. Christopher Alexander differentiates the cultures as selfconscious and unselfconscious. His distinction being about how skills are taught:

“At one extreme (unselfconscious) we have a kind of teaching that relies on the novice’s very gradual exposure to the craft in question, on his ability to imitate by practice, on his response to sanctions, penalties, and reinforcing smiles and frowns. The great example of this kind of learning is the child’s learning of elementary skills, like bicycle riding….The most important feature of this kind of learning is that the rules are not made explicit, but are, as it were, revealed through the correction of mistakes.”

Obviously we North Americans are a selfconscious culture by this definition. We make the rules explicit, novices learn more rapidly by following general principles and education becomes a formal one. So my question? Applying this thought process to product development, are you building a selfconscious or unselfconscious team and process? Think about your answer before you read on, or better yet, comment below.

Here’s some more from Christopher, “Roughly speaking, I shall argue that the unselfconscious process has a structure that makes it homeostatic (self-organizing), and that it therefore consistently produces well-fitting forms, even in the face of change. And I shall argue that in the selfconscious culture the homeostatic structure of the process is broken down, so that the production of forms which fail to fit their contexts is not only possible, but likely.”

In other words, a selfconscious team is not only less capable of adjusting to external change, they are in fact likely to fail. Or so Christopher says. He also talks a lot about these complex systems and how they necessarily breakdown into loosely coupled subsystems in the unselfconscious culture.

“No complex adaptive system will succeed in adapting in a reasonable amount of time unless the adaptation can proceed subsystem by subsystem, each subsystem relatively independent of the others.”

“It is the inner nature of the process that counts. The vital point that underlies the following discussion is that the form-builders in unselfconscious cultures respond to small changes in a way that allows the subsystems of the misfit system to work independently — but that because the selfconscious response to change cannot take place subsystem by subsystem, its forms are arbitrary.”

He may have lost me but I think he’s going to argue that design in a selfconscious culture, or team, is nothing more than arbitrary. That being “a term given to choices and actions which are considered to be done not by means of any underlying principle or logic, but by whim or some decidedly illogical formula.”

So let’s ask that again, are you arbitrarily designing your software?

Frugal and Plain Cheap

October 10th, 2008

I really like this personal finance advice from Ramit. He attempts to explain the difference between being cheap and frugal, and yes there is a difference.

“Instead of being guided by the invisible hand of stupidity, take some conscious control of your spending. Are you just spending on eating out? When was the last time you spent money strategically to try to gain something useful? Yes, it’s actually good to spend money on things you value. Yes, it’s important to spend money on things that will benefit you financially, intellectually, whatever. Yes, I’m encouraging you to spend money on certain things!”

I love this advice because saving money sometimes requires spending money. It’s about creating value, not cutting costs. A somewhat meaningless example from my personal life. I play hockey 4 or 5 times a week. Years ago I used wood sticks because I clearly could not afford those fancy overpriced 1 piece composite sticks and the quality of my game certainly didn’t require high end gear. I would go through a $30 wood stick about once every 2 weeks which cost me a lot of coin. Finally I tried a low end composite stick which cost about $60. That stick lasted me well over a season. I have over a season and a half of use on my current stick. I would have gone through several dozen wood sticks in that time. So yes, for me a $200 composite stick is massively cheaper than a $10 wood stick. Try explaining that one to your wife.

Switching over to the current market and software, the smart companies that are going to weather any storm will make smart value based decisions. Hopefully your customers will be frugal not cheap. If you’re building software, or any product or service, then the burden is even greater that you create real value for your customers. That isn’t the same as ‘selling’ value, it has to actually exist. Someone could easily have sold me a composite stick but that wasn’t the value. The value came after using it for months and not having the blade soften and turn to mush from water seeping into wood. It was the value that came through usage that turned me into a life long customer not the initial sale.

Selling Software in Tomorrow’s Market

October 9th, 2008

I’m not much for following financial markets. To be honest I try to stay out of tune of mainstream media because of the skewed view it imposes on me. Clearly there’s some talk about downturns and tough times for having to sell anything, including software. So what do you do?

My 2 cents is who cares? You can’t control markets. You can’t control customer buying decisions. I have a number of friends who are real estate agents. Are they stressed about the downturn in their market? No, they’re excited. They’re excited because they know they’re great at what they do. Look at the Toronto real estate market. Literally anyone could sell homes in that market the past 10 years. It took no skills and that drove the great agents mad. Their industry quickly filled with losers and pretenders. It takes a great agent to sell homes in a down market and those agents are excited about shaking out the fluff.

Don’t equate a down market to a non-existent market. Companies will continue to buy software. They may possibly buy less and you can bet they will pay more attention to what they’re buying. If you’re a strong player then that’s great news for you. You no longer have to compete with losers and pretenders as they will fail in a tighter market. So focus on you, your offering, your team, work your ass off and be great.

Simple and Complex

October 7th, 2008

At Brainpark, we stuck the words “smart, simple software” on our cards. Simple, what’s simple? The word on it’s own offers little to act on. You need a context to put your product into to assess. Christopher Alexander talks about context and form. The challenge of the designer being to achieve fitness between form and context.

Back to John Maeda who describes the balance between simplicity and complexity as….

How simple can you make it?….versus….How complex does it have to be?

“On the one hand, you want a product or service to be easy to use; on the other hand you want it to do everything that a person might want it to do….The simplest way to achieve simplicity is through thoughtful reduction. When in doubt, remove. But be careful what you remove.”

It’s easy to get lost focusing on form and forget the context you place it in. Simplicity and complexity only really have meaning with both form and context.