Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: Is it possible to build a company where everyone is a software engineer?
39 points by wenbin on June 3, 2015 | hide | past | favorite | 54 comments
Everyone is software engineer, some of which happens to do HR, marketing, sales, recruiting ...

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?



Let me answer with some examples from other popular niche forums:

"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...


I know of a few teams on the order of 3~5 people where that's true, but am skeptical it would make sense as something other than a very expensive statement of purpose after you get into the tens of employees.

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.


At a startup I worked for several months as a university intern, I ended up (because of my location) working out of the office with the inside sales team instead of engineering. At first it felt like I was in the wrong place, but as I got into the swing of things and really figured out how sales reps were spending their time, I realized that there was a ton of manual labor just related to bookkeeping and tracking leads that was repeated for everyone they contacted.

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.


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

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.


It's been a huge learning process for me around "the engineering side of this is relatively simple, and the non-engineering side of this is relatively simple, so they'd put two and two together themselves...right?"

But the reality is that the above is almost never what happens, even when the task required is limited to strictly marketing / sales / engineering, rather than requiring some combination of the above to be executed simultaneously and well.

If you can walk in, talk to each of the different groups involved, understand their separate needs, design a mutually acceptable solution, and then get the thing to actually be done - that is absurdly valuable, and you should bill accordingly.


This makes a great deal of sense. How would an average dev, with experience of fixing sales/marketing/etc, go about becoming this kind of consultantant?


Look through patio11's comment history and his essays on his website. He answers that and links to other answers extensively.


The question is then: If lead contacts went up by 40%, and if sales worked on commission, did you get a cut of the sales increase that happened due to your work?


Nope. I did get a 50% pay raise though for the limited contracting work I did with them after the summer was over though, which turned out to be a lot of money for a student.


I was actually just hired as an intern at an SF company and I believe my job will be very similar. Sales engineering-oriented with my tasks being mainly development-focused to automate manual processes they've been dealing with. I haven't started yet, so I don't know the full details yet. Sounds like you were able to really make the most of it. I hope I can do even half of it like that.


This is a good one! Thanks for sharing!


I like the idea of putting dedicated engineers in marketing, sales & recruiting, which should be realistic & doable. Oftentimes, you would be surprised how much manual work your non-tech coworkers are doing ...


I actually recently landed a position in the kind of environment you describe. I was told the idea is to have a full developer/engineer as part of the team, rather than needing to have that org/team always reaching out to the actual engineering group for their kind of work. Sounds interesting so far. Going to see where it takes me.


It could work ten to twenty years after they put coding in to the primary school curriculum and change the definition of software engineer to "anyone who can code and thereby learn the ability automate some tasks".


The challenge there is that tasks like marketing and sales take an immense amount of talent and experience to do well - and they gain very little from software engineering knowledge. Sure, there might be sales tools to help track progress, or marketing may be able to implement the A/B testing themselves, but realistically the real value they bring is outside the scope of engineering software.

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.


At my company, we_almost_ fit that bill. We're not small, but we're not a large team either. The company was started as a PHP development shop 15 years ago but has switched tech and brand and name and grown so much in just 10 months. We have an HR lady who is teaching herself to code, a social networking boff who started several of his own websites and owns a custom PC build shop, our marketing lady writes a lot of technical journals, the CEO/founder, co-founder, creative director and technical director all code (and have very intense backgrounds I might add), and some of our dev team are independent contractors, one of which owns a music production company on the side and is in 2 locally famous bands! :D


Awesome!


Let me be honest

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


"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.


Is it possible to build a company where everybody can sing? Write in cursive? Play the ukulele?

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)


This works in the early stages of startups.

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.


Be wary of monoculture. I know we would not be where we are now if we didn't have people with real sales experience.

Scientific background is however great whatever the position.


Sales, marketing and HR can all be done by engineers, and sometimes is (our company for example).

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.


I want to see the conjoint experiments your sofware engineer folks in marketing are doing. Would be magnificent, I'm sure.


If you're lucky enough to scale it, look to the Marine Corps. "Every Marine a Rifleman" is a close analog for a very large organization. Of course many Marines do other things, but they are all expected to be proficient riflemen.

A nice thing about studying the military is that most training material is public domain, and the pedagogy is exceptionally well worked out.


You wouldn't want your software team doing HR, recruiting, sales, etc.

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.


