Careers: Project Management
The project manager is in charge of implementing the solutions.
They are responsible for the design, the development and the technical quality of the solution.
In regards to IT, the project manager is the project leader. They manage and coordinate the daily tasks for their team that consists in design and development engineers or programmer-analysts.
The project manager reports directly to the project owner
Even though this role is difficult to describe, it can be said that an architect is at the crossroad of the project leader, development teams, the client and external systems architects. The architect has to define the map of the information system (both software and hardware).
Their technical knowledge enables them to choose solutions, develop prototypes and even occasionally join the development team.
They must ensure a technological monitoring, provide training on chosen architecture and report on their choices.
The software architect is an IT organizing expert who is in charge of creating the software model architecture. Their job differs from that of a computer architect which is more hardware oriented.
In smaller projects, the role of the software architect can double with that of either analyst, project leader or the developer in charge of the project.
In larger companies, it is possible that a chief architect be responsible for the enforcement of architectural standards for all the projects and also manage company-wide reuse of software components.
In very large-scale projects, the software architect can be assisted of sub-architects, who each are responsible for the architecture development of independent software components.
Design and development engineer
To design, develop and follow-up on the system’s applications.
- To translate functional needs into technical data and participate in the analysis of users’ needs
- To study opportunities and technological feasibility of the application.
- To design and draft contractual specifications from the functional specifications.
Design and development of the architecture of a software.
- Analyze and develop the components using the appropriate languages (C++, C, Java…).
- Ensure software development and realization (prototypes et modules).
- Adapt and set up the chosen business software.
- Harmonize and industrialize all components and applications.
Tests and delivery:
- Define protocols and test scenarios.
- Test, identify and resolve possible malfunctions of the software.
- Analyze results and produce test reports.
- Verify software compliance to the client’s specifications.
System implementation and follow-up of requirements:
- Test the project’s final version in client’s integrated pilot sites.
- Mass deploy the product among users.
- Software maintenance: upgrading and corrective maintenance.
The role of an analyst (also known as ‘design engineer’) is to consider different ways of implementing specific IT requirements within an information system, under the responsibility of the project leader.
An IT requirement may be:
- A request from a user of the information system, usually for the purpose of performance or ergonomic enhancement;
- The implementation a new IS feature;
- The integration of an external constraint (regulation);
- The correction of a malfunction in the information system.
Role of the analyst:
- To evaluate feasibility of the need;
- To identify the impacts on the system ;
- To propose various solutions ;
- To implement the chosen solution (or coordinate its implementation by a developer);
- To oversee the integration of said solution in the Information system.
Depending on which stage of the project the analyst intervenes on and depending on their scope, they will act as functional analyst, technical analyst or system analyst, each of these functions having a specific role in the project.
Said different roles can be performed by one or several distinct people according to the context.
Under management by the project leader who defines the client’s need into specification documents (functional analysis), the developer (also known as Programmer-Analyst or Development-Analyst) identifies technical solutions and creates a model (organic analysis) of the software to be.
Then they create the required code for said software to operate (software development), participate in trials, draft technical documents, follow-up and provide maintenance for the product.
Projects are usually a collaboration between several developers under the project leader’s responsibility. They each are in charge of a part of the project.
The developer can also be in contact with other collaborators like sales representatives who define with the customers, the project’s final content, or the graphic designers who define the aspect and ergonomics of said project.
From specifications (software requirement specifications – SRS or user requirement specifications), the developer must define the software’s technical specifications : data structure, communication between modules, etc.
They set up tests that will help detect non-compliance, bugs and non-regression.
They also perform maintenance, which consists in fixing bugs after the software delivery (corrective maintenance), but also add improvements (upgrading maintenance).
All the aspects of such position also belong in many production processes.
The integration engineer is in charge of:
- Integrating the work of several developer teams and managing all different components in configuration.
- Integrating third-party editor’s tools, software and business software into the information system.
- Delivering the product to the quality team testers on a rather regular basis. The engineer performs integration and support of software solution in the system.
- Supports Project Owner in:
process study, software integration
- Acts as second level of support for both internal and external development teams.
- Takes part in permanent technological watch related to functional solutions
- Helps on-site deployment, which implies customization of local conditions in the case of a complex integration (ex: international projects).
Test and validation engineer
The test and validation engineer is in charge of testing the software made by the developers and to regularly deliver a test report about the errors found in the product.
Said errors are called « bugs », and their description must contain a description of the necessary steps in order to replay the bug.
Testers represent and act as client or final users and therefore must verify the software runs smoothly. This is called the acceptance testing.
Once the bugs have been fixed by developers, non-regression tests must be carried out for subsequent software versions, in order to make sure the bug is fixed and that no other bug has spawned.
Testers verify that the software runs as per the specifications.