An article in the "Programmer", Zhang Haiying's "Carryman and Software Project Manager", very image, said a story of programmers. The article points out a programmer's career choice, and future development direction.
In the author's work environment, this may see such a "route", junior programmer -> Advanced programmer -> project manager. This is indeed a way of development, but it is definitely not the only one.
The team organization structure of software development still has certain regularities, whether or not the organizational structure is reasonable, and it is also determined whether the organization can play the greatest abilities in the organization.
For a medium-scale development team (10-50 people), from management can be divided into two routes: technical management and project management. In one organization, the highest position of technical management is "software architect"; the highest position of project management is actually a senior manager, and all project managers report to him.
Online management routes, there can be such an organization distribution:
The "Core Technology Group" is responsible for the development of the core library of the project, providing the basic technical support of the project team, and complete the "dial" responsibility of "repairing the car". The core technical group directly deserves the general responsibility of technology: architect reporting, and is responsible for implementing the technical idea of the architect. From the tissue structure, the core technical group is not directly attributable to the project itself, and members are consisting of senior senior programmers, which is the "Master of the Car".
In the project team, it is responsible for coordinating the core technical group and the project team primary programmer "Project Group Leader". This position is generally served by senior programmers. This person must do not only need technical understanding. Technical learning ability, there must be sufficient communication and coordination capabilities. In such an organizational structure, the role of the project team leader is actually critical. He must cope with the pressure from 3 aspects, so as his leadership "project manager" must have enough understanding and support to him, helping him coordinate each The interest relationship of the party, this is also one of the responsibilities of the project manager.
Such a structure, can also be more obvious to discover the direction of the programmer itself. If you work in your position for a long position in the project team, you can choose 2 development directions according to your own specialties: enter the "core technology group" Continue technology research and development career, or choose to rise as a project manager, enter management career.
It is indeed two kinds of careers that require different capabilities, and there should be different options. When the primary programmer has accumulated a certain experience after several years, such experience will also come from different aspects, including technical experience and management experience, just look at your character, see what is more suitable, There is always a direction that can be developed.