Software Project Success 101

So you or your company have this technology project, and it’s really cool and it’s going to be a great success.  All you need to do is get started.

The scariest phase of any big job is starting.  That’s the time when you know the least, have the most work left to do, and have the least direction and momentum.  But it’s also the time where creativity and initiative can make a huge (and exciting) impact on the final product.  So how do you get started in a way that minimizes the scary and maximizes the exciting?

The short answer is “start with the big stuff.”

What Problem are You Solving?

It might be something simple like getting the word out about your company in a creative or impactful way, or it might be sophisticated delivery of media to mobile devices.  Know what you’re trying to do, and do that one thing well.  If there are other opportunities that come up during the project, write them down and tackle them next time.  It’s better to do one thing really well than several things poorly.

Who are You Solving it For?

Know the people who are going to use your technology.  And I mean actually talk to them.  You are one of them?  Great, go talk to a bunch more of them.  Draw pictures, listen, ask for honest feedback, and take it back to the drawing board until people are looking forward to using it.  Even the simple stuff can be compelling, if it means something to people.

Who is Your Technology Partner?

Find a partner who not only has the technical chops to deliver, but really gets what you’re doing and who you’re doing it for.  You may have in-house software developers who are smart and capable, but the wrong fit for delivering to your needs.  Or you may have a tech partner who really gets what you want, but doesn’t have the programming horsepower to pull it off.  Figure that out before anyone starts writing code.  Figure it out before contracts get signed.

Your partner should ask the first two questions from above to make sure you’re both on the same page.  They should help you refine your ideas and understanding.  Don’t be afraid of tough questions, and be wary if there aren’t any.  They should also be able to talk about their success stories with specific examples.

Abraham Maslow is quoted as saying, “if all you have is a hammer, everything looks like a nail.”  Be careful that your tech partner is keeping your needs in mind, not their favorite tool.  Getting locked into PHP, .Net, Node.js, or whatever platform too early can hurt.  Find a platform that fits your project, don’t fit your project to the platform.

How are You Going to Pay For This?

You’ve got a budget.  But really, what’s the real budget?  You need to plan for meetings, revisions, vacations and holidays…  time is as much a part of the budget as money.  And if you don’t think ahead about how to handle the unforeseen, it will eat you up.

I mentioned it before, but I’ll say it again: you might see other opportunities, but keep your priorities straight.  The fastest way to eat up your budget is to get distracted.  So, know your goals, write down your expectations in clear language, and keep the lines of communication open with your tech partner.

Your tech partner should help you through all of these questions, but you get what you pay for.  Off-shore programmers might deliver code for cheap, but they might not understand the experience you’re trying to deliver, and that isn’t cheap.  You should expect regular updates, short demos, lots of questions, and occasional bad news.  It’s normal.  Factor those meetings and discussions into the budget, because they’ll happen.

Finally, customization costs.  The more tiny little details you fuss over, the more time and money gets used up on tiny details.

Delivering Software is Hard

At the moment, it’s cheaper and easier to ship a car halfway around the world than it is to deploy software to your data center.  So when I say “delivering software is hard,” I’m not complaining, I’m stating a fact.

Talk to your tech partner about how they plan on delivering their masterpiece.  They should have a clear plan.  If the deployment is to your own network, that means more people and more overhead, and more moving pieces to keep aligned.  If it’s to the cloud or their own data center, it’s still complicated, so ask for a breakdown of how it works.  What parts are automated? Have they done this before?  How many people does it take?  In an ideal world, you’ll hear the words “continuous integration” and “continuous deployment” as part of the discussion.  That’s the mark of a mature tech partner- automation.

All of that assumes you have great software to deploy.  Again, every step of the way requires work and attention.  It isn’t glamorous, but it works.

Happily Ever After?

Brand new technology is never perfect, and the only “finished” software is dead software.  So make a plan for what happens in the weeks after it goes live.  Then make a plan for what happens in the months and years after it goes live.  Who fixes bugs?  Who responds if the site goes down?  Who updates things?  And if it’s the success story you dreamed of, who adds new features, and how hard is it?

Learning From Experience

Sometimes mistakes are inevitable, but making the same mistake over and over again is expensive.  Don’t be afraid of not knowing, or of screwing up- just learn from it.  Better yet, learn from people who know their way around- the kinds of people who don’t make the same mistake many times.  Most projects are long enough that a few mistakes won’t ruin the result, but be honest and stay on top of things.

Submit a Comment

Your email address will not be published. Required fields are marked *