In a previous post, I started talking about the technical roles an organization would need to fill as a prelude to discussing whether the organization needed an actual CTO.

The roles I previously discussed were:

• Technical Business Analyst
• Software Architect
• Infrastructure Architect
• UX/UI Designer
• Developer

In this post, I’ll talk about:

• Technical Project Manager
• QA Engineer
• System Administrator/Database Administrator/Network Administrator
• Technical Product Evangelist
• CTO

Let’s get started!

• Technical Project Manager

A software development project requires a balance between technical and project management skills. The TPM oversees and manages most aspects of the requirement analysis, specification development, coding/development, testing and implementation processes.

• QA Engineer

From https://www.sokanu.com/careers/software-quality-assurance-engineer/

Quality Assurance – A software quality assurance engineer is someone who monitors every phase of the software development process so as to ensure design quality, making sure that the software adheres to the standards set by the development company. Software quality assurance engineers make sure that new products work before they are released to the public.

• System Administrator/Database Administrator/Network Administrator

From Wikipedia

A system administrator, or sysadmin, is a person who is responsible for the upkeep, configuration, and reliable operation of computer systems; especially multi-user computers, such as servers.
A database administrator (DBA) maintains a database system, and is responsible for the integrity of the data and the efficiency and performance of the system.
A network administrator maintains network infrastructure such as switches and routers, and diagnoses problems with these or with the behavior of network-attached computers.

These are the people who keep the servers, databases and network running smoothly. They initially implement the Hardware Architect’s design, but thereafter they are responsible for keeping things running.

• Technical Product Evangelist

From Wikipedia – https://en.wikipedia.org/wiki/Technology_evangelist

“An evangelist promotes the use of a particular product or technology through talks, articles, blogging, user demonstrations, recorded demonstrations, or the creation of sample projects.”

Essentially, this person promotes the product and the technology used by the product, both inside and outside of the organization.

• CTO

Even if I’m talking about whether you need to hire a CTO, there are some CTO like roles or functions that someone needs to address in a startup. These would include the following:

o Estimate development time and costs. Developers and Project Managers have some of these skills, but for larger projects you may need someone with a fair amount of experience with this.

o Work with architects to include provisions for scalability and future functions. Knowing what the business objectives and growth plans are and planning for that growth in the initial design can prevent costly and time consuming efforts later on. Again, experience helps with this function.

o Determine features and functionality for MVP – 80% of the functionality for 20% of the time and cost. Once again, experience and seniority are needed to be able to identify what functionality is important, but you also need someone with the credibility to get the business people to agree to an initial reduced set of functionality.

In my next post I’ll cover whether you need to hire a CTO or just hire the a la carte skill sets to fulfill these roles.

The answer to that question is ‘It depends.’

So, while I can’t directly answer that question for you, I can tell you some of the roles that your startup needs:

• Technical Business Analyst
• Software Architect
• Infrastructure Architect
• UX/UI Designer
• Developer(s)
• Project Manager
• QA Engineer
• System Administrator/Database Administrator/Network Administrator
• CTO
• Technical Product Evangelist

So, the real questions are:

• Who is going to fulfill these roles?
• How long will you need a person fulfilling a given role?
• Can some of these roles be performed by the same person?

In this post I will talk about some of the basic functions of these roles and in a following post I will discuss in detail issues to consider in whether you need a CTO.

• Technical Business Analyst

http://www.wisegeek.com/what-does-a-technical-business-analyst-do.htm defines a Technical Business Analyst as:

“A technical business analyst is a business professional who understands both business and IT. She typically works as the liaison between the business team and the technical team to assist in developing requirements for the business.
The technical business analyst is typically part of an IT organization. She normally reports to an IT project manager or director of an IT department. This individual is responsible for the documentation of requirements as defined by the business users. The business analyst must ensure that designs meet a company’s technical standards.”

Essentially, a Technical Business Analyst works in conjunction with the business team in developing business related technical requirements. These skills are essential in the early stages of product development and in any on-going feature and functionality additions.

• Software Architect

From Wikipedia

“A software architect is a software expert who makes high-level design choices and dictates technical standards, including software coding standards, tools, and platforms.”

As you begin the software development process, you will need someone with Software Architect skills to select the tools, development frameworks, databases, etc. that best suit your business needs currently and with the capability of growing with the organization in the future.

• Infrastructure Architect

An Infrastructure Architect leads the hardware design. I look at this person to analyze the software application and business requirements to develop a hardware/hosting and network plan to support those requirements based upon planned user loads and growth.

• UX/UI Designer

User Experience/User Interface Designer(s) – This position and skill set has to do with the usability and accessibility of an application. User interface has to do with understanding user needs. Both of these have to do with the visual design of the application. Most developers have some basic knowledge of these skills, but I wouldn’t rely on a developer if I had a complex site that needed to be built.

• Developer(s)

The software developers. Generally thought of as the people who do the actual coding.

I’ll continue discussing roles in a follow-on post.