2.: Couldn't agree more. I tried it a few times, could never make it, because something came up. So I don't tell release dates. I hardly tell about new features. Nobody cares. Perfect.
5.: My PHP application without any fancy technology makes me close to 100K euro in revenue per year. It delivers, it keeps delivering, there are no problems.
I want to add one more thing:
6. You hear critics' voices the loudest, if you don't do anything against it. I changed pricing once and about 50 people complained. I tried to justify myself (won't do this again) and the 50 people became a mob with the respective mentality. No chance to say anything. I might have lost another 50 users because of the discussion. In my mind, I completely forgot about the other few thousand people who did not complain.
Happy people hardly contact you, only the critics and haters. Don't let it sink in too deeply. Or use an easy mitigation strategy: If people reach a certain goal, ask them for feedback by writing a personal sounding email (that you send automatically, for sure). You'll get mostly positive feedback. This is important from a psychological point of view: You see that people are happy with your product and you can handle the critics in a better way.
Most emails I get are like:"There's nothing to improve, thank you so much for this product". Nice :)
Your posts here are very educational and inspirational. Thanks a lot for the thoughtful responses to all of the questions. Congratulations on your success and good luck with any future endeavors.
Number 5, "don't believe the hype," reminds me of this interview with the creator of Pinboard...
> The Pinboard about page says: "There is absolutely nothing interesting about the Pinboard architecture or implementation; I consider that a feature!"
> Can you explain why you think that's a feature?
> I believe that relying on very basic and well-understood technologies at the architectural level forces you to save all your cleverness and new ideas for the actual app, where it can make a difference to users.
> I think many developers (myself included) are easily seduced by new technology and are willing to burn a lot of time rigging it together just for the joy of tinkering. So nowadays we see a lot of fairly uninteresting web apps with very technically sweet implementations. In designing Pinboard, I tried to steer clear of this temptation by picking very familiar, vanilla tools wherever possible so I would have no excuse for architectural wank.
I just upgraded my laptop from a 4 years old mbp to a brand new one, got a 27" second screen display, and i can tell you my productivity has been skyrocketing.
Performance gains are obvious, but the psychological aspect is also a factor. After working for a year on the same project, new hardware can bring some new joy, and a new boost to your project.
4 years is reasonable. But the OP just says 'upgrade often' which might mean anything and as such reminds me too much of iDiots [1], which is imo not what your upgrade strategy should be like (i.e. upgrading for the sake of upgrading).
Over the years I tried different upgrade schemes, and it seems 2 or 3 years works best for us. Over the course of that timespan there is an overall performance gain large enough to notice and worth money. If you go with less, say 1 year, the gain is much smaller, and you essentially pay for something that's the same but just looks newer. Also depending on the country you live in, there's a certain amount of time you can use hardware as an actual cost on your tax form. As such keeping it much longer than that time means loss, keeping it much shorter as well.
The psychological aspect (which we all know since childhood already and basically is set in our genese: new = interesting) does do something, of course, but has in my experience no long-term effect whatsoever apart from it costing money. Especially with short upgrade cycles the 'wow, new' effect gets less and the money effect more.
My homegrown saas application grosses ~$225k USD per year and growing. I started it in 2003 with $0 capital. I don't currently advertise, new business comes from seo and referrals. I am the sole developer/designer. (I use those titles loosely.)
What I have learned:
- Try to think about/plan for ten years out
- Make your application easy/pleasant/fun to use for you and your customers
- Limit third party dependencies at all junctures
- Log everything, it makes support and monitoring easy and fast
- Customers don't care what language/platform/db you use
- Have a support ticket system
- Have a coding convention/style and stick to it
- Life work balance is important, take vacations
- Run lots of backups
- Keep it simple and thank yourself later!
Of course YMMV. Hope that's helpful to someone starting out.
moneyrich4, who is hellbanned, has a good question for you:
i have a question for you.
i have a software product, and its so informative it would almost assist someone who copies it. any advice on planning 10 years out for a software product with this problem? planning x years out is not my strong suit.
i've thought a bit about removing stuff that would help competitors but that would hurt my customers. i will probably do this though anyway.
> software that allows you to concentrate on developing your application’s features rather than configuring servers
If you are running a SaaS, how is system administration less important than coding?
Now if the author had written "software that allows you to be more productive on both fronts", fine. But the notion that operations is somehow less important than development is exactly what fucks up so many SaaS companies in the long run.
Your users want your service to be 24/7 available and responsive. That's not a static goal (unless you fail to gain traction), and an essential and highly integrated part of what you deliver.
Maybe the author is lucky that his particular SaaS is easy to deploy and scale, but dismissing system administration as a distraction that can be solved with software is not universally applicably advice.
The context of the snippet you quoted is "Spend money on tools that make you more productive." In other words, don't skimp on a tool or service that can simplify an operations task, if the result is that you can focus more time on features. I don't see the implication that operations is unimportant.
Having a laptop/PC that you can develop on is important to developing a product, but no one would suggest that the author design one from scratch. Everyone (excepting perhaps Richard Stallman) would say it's better to just outsource that task to Apple or Lenovo.
For the owners of a small bootstrapped company, pretty much anything that doesn't increase revenue is a distraction and should be delegated to someone else, or some other company.
That doesn't mean you always can delegate them. Or that things like ops aren't important. It just means that a company's founder isn't the ideal person for the job, even if they can do it well.
I especially agree with item #2. I have been involved with several web based projects that have "failed" only because someone loosely associated with the project put a release date and the dev team made the mistake of agreeing (it seemed like a sure thing at the time). However, this deadline took its toll on the team's moral. As it became more and more evident that we would not meet the deadline we became more and more grumpy with each other and started shooting down great product ideas because the couldn't be done NOW. It resulted in lots of bad blood and several resignations.
That being said - I do think there are certain situations where release dates will exist in a SaaS product. For instance, if you market tends to start and stop activities on a set calendar (ie: school year) or if there are a handful of trade shows that are critical to demonstrate new features at. I think it is about being insanely pessimistic about how much you can actually achieve. Figure out the minimum you need to demo at a date and work on that first, but never commit to a set of UI diagrams with features that are not insanely flashy for a demo.
Really agree with #3 with regards to software. I've been focused on getting a VPS and the flexibility but it's lead me to not focus on my application/service. The configuration and maintenance of the VPS is chewing up my time, time that I could have spent working on validtaing my idea. Maybe I'm just not focused enough but I'll try to get something going on Heroku so my application/service gets the attention it needs. Any thoughts?
"It’s your job to make your customer more awesome. Every decision you make for your product and business should revolve around that."
Unless of course your customer requires knowing a date that a certain feature needs to be in place by. In which case, point them to Number 2. Which really means Number 2 should be Number 1 because Number 2 negates Number 1 if the two come in conflict.
I like that there is a perspective of time. A six month sprint would not care so much about working hours, ignoring hype, and investing in productivity tools.
I know Thomas and Amy well, and trust me when I say they're doing quite well with Freckle. And there are much, much bigger fish in the pond. The great thing about building business tools is that the markets they typically serve are SO BIG that you only need a few hundred / thousand accounts to have a healthy and profitable company.
I can't answer for Amy and Thomas, but I guess the answer would be it depends on the project. If you are building a freeminum project with lots of pageviews, you'd have to watch server costs more than a SaaS with only paying customers. Just do a quick estimation and you will get an idea how much it will cost you.
Here are some examples, some based on personal experience.
- You could set up and configure an email server to send email to your users, or just use a service with an API like Mailgun or Mailchimp.
- You could write your own Wordpress theme and plugins from scratch, or just pay $10 for a slick theme and $50 for a few plugins that meet all your needs.
- You could spend time each week backing up your system with a set of external drives, or just pay a monthly fee to Crashplan or Dropbox.
- You could buy a discount VPS account and spend all your time keeping it patched and running, or just pay for a fully managed server until you outgrow it.
In each case, the former solution is "free," but may require you to spend tons of time getting it working and putting out fires. Often it's better to pay a little money to just remove the problem from your critical path. The reason for this is that you only have a finite amount of time and mental energy each day. Try to use them on the things that matter.
A specific example would be hiring someone to manage your server.
Some examples of the general principle I've used in my own business: upgrading to latest Macbook air, hiring a maid so I don't have to clean my home-office.
An example of what I think he means: When you get more traffic, you can buy a huge but cheap server from Hetzner, or you can just spin up more dynos on Heroku.
Of course a SaaS is a "make customers awesome" company but you'll need use technology to make it awesome. Sure, clients don't care about the technology but that is not the same as "You’re not a tech company".
[+] [-] WA|12 years ago|reply
2.: Couldn't agree more. I tried it a few times, could never make it, because something came up. So I don't tell release dates. I hardly tell about new features. Nobody cares. Perfect.
5.: My PHP application without any fancy technology makes me close to 100K euro in revenue per year. It delivers, it keeps delivering, there are no problems.
I want to add one more thing:
6. You hear critics' voices the loudest, if you don't do anything against it. I changed pricing once and about 50 people complained. I tried to justify myself (won't do this again) and the 50 people became a mob with the respective mentality. No chance to say anything. I might have lost another 50 users because of the discussion. In my mind, I completely forgot about the other few thousand people who did not complain.
Happy people hardly contact you, only the critics and haters. Don't let it sink in too deeply. Or use an easy mitigation strategy: If people reach a certain goal, ask them for feedback by writing a personal sounding email (that you send automatically, for sure). You'll get mostly positive feedback. This is important from a psychological point of view: You see that people are happy with your product and you can handle the critics in a better way.
Most emails I get are like:"There's nothing to improve, thank you so much for this product". Nice :)
[+] [-] lemonberry|12 years ago|reply
[+] [-] HyprMusic|12 years ago|reply
[+] [-] groupthinker|12 years ago|reply
[deleted]
[+] [-] sigil|12 years ago|reply
> The Pinboard about page says: "There is absolutely nothing interesting about the Pinboard architecture or implementation; I consider that a feature!"
> Can you explain why you think that's a feature?
> I believe that relying on very basic and well-understood technologies at the architectural level forces you to save all your cleverness and new ideas for the actual app, where it can make a difference to users.
> I think many developers (myself included) are easily seduced by new technology and are willing to burn a lot of time rigging it together just for the joy of tinkering. So nowadays we see a lot of fairly uninteresting web apps with very technically sweet implementations. In designing Pinboard, I tried to steer clear of this temptation by picking very familiar, vanilla tools wherever possible so I would have no excuse for architectural wank.
http://readwrite.com/2011/02/10/pinboard-creator-maciej-cegl...
[+] [-] bsaul|12 years ago|reply
[+] [-] thibaut_barrere|12 years ago|reply
I upgraded our machines and phones recently and everything just "feels" SO much better. The machines literally got out of the way.
Work appears more lightweight once this is done :-)
[+] [-] stinos|12 years ago|reply
Over the years I tried different upgrade schemes, and it seems 2 or 3 years works best for us. Over the course of that timespan there is an overall performance gain large enough to notice and worth money. If you go with less, say 1 year, the gain is much smaller, and you essentially pay for something that's the same but just looks newer. Also depending on the country you live in, there's a certain amount of time you can use hardware as an actual cost on your tax form. As such keeping it much longer than that time means loss, keeping it much shorter as well.
The psychological aspect (which we all know since childhood already and basically is set in our genese: new = interesting) does do something, of course, but has in my experience no long-term effect whatsoever apart from it costing money. Especially with short upgrade cycles the 'wow, new' effect gets less and the money effect more.
[1] http://vimeo.com/79695097
[+] [-] moneyrich4|12 years ago|reply
[deleted]
[+] [-] measure2xcut1x|12 years ago|reply
What I have learned:
- Try to think about/plan for ten years out - Make your application easy/pleasant/fun to use for you and your customers - Limit third party dependencies at all junctures - Log everything, it makes support and monitoring easy and fast - Customers don't care what language/platform/db you use - Have a support ticket system - Have a coding convention/style and stick to it - Life work balance is important, take vacations - Run lots of backups - Keep it simple and thank yourself later!
Of course YMMV. Hope that's helpful to someone starting out.
[+] [-] colanderman|12 years ago|reply
i have a question for you. i have a software product, and its so informative it would almost assist someone who copies it. any advice on planning 10 years out for a software product with this problem? planning x years out is not my strong suit.
i've thought a bit about removing stuff that would help competitors but that would hurt my customers. i will probably do this though anyway.
[+] [-] moneyrich4|12 years ago|reply
[deleted]
[+] [-] bowlofpetunias|12 years ago|reply
If you are running a SaaS, how is system administration less important than coding?
Now if the author had written "software that allows you to be more productive on both fronts", fine. But the notion that operations is somehow less important than development is exactly what fucks up so many SaaS companies in the long run.
Your users want your service to be 24/7 available and responsive. That's not a static goal (unless you fail to gain traction), and an essential and highly integrated part of what you deliver.
Maybe the author is lucky that his particular SaaS is easy to deploy and scale, but dismissing system administration as a distraction that can be solved with software is not universally applicably advice.
[+] [-] mrgoldenbrown|12 years ago|reply
Having a laptop/PC that you can develop on is important to developing a product, but no one would suggest that the author design one from scratch. Everyone (excepting perhaps Richard Stallman) would say it's better to just outsource that task to Apple or Lenovo.
[+] [-] HyprMusic|12 years ago|reply
[+] [-] starrhorne|12 years ago|reply
That doesn't mean you always can delegate them. Or that things like ops aren't important. It just means that a company's founder isn't the ideal person for the job, even if they can do it well.
[+] [-] patrickwilson|12 years ago|reply
That being said - I do think there are certain situations where release dates will exist in a SaaS product. For instance, if you market tends to start and stop activities on a set calendar (ie: school year) or if there are a handful of trade shows that are critical to demonstrate new features at. I think it is about being insanely pessimistic about how much you can actually achieve. Figure out the minimum you need to demo at a date and work on that first, but never commit to a set of UI diagrams with features that are not insanely flashy for a demo.
my $0.02
[+] [-] joelhooks|12 years ago|reply
[+] [-] jwr|12 years ago|reply
[+] [-] rodolphoarruda|12 years ago|reply
Reminded me of a sponsor who once offered me a bonus if I could put together a schedule with delivery dates for each and every product feature.
"Hmm, no thanks. I prefer to leave it (the bonus) for when we go to market."
[+] [-] ams6110|12 years ago|reply
But for something that's entirely your own, yeah creating artificial deadlines doesn't make a lot of sense.
[+] [-] drderidder|12 years ago|reply
I agree but also don't ignore newer technologies just for the sake of familiarity. Especially if it has an active, supportive community.
[+] [-] tixocloud|12 years ago|reply
[+] [-] jusben1369|12 years ago|reply
Unless of course your customer requires knowing a date that a certain feature needs to be in place by. In which case, point them to Number 2. Which really means Number 2 should be Number 1 because Number 2 negates Number 1 if the two come in conflict.
[+] [-] ibsathish|12 years ago|reply
[+] [-] cygwin98|12 years ago|reply
[+] [-] groupthinker|12 years ago|reply
[deleted]
[+] [-] unknown|12 years ago|reply
[deleted]
[+] [-] mathattack|12 years ago|reply
[+] [-] frozenport|12 years ago|reply
[+] [-] bdunn|12 years ago|reply
I know Thomas and Amy well, and trust me when I say they're doing quite well with Freckle. And there are much, much bigger fish in the pond. The great thing about building business tools is that the markets they typically serve are SO BIG that you only need a few hundred / thousand accounts to have a healthy and profitable company.
[+] [-] madrobby|12 years ago|reply
[+] [-] mwcampbell|12 years ago|reply
I wonder if Amy and Thomas would use a PaaS like Heroku if they were doing a new product. Or would that be considered too expensive?
[+] [-] ma2rten|12 years ago|reply
[+] [-] unknown|12 years ago|reply
[deleted]
[+] [-] niyazpk|12 years ago|reply
Can somebody please explain what he means by this using some examples? Thanks!
[+] [-] wikwocket|12 years ago|reply
- You could set up and configure an email server to send email to your users, or just use a service with an API like Mailgun or Mailchimp.
- You could write your own Wordpress theme and plugins from scratch, or just pay $10 for a slick theme and $50 for a few plugins that meet all your needs.
- You could spend time each week backing up your system with a set of external drives, or just pay a monthly fee to Crashplan or Dropbox.
- You could buy a discount VPS account and spend all your time keeping it patched and running, or just pay for a fully managed server until you outgrow it.
In each case, the former solution is "free," but may require you to spend tons of time getting it working and putting out fires. Often it's better to pay a little money to just remove the problem from your critical path. The reason for this is that you only have a finite amount of time and mental energy each day. Try to use them on the things that matter.
[+] [-] graeme|12 years ago|reply
Some examples of the general principle I've used in my own business: upgrading to latest Macbook air, hiring a maid so I don't have to clean my home-office.
[+] [-] chc|12 years ago|reply
[+] [-] NameNickHN|12 years ago|reply
[+] [-] z3bra|12 years ago|reply