Let’s play what if. “What if I started a software development company tomorrow. What would it look like?”
Goals and Objectives. First you have to decide what you are doing.
- Likely this company will be focused on a single industry (to start with) and the team should be familiar with that.
- Then we need to know if we are starting with revenue or starting from scratch. I’ll assume for now that we’re starting with some revenue opportunities because that makes it a bit easier (maybe we’re a couple of years in).
- Then we have to assume flexibility is of incredible importance. No software company ever becomes what it sets out to be. They must adapt and change given the climate they find themselves within.
Designing the organization, you have to start at the top. Rarely do you have a single person that can do it all. It takes a team to really pull everything together.
- 1 person in charge of client sales and partnering. This person is responsible for getting the pulse of the market and selling the software and services.
- 1 person in charge of system architecture. This person is responsible for ensuring that the methods, tools and code is designed flexibly given current and future needs and is consistently used.
- 1 person in charge of operations. This person is responsible for collecting and creating the business requirements and working with the development teams to turn those requirements into workable programs. They must have an understanding of both the industry and software.
Each of the above then has a team that they are responsible for. Let’s simply call them:
- Sales & Marketing – relaying the message. This is all part of revenue generation.
- Development & Innovation – all that goes into creating systems. This is anything necessary for the creation of the tools and systems. Included here would also be Graphics, UI, UX, and branding. Typically those would be marketing but in reality the tools should be completely in sync with the message or a disconnect occurs.
- Delivery & Support – delivering and maintaining solutions. The teams that work with clients post sales to implement solutions. Also includes the team that support on-going efforts such as help desk.
You’ll notice a handful of abnormalities from how most companies structure themselves in the technology space.
- There’s no “engineering” function. Engineering is not a function, it is a practice. This should be incorporated into everything that is done – including sales. Good practices are a must.
- 3 people at the top seems like a lot off the bat. While theoretically you could run this with fewer, it’s important to remember that innovation doesn’t just come from one place – it can come from anywhere. Putting a single person in charge means that most innovation will be either market-driven or software-driven (as these are the two sexiest functions). But one or the other typically dominates a company’s early life.
- Hardware is not directly discussed. Hardware is difficult – servers, data centers, backups, disaster recovery, etc. These live in all worlds and must be part of the business itself. Like engineering these must be organizational decisions that may vary given the situation. This is probably the first function to split off on its own after growth is achieved.
- No titles were mentioned. Titles are stupid and pointless. They only serve to consolidate power, rank and position which isn’t important early on in the life of an agile group.
The realities are, this plan would fall apart quickly given any particular industry’s realities and how sales were driven initially (products vs. services). But the goal is to create something flexible enough that can adapt to early changing conditions. This, I believe, is the best flexibility available while keeping final decisions focused to the smallest possible set of people.