Job Roles in Software Development Process....

Started by
4 comments, last by JohnBolton 16 years, 6 months ago
This is more of an extension of the "What is a Software Engineering" thread. Mith is a Software Architect. Though it sounds like what he does is the job of Software Engineer or Senior Software Developer. Granted I'm not sure what the clear definitions of the titles are myself. However, there's been much debate about Software Developer (include programmer and coder in that group) vs. Software Engineering. I would think that these titles and job roles would be analogous to Architect, Civil Engineer, and Construction Worker. But there seems to be (in my mind) too much overlap between Software Architect and Software Engineer. Anyone care to delineate the differences? I believe that this blurriness (intentional or otherwise) is a big part of the problem in software development. No one knows what their job entails, makes them responsible for, or even if it's equivalent to the same job at another company. Rough times ahead.

Beginner in Game Development?  Read here. And read here.

 

Advertisement
Quote:Original post by Alpha_ProgDes
However, there's been much debate about Software Developer (include programmer and coder in that group) vs. Software Engineering. I would think that these titles and job roles would be analogous to Architect, Civil Engineer, and Construction Worker.

They're not. Just like software is neither analogous to roads, bridges nor houses.

Quote:But there seems to be (in my mind) too much overlap between Software Architect and Software Engineer. Anyone care to delineate the differences?

The terms are meaningless and arbitrary. How do you differentiate between them?

Quote:I believe that this blurriness (intentional or otherwise) is a big part of the problem in software development.

It isn't - or even more correctly, what "problem"?
While job functions will vary greatly from job to job...

In my experience, a software architect is only involved in the very beginning of the life-cycle. They assist product managers in developing product ideas. They do feasibility testing on prototypes. They perform research on third party libraries to see if/how they can be used. They then provide the high level architecture for the product, defining module interfaces and interaction. They'll possibly implement some difficult or highly important module of it.

The software engineers then takeover and implement the product while the architect proceeds to the next product or major revision. They'll make the more nitty-gritty engineering design docs that spell out how each module will aim to implement the requirements. They'll write the implementation and do the integration. They'll handle the bug fixes and usually the minor releases.


To my mind:
Architect is at the top of the tree. He takes customer requirements and figures out core use cases from them. He works almost entirely in documentation, UML and other diagrams, barely touching code.
The formal Architect's definition:

The Architect leads and coordinates the activities and tecs docs through the proyect. His vision is general along the proyect, not into deep like is the case of the Analist. He set the structure for each point of architecture's view: the descomposition, the gruoping of elements and the interfaces between groups.
As system disigner defines responsabilities, functions, atributes and relantions of one or severals subsistems and determinates how this ones adjust to the implementation environment.

Schedules and leads the formals verifications of the "Disign Model" doc.
Schedules and leads the formals verifications of the software architerture in general.

It is important to say that the architect is the responsable for the sistem design, but this does not implies that this activitie must be done only by him.

The analists are kinda analists-disigners and must colaborate to the sistem disign, and in great part as a Architec's asistents (if this role has been added).

Role Profile:
The Architect or the architecture team must have knowledge on the following subjetcts:

* Knowledge of general configuration control


*Use cases modelated technics


*sistem requerimients


*Software desings technics


*The technologia in which software will be implemented


The Architect or the architecture team must combinated on the following subjetcts:

*Domine problem experiens (which is got understanding the requerimients) and software engeniering. If it is a team, the qualities can be distribuied among members, but at leas one of the architects must have a global vision of the proyect.

*Lidership and leads to manages the tecnical esforce through the differents teams and take criticals desitions under pression. The architect and the administrator must work together, the architect gaving tecnicals knowlodges and de administrator gaving administrating knowledge. The architect must have the authority to take tecnicals desitions.

*Comunication to win the belief, persuid, motive un lead.

Activities whicha are responsabilities:

*Disign the system

*Describe the architeture

*Tecnical revision

*Comunicate the design to the implementers (programmers)

* Define the reach of the system

Other roles on software development:
-User Interface lead
-Analist
-Implementers
-Verifier
-Quality veriier
-Configuration
-Techs espcialists
-Administrator

I hope it helps.
Greetings
Vsk.
Software Engineer, Programmer, Software Architect, Software Developer, etc...

These are just job titles. Their meanings vary from company to company so there is no point in coming up with comprehensive definitions.

Is it necessary to come up with comprehensive definitions for the job titles manager, supervisor, and lead? How about secretary and administrative assistant? Assistant producer and associate producer?
John BoltonLocomotive Games (THQ)Current Project: Destroy All Humans (Wii). IN STORES NOW!

This topic is closed to new replies.

Advertisement