What it looks like to go from being the first real coder to being a full time manager of a pretty large eng team over the course of 3 years in git commits per month:
I can understand missing coding, too, but your team will be able to sense that in the same way children can sense the stress of their parents. As a manager, it's important to get over that so you can take yourself and your team to the next level.
I run my own start-up and I have to do everything. I am the sole employee. Some days I wear my designer hat, others its server config, and others it's customer service. Is it a bit crazy? Sure, but I really enjoy what I do.
I don't have meetings. I don't go to conferences. I don't pitch my company to VCs. I don't try to raise money. I don't care what other companies are doing. I don't try to use the latest tech because I'm expected to.
LAMP is fine.
I concentrate on building the product, satisfying my customers, and increasing my revenue. Everything else is bullshit.
The founder should be able to do everything. Being a developer is one of those things.
I'm in exactly the same situation right now and I ABSOLUTELY agree with you on everything. One minor thing here though that I don't call it a 'startup', it's rather a 'small business', which grows linearly, not exponentially (not yet at least).
Amen. I'm in exactly the same situation. Took me a few years to get there but now I'm totally happy with it. I actually like the fact that I have to do everything myself. That's what keeps it interesting (and challenging once in a while).
What happens when you get sick and need to take 10 days off? Family emergencies? A company with a "team" can give you that margin of safety. A One Man Band is great, but is not sustainable for long, because life happens. Startups are built to scale so that founders can step back and enjoy the fruits of their labor.
An hour… well maybe you can fix a quick bug or two. But you won’t get anything hard done.
I work full time at a startup, and I have a 6 week old daughter at home, and I'm working solo on a proof-of-concept on nights and weekends. Since I've got my hands full with the baby at home, I've learned to be very efficient with my time. One decision that made things a lot easier was deciding to go with node.js. Since the entire app is written in JavaScript, I can quickly test out ideas on my phone or tablet browser using JSFiddle, and integrate it later when I have a laptop handy. Sometimes I only have an hour of uninterrupted time, but that's usually enough to write a function or two.
That approach might be fine for small projects/webapps, but I stuggle to see that approach working for anything more complex/hard. Sometimes the only way to make effective progress is a full day of uninterrupted progress where you can hold the relevent parts of the system in your head at the same time...
Sometimes you need several weeks of working on the problem in this way to make progress! (e.g. machine learning improvements, distributed system design).
Isn't the whole point of startups that they are usually funded (at least initially) on about enough money to buy ramen noodles for a year?
Sure, if you have enough funds to buy some rockstar programmers then go for it.
Otherwise what are you going to do? Outsource it to the lowest bidder? Then spend all that time worrying if they will produce something that matches your vision and worrying about the quality.
No, you put in the time to find a good programmer who will work for a reasonable price. Typically that means finding someone who graduated fairly recently and is looking for additional work, or someone that doesn't have a lengthy track record/portfolio. It's not easy (I've probably talked to a hundred some odd programmers in the last year, and maybe three would fit the bill), but you can find the right people if you put in the work.
It's no different than finding a good salesman, or a good PR person, or a good anything. You can find great talent at a reasonable price if you're willing to dig. Rockstars don't always come at rockstar prices, because a lot of the time they don't even know they're a rockstar.
I was the technical co-founder. My job was to code, work with a few other people who code, and be the overall passionate guy about the quality of the code. I find it helps to have a stake holder in this position, you end up with better code, and someone who is going to take true ownership of the code.
My co-founder was a true marketing/selling machine. So it worked out for us I think.
Well, not that I don't think you have a valid point but some very smart people have done otherwise...
"When we were working on our own startup, back in the 90s, I evolved another trick for partitioning the day. I used to program from dinner till about 3 am every day, because at night no one could interrupt me. Then I'd sleep till about 11 am, and come in and work until dinner on what I called "business stuff.""
I somewhat agree to an extent, my take on things is that a successful startup needs two founders; a technical founder to do the programming and a business development founder who possess's high amounts of confidence and a vision to push both the development and end goal of the startup.
Having said that, I'm currently a solo entrepreneur trying to balance work, life and startup all by my lonesome self because I don't know who or where to ask for help with my startup ideas with spending a lot of money.
"I somewhat agree to an extent, my take on things is that a successful startup needs two founders; a technical founder to do the programming and a business development founder who possess's high amounts of confidence and a vision to push both the development and end goal of the startup."
The biggest problem I see startups having (at least the ones I have insight into, consulting and whatnot,) is their founders are too far from the technical. I agree founding and coding is hard to manage, but without a developer on the same level with the same goals, you're shooting your business in the foot.
Hence the classic combination of a tech cofounder and a business cofounder. Or, the more usual in real life combination of two tech cofounders, one of whom actually does mostly "business stuff".
I have to disagree here. Having just come out of a failed startup, one of the (many) things that hurt us was having the primary product direction and technical expertise belong to different people.
We were racing against time and lost. A lot of time was spent transferring ideas between people, and implementing something that wasn't quite right. I can't imagine any startup in the same situation not having at least SOME similar overhead. For a small startup without funding, this can't be optimal.
I think it's more than possible to start a company as a developer, or even as the only developer. On the beginning, you probably don't have a lot of skype calls to make, or meetings to participate. On this phase, the thing that probably require most of your time is build your product.
And when you finally launch it, if you're lucky, you'll be more busy, but probably you'll also have more money, which will allow you to hire someone to help you. So you'll won't code so much as before, but if you want, you'll still have some time to do it.
The main argument against the article are the fact there's companies managed by developers who still code doing a good service to their customers: Instapaper (as far I know, Marco Arment is the only developer), 37signals (they have a lot of developers, but Jason Fried still codes), RubyMotion, among others.
Maybe this is not the easiest way, but it's definitely possible.
I disagree since a few years ago. Before i was a developer, or better said, a hacker. I wanted to solve problems. Right now, I more or less know hot to solve problems, so develop a product is kind of boring. From time to time something new comes, but is not usual.
Problem => Analyze => Solve (if makes sense to solve the problem).
After years, that is kind of repetitive.
So move up one level is thinking on products, and hacking in a more social level. Learn about usuability, psychology... how the people behave and what the people want. That are things that we the developers should know to be... Better developers.
Hacking is about understanding. Understand how the things in live work. Understanding why a product A success, and a product B fails.
What's even worse is when one of the founders can't spend time coding any more due to investor meetings and other concerns about running the business, but still thinks they know what's going on in the codebase, and demands to be able to micromanage it. I know one CTO who fought tooth and nail with multiple meetings to keep AAC compressed audio out of a codebase after agreeing to a plan to improve overall app size, not understanding that the AAC+ compatibility problems in some versions of Android didn't apply. He just didn't understand audio encoding, didn't have time to research it, but he be damned if he didn't get to decide what's used.
Just change the title to "Why CEOs shouldn't be developers". As soon as your startup has a team of people instead of just you and your buddy you can start applying this rule.
Balance is the key to any startup, the opposite side of the coin are founders who have never been in the developer's chair, which is both common and worse.
the opposite side of the coin are founders who have never been in the developer's chair, which is both common and worse.
I disagree. I've worked at a couple of startups founded or co-founded by a guy with no hands on technical experience and he was great. He came up with the ideas, found the right people (or sometimes the other way around) and then let them do what they did best, with only gentle prodding to keep everything going in the right direction.
What he had was a good high level understanding of the relevant fields, plenty of experience starting and running companies, a vast contact network, an amazing knack for raising money and was very good at getting out there and selling our product.
As a founder and programmer, I found this post really interesting and well written, but rather than lamenting about how it must be impossible to do both roles where eventually you will have to give up programming - why not just accept that it is just much harder? Also, I certainly hope that I will never spend 50% of my time pitching..
I can relate to this from working as the CTO of a company that grew too fast, and then burnt out. I like building things, and I found myself less focussed due to management and business concerns. I'm now working on other projects, with fewer management concerns, and much happier (and being paid more).
However, I think the inverse of the post's title is also true. Your founder (at least one of them), if you are doing a tech startup, should be technically competent and understand the aspects of software development that are important... including not changing design specifications every week, and knowing how to interact with clients to prevent them from growing a project's scope beyond what your small team can achieve in a reasonable time.
What I picked from it besides the main subject is this:
> "A while back it was PHP in favour of static HTML, then Python in favour of PHP. Lately it’s been Ruby on Rails or node.js in favour of Python … in the future, who knows. I hear Scala is becoming very popular"
As a Scala fan I could't be happier if it's indeed going to pick up for web dev the way Ruby and Python did (in a myriad of frameworks), but is this indeed the general sentiment nowadays? I'll be more than happy if Play framework gets some of the Rails and Django community to help it grow the way the latter two have in recent years.
[+] [-] harryh|13 years ago|reply
[+] [-] barce|13 years ago|reply
[+] [-] WestCoastJustin|13 years ago|reply
[1] https://github.com/holman/spark/blob/master/spark via ./spark 37 99 177 104 136 115 126 72 37 43 30 39 53 43 59 66 13 23 67 66 13 20 0 29 25 3 2 3 3 35 6 10 2 0 0 38 0 0 32 0
[+] [-] onewland|13 years ago|reply
[+] [-] spulec|13 years ago|reply
[+] [-] dexcs|13 years ago|reply
[+] [-] lucian303|13 years ago|reply
[+] [-] xpose2000|13 years ago|reply
I don't have meetings. I don't go to conferences. I don't pitch my company to VCs. I don't try to raise money. I don't care what other companies are doing. I don't try to use the latest tech because I'm expected to.
LAMP is fine.
I concentrate on building the product, satisfying my customers, and increasing my revenue. Everything else is bullshit.
The founder should be able to do everything. Being a developer is one of those things.
[+] [-] sojacques|13 years ago|reply
No offense, but what you call a startup might be more considered like a business by the HN crowd, and this is why you can operate this way.
Not every type of company can stay out of the now traditional pitching/VC game.
[+] [-] isalmon|13 years ago|reply
[+] [-] jorts|13 years ago|reply
[+] [-] jeepey|13 years ago|reply
[+] [-] jaytaylor|13 years ago|reply
[+] [-] bdunn|13 years ago|reply
* I don't pitch 50% of the time (0% is more accurate)
* The lights are on. With more than 200 paying customers and 20% growth month-to-month, they should stay on for quite some time.
* I know most of my customers, and tailor the product around what I learn in talking with them. Thus, customer development.
* Me, myself, and I all agree about our company's vision.
* I keep tabs on my industry by asking my customer's about their business — and it helps that I eat my own dogfood.
* I do take all responsibility.
* And I handle all support
[+] [-] Quizzy|13 years ago|reply
[+] [-] jacques_chester|13 years ago|reply
[+] [-] byoung2|13 years ago|reply
I work full time at a startup, and I have a 6 week old daughter at home, and I'm working solo on a proof-of-concept on nights and weekends. Since I've got my hands full with the baby at home, I've learned to be very efficient with my time. One decision that made things a lot easier was deciding to go with node.js. Since the entire app is written in JavaScript, I can quickly test out ideas on my phone or tablet browser using JSFiddle, and integrate it later when I have a laptop handy. Sometimes I only have an hour of uninterrupted time, but that's usually enough to write a function or two.
[+] [-] ferrouswheel|13 years ago|reply
Sometimes you need several weeks of working on the problem in this way to make progress! (e.g. machine learning improvements, distributed system design).
[+] [-] pc86|13 years ago|reply
[+] [-] jiggy2011|13 years ago|reply
Sure, if you have enough funds to buy some rockstar programmers then go for it.
Otherwise what are you going to do? Outsource it to the lowest bidder? Then spend all that time worrying if they will produce something that matches your vision and worrying about the quality.
[+] [-] soneill|13 years ago|reply
It's no different than finding a good salesman, or a good PR person, or a good anything. You can find great talent at a reasonable price if you're willing to dig. Rockstars don't always come at rockstar prices, because a lot of the time they don't even know they're a rockstar.
[+] [-] ishbits|13 years ago|reply
I was the technical co-founder. My job was to code, work with a few other people who code, and be the overall passionate guy about the quality of the code. I find it helps to have a stake holder in this position, you end up with better code, and someone who is going to take true ownership of the code.
My co-founder was a true marketing/selling machine. So it worked out for us I think.
[+] [-] zatara|13 years ago|reply
"When we were working on our own startup, back in the 90s, I evolved another trick for partitioning the day. I used to program from dinner till about 3 am every day, because at night no one could interrupt me. Then I'd sleep till about 11 am, and come in and work until dinner on what I called "business stuff.""
(http://www.paulgraham.com/makersschedule.html)
[+] [-] DigitalSea|13 years ago|reply
Having said that, I'm currently a solo entrepreneur trying to balance work, life and startup all by my lonesome self because I don't know who or where to ask for help with my startup ideas with spending a lot of money.
[+] [-] jimbokun|13 years ago|reply
A Jobs and a Woz.
[+] [-] zgohr|13 years ago|reply
[+] [-] arbuge|13 years ago|reply
[+] [-] spectre256|13 years ago|reply
We were racing against time and lost. A lot of time was spent transferring ideas between people, and implementing something that wasn't quite right. I can't imagine any startup in the same situation not having at least SOME similar overhead. For a small startup without funding, this can't be optimal.
[+] [-] elomarns|13 years ago|reply
And when you finally launch it, if you're lucky, you'll be more busy, but probably you'll also have more money, which will allow you to hire someone to help you. So you'll won't code so much as before, but if you want, you'll still have some time to do it.
The main argument against the article are the fact there's companies managed by developers who still code doing a good service to their customers: Instapaper (as far I know, Marco Arment is the only developer), 37signals (they have a lot of developers, but Jason Fried still codes), RubyMotion, among others.
Maybe this is not the easiest way, but it's definitely possible.
[+] [-] cientifico|13 years ago|reply
Problem => Analyze => Solve (if makes sense to solve the problem).
After years, that is kind of repetitive.
So move up one level is thinking on products, and hacking in a more social level. Learn about usuability, psychology... how the people behave and what the people want. That are things that we the developers should know to be... Better developers.
Hacking is about understanding. Understand how the things in live work. Understanding why a product A success, and a product B fails.
So I will say that founders should be hackers.
[+] [-] lnanek2|13 years ago|reply
[+] [-] jackbravo|13 years ago|reply
[+] [-] wyck|13 years ago|reply
[+] [-] dagw|13 years ago|reply
I disagree. I've worked at a couple of startups founded or co-founded by a guy with no hands on technical experience and he was great. He came up with the ideas, found the right people (or sometimes the other way around) and then let them do what they did best, with only gentle prodding to keep everything going in the right direction.
What he had was a good high level understanding of the relevant fields, plenty of experience starting and running companies, a vast contact network, an amazing knack for raising money and was very good at getting out there and selling our product.
[+] [-] ichirotherager|13 years ago|reply
[+] [-] alexjarvis|13 years ago|reply
[+] [-] oboizt|13 years ago|reply
[+] [-] ferrouswheel|13 years ago|reply
However, I think the inverse of the post's title is also true. Your founder (at least one of them), if you are doing a tech startup, should be technically competent and understand the aspects of software development that are important... including not changing design specifications every week, and knowing how to interact with clients to prevent them from growing a project's scope beyond what your small team can achieve in a reasonable time.
[+] [-] eranation|13 years ago|reply
> "A while back it was PHP in favour of static HTML, then Python in favour of PHP. Lately it’s been Ruby on Rails or node.js in favour of Python … in the future, who knows. I hear Scala is becoming very popular"
As a Scala fan I could't be happier if it's indeed going to pick up for web dev the way Ruby and Python did (in a myriad of frameworks), but is this indeed the general sentiment nowadays? I'll be more than happy if Play framework gets some of the Rails and Django community to help it grow the way the latter two have in recent years.