Many small companies are just that, a handful of developers doing all these roles. You probably also get better outcomes in a technology/software company where people are or were former engineers/programmers. There is also manager, business, advertising, design sides that would be needed within those developers.

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.


It could definitely be possible with some kind of niche technology consulting company.

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 think it could work definitely.

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.


Surely possible, and proven to work at a small scale (less than 50ppl I would say). If you have people who are not afraid of leaving their comfort zone, who like to push forward, learn new things, inspire one another and are communicative, then it turns out that you can do a lot, including marketing, sales & HR even without specialists (one thing I find crucial is outsourcing the accounting, especially if you live in a beaurocratic country).

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'm not sure about non-Engineering roles, but this somewhat reminds me of my experience interviewing with Facebook for a Network Engineer position. Traditionally, Network Engineers are experienced with Vendor provided solutions (Juniper, Cisco, etc) and most interviews would cover experience implementing/supporting different types of architecture using these Vendor provided solutions. Facebook Engineering exemplified a refreshing new approach where Network Engineers are also Software Developers, and the focus/goal is to proactively correct and automate Network Engineer tasks. This means there is less time fighting fires, and more time building solutions. I found this to be an interesting new approach (for me anyway). So conceptually, I could see this working; an HR person that can write the company HR tools, marketing and sales people that write their own tools, etc.


I own a company where everyone is a software engineer. I'm currently the only employee, and I don't imagine I could scale to much more than one or two other people before I had to hire non-software engineers.

I also think that a marketing department full of software engineers would be a bit of disaster.


Related with this: I found out last week that a javascript developer (http://julian.com | @shapiro) is vp of marketing in webflow and I had a similar reaction, 'wait a js dev in a marketing position?!'.

Amazeballs!


Is outsourcing allowed? Lots of SaaS options for HR (benefits management), payroll, lead generation, etc. Plus contractors/freelance service providers. Enough so that a CEO could handle that for a small team and not take much of his/her time.


Yes, but at least some people will have to juggle hats a lot. And at a certain scale they'll probably spend more time not being a software engineer than being one, up to the point where it doesn't really make sense to call them software engineers at all.

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.


No. At a certain point it won't make sense for a software engineer to code and also to manage the books, recruit, do sales, or manage a marketing budget.

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.


It's not unheard of for a single person to be responsible for a product/company. Sublime text, IDA Pro, Pinboard.in and there are quite a few more examples that's handled by a single person. As Internet and its effect grows, it's more likely to see these type of products where an individual or a group of few wear many hats.


Speaking from personal experience, I'd second what people are saying about doing this on a very small scale. However, there are soft skills engineers really don't have, nor want. Running a business "where everyone is a software engineer" is about so much more than the type of employee you hire.


I think Engineers could do HR, marketing, sales etc. having said that how many such engineers would you be able to find? There are two things here: 1. How would you scale based on the question above? 2. How would you pay them? (For eg. an Engineer doing HR would be paid like an Engineer or like an HR?)


neither scenario for 2 makes sense though. why would you pay an engineering salary for HR work? and, why would an engineer want to work for an HR salary? and if you're hiring an engineer and paying them like an engineer, would they really want to be doing HR work?

although now that i think of it... if you pay me my salary i'd might be happy to switch to HR...


This is more a question of supply and demand. If you consider your problem to be the following:

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.


Sounds like a dream. In all companies I've worked at everyone outside engineering has been useless.


It doesn't seem like an obvious route to success.

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.



Are you talking about software engineers who stop doing software engineering to start doing the other things, or about people who are doing both software engineering and the other things?



AIUI Facebook made a point of hiring only programmers in their early stages, even for roles that weren't primarily programming.


As far as I know, whatsapp had very few employees (about 50). I wonder how many of them were non-technical


Why would you want to? Makes no sense.


The only reason I can think of is OP wants to avoid the inevitable drop in prestige and decision-making power once the suits roll in and regard every engineer in the firm as an interchangeable cog in the machine. A better question is "is it possible to build a company with engineers in executive positions?" and the answer is "yes, but it might not be enough, cf Google."


Seems like it would be expensive, and hard to maintain beyond a very small number of employees.


Sure, but it seems terribly near-sighted to me. Why would you want to?


Small multidisciplinary teams FTW.


I'm an example in the sense that I run a company all by myself, where my service is custom software development, but I also do all my own sales, web design and so on.

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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: