Post navigation

Startups, Think Again: Writing Code Is Not Your Biggest Challenge

Web designers and developers are passionate about what they do. It’s that passion that drives us all to take risk and build amazing things.

But at the same time, that passion sometimes makes us dive into projects heads first and unprepared. And that’s when it hits you <*SMACK*> like the first time I went to take a drivers test without studying; stating on the exam that it’s OK to drive through an orange traffic light “when you’re careful” seemed like a good thing to do at that time. It wasn’t.

Going in unprepared will cost you. Not only will it cost you time and money, if you’re not careful, your sanity will suffer as well.

In this post I’d like to share what me and my partner learned from starting up SolidShops.com (a hosted e-commerce solution aimed specifically at web designers), so that you can avoid the same mistakes we made. If you learn at least one thing from this post that saves you time and hassle in the long run, I promise I’ll never drive through an orange traffic light again.

Writing Code Is The Easy Part

Don’t fool yourself. Building the application is the easy part. You know how to write code and you can design the pages your users need.

It’s amazing to see your mock-ups evolve into a working app. But there’s nothing amazing about having an app that nobody knows about. So stop worrying about features, simple or complex. You’ll be able to code them all. What you really need to focus on is getting users.

Not The M-Word Again?

Ah the M-word: Marketing. We learned rather quickly that marketing is more important than features, especially when just starting out. Even if you have the most amazing application out there, if people don’t know you exist, your diamonds are shining in the dark.

Fortunately for us, we started with a coming soon page with a couple of early screenshots on it and most importantly: an email sign-up form. In the 1.5 years of development (that’s right, 1.5 years, but more on that mistake later) we gathered around 1800 email subscribers.

What we’ve learned is that nothing converts better than a targeted double-opt-in mailing list. Twitter followers are nice, but when someone is following up on 200+ people they just won’t notice you when it matters.

Be Passionate

Everyone with a job – freelancer or cubicle hero – can relate: spare time is precious. You could do all kinds of things: sleep, watch TV, get some exercise. Still, you are willing to go for it and spend most of your spare time building an application you are passionate about.

Make sure that working on your idea is your true passion, it must be the one thing you love doing in your spare time or you just won’t make it. If you don’t feel like working on something that won’t generate any money in the next six months, you’re better off watching a movie instead. Overnight success is a fairytale, passion and hard work are real.

Too Many Features Are Deadly

Like I said earlier, we had been working on our application for 1.5 years in our spare time before launching and that’s way too long. If you don’t launch something within six months, you’ll have depression creeping up on you before you know it.

Too many features are dangerous, not only for your product, but certainly for your team’s morale. Get something out there quickly and keep iterating based on your users’ feedback. If you can’t launch it in six months, you’ve got too many features planned.

We’ve learned to get things out faster and leaner. Our rhino mascot for example is still just a sketch at this point, but we’ve pushed it out there anyway just to remind us not to wait until something is perfect.

One Click Deployment Or No Deployment At All

Once you launch your product you’ll need to be able to update it on a regular basis. Security fixes, new features, … you name it. If you can’t deploy your application to production in one click tops, shit will hit the computer fan sooner or later.

For SolidShops, our automated deployment process consists of at least the following steps:

pull code from version control system (we use Subversion)

combine all CSS and JS files into one minified file (Yui compressor is great for that)

move the latest version of your code to your web server folder

make sure file permissions are set securely for your app (we use a shell script for that)

put the latest version online while keeping an easy restore point (symbolic links on Linux do the trick just fine)

If you have to do all these tasks by hand, prepare for a ride down. There’s just too many things that can go wrong when a human has to perform all these tasks, going from files that get lost in the process to file permissions that are set incorrectly.

For the technically interested ones among you, we use Phing to automate our deployment combined with Hudson from where we launch or schedule all our deployment and other jobs with no more than one mouse click. Setting all that up requires a serious amount of time, but you’ll kiss your both hands afterwards for doing so.

Find An Exceptional Partner

The best thing that happened to SolidShops is that I’ve found a partner who’s amazing at coding and doing all kinds of technical stuff. On the other hand, he’s unable to come up with a Photoshop design or anything decent looking in the browser but that’s ok, that’s where I come in.

When starting an online business, the key is to find out or know what you are good at and focus on doing those things. Find a partner who’s good at the skills you lack.

Find yourself a great partner, but make sure you’re on the same line before diving into a large scale project. Doing a startup with someone whose long term goals are completely the opposite of yours is like going to a BBQ with a vegetarian, it’s just not natural.

Relax, It’s Only Work

At the end of the day, make sure you are having fun.

On my first job, I worked as an SAP consultant. I hated it, but I drove a wicked BMW for free and had great benefits. I quit that job to start teaching and working in the web field professionally and I couldn’t be happier ever since.

In the end, the only thing that matters is that you do what you love most, no matter what that is.

Comments

He’s providing insight based on his experience; how is that shameless? He needs to talk about his website (which he hardly does beyond the obvious ways so we know who he is and where he’s coming from) to frame his points.

Thanks for pointing that out Mark. I can only speak from my own experience and from the things I worked on myself. Apart from that, we are not big players in the market, just regular web developers like 99% of us out there building something we are truly passionate about and sharing those experiences with our peers.

Good timing. I can really relate to this right now. I’ve been building, with some breaks for other work, a web application for about 6 or 7 months now. The back end code is nearly there, the front end is close(ish) and I at least know what I’m doing for the design. Too many features – I’ve also ended up pushing a load of nice-to-have things into revision 2…

I’ve been thinking about marketing for the past few weeks too. I’m lucky in that we already have an established brand in the niche into which the new product will be launched. It’s also something that the community really feels they need, so we’ve managed to pick up about 2300 Facebook fans and 700 emails so far.

I’ve started reaching out to some of the people who have expressed an interest to ask them what they want from the project. Partly because I genuinely care – I can emphasise features based on feedback – but also because I want to build relationships and hopefully get them to be excited and promote it for me when it launches. Definitely much more to do though…

I’ll have to look into the deployment things mentioned here – haven’t really thought about that yet.

Having an established brand to launch upon is a great advantage. If I were you, I’d get something out there as soon as you can, as only real users will give you the feedback you need to improve your application.

Don’t hide your features until your product is “perfect”, there’s always something you’ll want to improve or some feature you’ll want to add and you know it :).

I don’t know the technical background of your application but investing some time in automating deployment will save you a lot of pain afterwards! Get in touch if I can help out.

I’m doing my best to get it out there soon. It’s a difficult balancing act, though: it’s got to be good enough to make an impact and so people want to go back again / tell others, but not so good that it never gets launched.

I think a nice approach is that currently epitomised by Apple: there were lots of things the first iPhone didn’t do, but the things it did do it did really well – well enough to get everyone talking about it. Obviously I’m not delusional enough to think this project will have anywhere near that sort of impact, but it would be nice to make a positive first impression. So I’ve been busy culling some features so I can get it out sooner.

And thanks – I’ll probably take you up on your offer soon to learn from your expertise in deployment, and maybe other things too, as you’re further along this path than I am right now.

I have worked on a few projects and we always run into the issue of wanting too many features before launch. If you every want to actually launch you just have to a level of features that you can hit. Once you determine if there is interest or not you can always add more features later. In my opinion it’s better to release a half of a product then no product at all.

Hi Frank, have you tried the application yet? To be honest there aren’t many resources you’ll need to get started. Only if you are customizing your store front-end (which we absolutely encourage) you will need the templating language.

If you feel you need anything else, please let me know on twitter or through email and I’ll take care of it right away. Don’t hesitate to contact me if I can be of any assistance!

Nice article Joris! Most of the points are common sense, but still a lot of people (including myself) need to be reminded about these things in order to stay focused.
Hope I’ll be able to write an article for this blog too once my latest startup has launched and I can share some of the startup-marketing lessons I learned along the way…

Great article, thanks for sharing. I wonder how many people are going to spend time to design a mascot that looks like a sketch now, thereby showing they’ve missed the point. Not many, if they read the article properly, mind you!

I actually work in the marketing side of a smallish company, and it holds true that a leaner feature-set also makes the marketing–not just development and meeting deadlines–easier!

Oh how I love link bait articles that point out the bleeding obvious while doing nothing more than simple seo spamming. I especially love the people who retweet and share everything like a machine and litter the web with nonsense…

Hi Oren, besides the obvious online techniques such as SEO and SEM, one thing we computer geeks tend to forget is going out and meeting people in person. Almost every person we meet and show the product becomes an active user of our app. We’ll be arranging a free workshop soon for web designers that want to learn how to quickly build a unique store for their clients. Those things are fun and they tend to work very well, the only downside is that it’s a slow and time consuming way to grow your user base, but that’s ok for us, as long as we get in great clients.

Hello! We're the teachers here at Treehouse. We produce video courses on everything from web design and web development to iOS and business skills. You can browse our full library of content to find the course that's right for you.

In the meantime, explore the free features, tips, tricks and videos here on our blog. Tell us what you think, we'd love to chat: blog@teamtreehouse.com

Stay Updated

Sign up for our newsletter, and we'll send you news and tutorials
on web design, coding, business, and more! You'll also receive these
great gifts:

checkArt and the Web: Line, Shape, and Form - An eBook by Treehouse Teacher Nick Pettit.

checkOn Freelancing - An audiobook about running your own business by Simon Collison.

Swift is a new programming language created by Apple to program iOS apps. If you are new to programming or to Swift then this course is for you. Learn about programming concepts like: variables, types, collections and control structures.

Ruby is a programming language with a focus on simplicity and productivity, and it's used to create some of the biggest websites in the world. Learn how to work with Ruby and write simple Ruby programs in this introductory course.

Interested in creating Android apps? Learn the Java programming language, a tool for Android development called Android Studio, and some very basic concepts of the Android Software Development Kit, or SDK.

Bring your big idea to life! Learn how to start a company on the right foot with an introduction to basic business concepts, including corporate structure, marketing, finance, and accounting. Then you’re ready for more advanced business strategies.