Often have a start-up company boss to visit me, often will please give me a word: Help me find a CTO.
I've explained so much, so I want to write this down and see what you really need.
First, senior programmer
If you are a newly-founded company , the company does not have a full-time product manager and project Manager, you are the company's product manager, if you are dissatisfied with your current developer capabilities, then you only need a senior programmer.
You define the function, you do the plan to advance and manage, he can take 1-2 deputy to the function that you plan to realize, he is the main work person, has the technical difficulty also is he to personally conquer solves.
So, a senior programmer, his responsibilities are clear:
1, responsible for the core complex functions of the implementation of the design, coding implementation
2, responsible for the analysis and diagnosis of difficult bugs, solve
Second, research and development leader
The company grew up a little. If you have a research and development team (with product/dev/test), you have a main product, and your research and development team is less than 15 people , then you need a research and development leader.
Because you already have 1-2 senior programmers, core puzzles and core function development progress and quality assurance, can already be solved by their own ability. So what do you need to develop leader for?
The responsibilities of research and development leader are:
1, Team task management: Development Workload assessment, development task allocation
2, Team production Quality Improvement: code review, Development risk identification/reporting/coordination resolution
3, Team Productivity Improvement: Code template development and promotion, best practice specification Summary and promotion, automation research and development tools research and development and promotion
4, team professional ability to improve: recruitment interview, new guidance, the leadership of the summary improvement
Third, technical director
If you have more than 20 research and development teams , and you have multiple sets of main product lines , you may already have a number of research and development leader, then you need a technical director.
Responsibilities of the technical Director:
1, set up the Platform Research and Development department, build a public technology platform to facilitate the development of the above product line.
2, through the technical platform, through the authority of the senior level, management and coordination of each product line group. Now every product line should have qualified research and development leader and senior programmer.
Iv. chief Architect
Because you already have the technical director, so the technology platform is good. Technical platform and product line of coordination and interaction, but also the total supervision of technology.
Because you already have a high-level programmer for each product line, they are able to maintain the development progress and code quality of the core function module by personal ability.
Because you already have the research and development leader, so code template development and promotion, best practice specification Summary and promotion, these things have been in the daily according to the responsibilities of the job.
So, when do you need the chief architect?
In other words, the management family and the professional family need to be detached . You will find that at this stage your research and development team is more than 100来, and someone needs to focus on architecture planning, design, and routine maintenance . Do not let the director of research and development leader and management and do the technology of the brain are thrown to them, you wait for the total outcome output. That's not right.
Need to peel off responsibility from the technical director and the development leader. let the technical director and research and development leader Project Management (management family), the various modules between the architectural design work, independent of a position, is the architect , to be responsible.
Each product line has an architect and a technology platform architect in the Technology platform Department. The architectural interaction between the technology platform and the business product line, then, is the convergence of the chief architect. It is the chief architect's job to enable the technology platform architecture to be mutually supportive of the architecture of the product business system.
The architects ' responsibilities are:
1, architecture Analysis: from the functional requirements to identify the need for increased non-functional requirements, to meet the performance, scalability, decoupling/integration, security, operational dimension, high availability, easy to deploy, easy to update. and to identify the non-functional requirements, but also to do technology selection, technical framework risk identification, technical implementation workload assessment
2, architecture design and implementation: Non-functional modules of the architecture design, interface design, code implementation. So it is necessary to have the code to achieve the ability to have an architectural thinking engineer, do not need to draw PPT engineer
3, Business Architecture design and implementation: the need for cross-system interface identification, implementation, maintenance, it is possible to write public code class library for analysis, identification, interface design, implementation, change maintenance.
4. Refactoring: Architects often need to do bug analysis, non-templating, and public class library code checks to find out how much code is rotting to find out what else is not well architected and well-crafted code design. So refactoring is a recurring maintenance, not to save to a moment of big surgery, or even overturn redo, it is not called refactoring.
V. CTO
You'll need a real CTO if you set up the architect team and go a long way. Otherwise, you start with the real CTO, he's not satisfied, and your expectations are not right. Now your expectations are right, and his competency model matches exactly what you expect, and you can match him to what he wants.
Some companies have the vice president of software systems products, but also the vice president of software Systems technology, and the vice president of software Systems Technology called CTO, Software Systems Products VP is called Vice President of products. It's weird.
The real CTO is the unified management of software products and technologies.
What he does is a combination of business, product, technology, management, and teamwork.
The role of CTO:
1, Achievement: insight into customer needs, capture business opportunities, planning technology products, through the technical product leadership business growth, have clear strategic planning, main direction, lead the team to achieve organizational goals
2, the forefront and the platform: to this research and development scale scale, must have a dedicated team to do technology application innovation exploration and cutting-edge technology pre-research. and the technical Platform team, application research and development team to form a good linkage, so that the innovative prototype pilot can be smoothly integrated into the commercial platform to enable the use of large-scale application development line. A lot of cutting-edge exploration is dead in the interior, the pilot is stalled, which requires the CTO to do a good job of the overall cohesion.
3, research and development process management: Standing in the global position to improve business processes end-to-end, to facilitate business growth
4, organization and talent Construction: the heritage of corporate culture and values, research and development of professional team echelon construction, research and Development management team Echelon system construction, create innovative excitation mechanism, inspire research and development people innovation forward, inspire the dark horse people stand out
Transfer from Arjuna said that Zhu produced must be a boutique
Go The difference between CTO, technical director, and chief architect