Ask HN: Is it possible to build a company where everyone is a software engineer?
Small team. Move fast. Automate as many things as possible (software is eating the world ...)
I know, this is kind of idealism. But, seriously, any success example?
Small team. Move fast. Automate as many things as possible (software is eating the world ...)
I know, this is kind of idealism. But, seriously, any success example?
"Ask accountingnews: Is it possible to build an accounting firm where everyone is an accountant?"
"Ask shockedhackers: Is it possible to build an electrical business where everyone is an electrician?"
"Ask housebuilders: Is it possible to build a home construction business where everyone is a carpenter?"
etc.
At some very very small scale, sure, but usually it's because of necessity, not because it's a good way to do things. Specialization is awesome! Having people in your company that are very very good at particular aspects of your business is a huge advantage over all the poor saps that are trying to wing it with a bunch of folks that don't really know what they're doing when it comes to marketing, sales, design, copywriting, accounting, law...
As an intermediate step, I'd like to see more companies actually put 1+ dedicated engineers on permanent assignment in marketing, sales (preferably not solely as sales engineers), and recruiting. Most SaaS companies that I've worked with which have, say, 20+ engineers have not a single one assigned permanently to those three jobs. Great news for me back when I was consulting, not so great news for their long-term results.
I asked my direct boss's permission to be officially moved to the sales team, and spent most of that summer developing a custom CRM that facilitated the flow the sales staff used. When it was finished, the average number of leads contacted per associate increased 40% basically overnight, dramatically affecting the growth rate of the company (and the sales staff absolutely loved me).
Any software developer could have built what I did, and had the company realized what they were missing I'm sure they would have got one of their "real" developers to spend a couple of weeks and probably put something together better than what my intern-self was capable of. The value I added in that situation wasn't my engineering prowess, but rather my ability to see exactly what was needed and build the right tool for the job.
Unless you have personal knowledge that that actually happened, I will bet you dinner that it did not. Yes, it is absolutely the case that it would have been in their best interest to do it. No, software companies cannot routinely self-motivate to actually do this.
Great news for anybody here, though: if you can unbork sales/marketing/etc for a software company that ability is quite lucrative indeed as a consultant.
The time it cost them to be software engineers is time they wouldn't have spent becoming better at sales/marketing, so your company would be in a disadvantage in the market. Even genius engineers can't overcome bad sales or marketing.
The non-sw knowledge of your average Sw.Eng. is abysmal, even though on HN there are exceptions (sometimes, surprisingly)
At the same time, the "I think I can do it!" spirit is high on Sw.Engs.
So you'll have a lot of people thinking they can do "HR, marketing, sales, recruiting" while fumbling at it.
Here's the simple fact (and even then): beyond a small scale it's easier and cheaper to have somebody else doing it.
Especially for things like accounting, legal, HR (Payroll/recruiting) etc.
Possible profit of your time per hour doing your specialty: $lots
Possible profit of your time per hour doing something foreign to you: $0 to negative
And the negative can be a very large negative, resulting in civil or criminal liabilities:
- If you screw up a sensitive HR situation (e.g., ignoring a sexual harassment complaint), an employee might sue your company for millions of dollars.
- If you screw up your accounting you might get a letter from the IRS saying you owe them thousands in back taxes and penalties. If you fail to send the IRS the withholding tax you deducted from your employees' paychecks, you could face criminal charges.
- If you screw up your accounting and don't have enough cash left at the end of the month to pay your payroll, rent, utilities, etc., you could go bankrupt.
Sure thing. The question is: why?
Frankly I think such a company makes a lot of sense. It's easier to teach a software engineer management than it is a manger engineering. That's because software engineers are paid to learn all sorts of other domains as part of their work, whereas other folks get into a certain domain and stay there.
One of the key reasons such a company makes a lot of sense is that whatever you do, you should be looking to automate it. Part of building a company is this tension between forming a business model and codifying a business engine. Folks should be good at both parts of that.
The problem is, the education system wants to stick people in little buckets. Modern education is full of people who are a mile deep, but only an inch wide. So the trick is finding people with broad life experiences and multiple active interests that span much more than just software engineering. Also folks with a lot of different worldviews and personality types, if you want you team to sizzle. Putting all of that criteria together in one place by design can be very tough, if not impossible. (But it happens a lot by accident)
When it starts to fall apart is when you scale - you need to switch from generalist to specialist roles very quickly. The person managing your sales now is likely not going to have the experience to build out a dedicated sales force (when you reach this point). It's the same for marketing, HR, design etc.
These 'titles' will require full-time dedication one day, which would require your current team to give up their engineering tasks. I'm not sure they'd be prepared to do that.
Scientific background is however great whatever the position.
But you'll run into a roadblock with finance. Not many engineers knows in the inn's and out's of tax law, GAAP or financial instruments available to a company.
But would you really want all your people to be engineers, awfully expensive and wasteful to engineering experience for tasks not at all related to engineering.
A nice thing about studying the military is that most training material is public domain, and the pedagogy is exceptionally well worked out.
The mental dislocation that comes from switching roles, having to maintain the tree of work in your brain for each, and being able to switch on and off at any given moment (sales won't wait, you have to take/make that call) - will severely reduce the productivity of a software engineer.
If you really have to stretch, outsource some tasks. If you can't afford to, then that's a different issue.
If you absolutely had to do it in-house, then make it everyone sells until you can hire a dedicated sales person. This aligns everyone in the sell or die box together, shares the responsibility, and forces everyone to really understand the product they're making from all angles.
Part of the reason small companies do better is they are usually people that have worked in those fields deeply.
This also works with other specialties. For instance I bet Neill Blomkamp runs the 3d animation/art side of his movies really well because he was one for so long. There might not be a better 3d art/direction currently in film because he has such experience there.
I'm limiting it to niche technologies because, like others have mentioned, operating at any significant scale will eventually necessitate specialization, even for a consulting company (marketing to acquire customers, designers to build good looking software, managers to shield developers from abrasive clients, etc).
I know a small team for mobile game development which has around 10 people, 7 developers and 3 designers.
This small team run pretty well at the moment.
At rspective (http://www.rspective.com/#team) we are 11 people, _everybody_ is a software dev with strong technical background. E.g. we get lots of sale opportunities despite the fact that no-one in the team has any real experience with sales. We hire people by ourselves. We run marketing actions/campaigns. We are pragmatic, we figure out how to do things on our own. 2 years on the market and it works out perfectly for us so far.
I also think that a marketing department full of software engineers would be a bit of disaster.
Amazeballs!
The reason most companies have dedicated employees is that it's very hard to be a generalist and stay on top of everything you do. It's more efficient to specialise and become much better at a handful of things instead of being barely competent at everything.
You'll find that as you grow it's best to maximize the time people can spend on what they are best at. Maybe the leadership could all have engineering backgrounds, but it'd be dumb to make them both engineers and in charge of some non-engineering thing at the same time.
although now that i think of it... if you pay me my salary i'd might be happy to switch to HR...
You need the following amount of work done per week: Accounting: 40 hrs HR: 40 hrs Marketing: 80 hrs Sales: 160 hours Software Development: 160 hours
Your job is to now cover these hours in the most efficient way possible.
It feels like you wouldn't be getting as much efficiency out of a company where many people were learning on the job, or executing processes that were very dissimilar to the sort of work they typically enjoyed.
It would not be hard for someone like myself to team up with several colleagues.
Even if someone devotes their day to sales, if they are selling software it is helpful for them to have some experience as coders.
"Small team. Move fast." An Apple Developer Evangelist visited Working Software one day at the time we had about ten employees. She was overcome with jealousy at our ability to quickly respond to changing market conditions. (At Apple, every new product, and many new releases of existing product require sign-off on an 'Engineering Requirements Specification' or 'ERS'. While the ERS is generally a good idea, at Working Software I could just say 'Hey Dave I have this idea for a new product - OK if I write it?')
Where you find more-specialized staff is commonly with larger companies. A very serious problem I see is that marketing people don't have the first clue about web design.