32
CEN 4021 9 th Lecture CEN 4021 CEN 4021 Software Engineering II Software Engineering II Instructor: Masoud Sadjadi http://www.cs.fiu.edu/~sadjadi/ [email protected] Software Project Planning (POMA) Organizing

CEN 4021 9 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/ [email protected] Software Project Planning

Embed Size (px)

Citation preview

CEN 4021 9th Lecture

CEN 4021 CEN 4021 Software Engineering II Software Engineering II

Instructor: Masoud Sadjadi

http://www.cs.fiu.edu/~sadjadi/

[email protected]

Software Project Planning (POMA)Organizing

9th LectureCEN 4021: Software Engineering II

AcknowledgementsAcknowledgements

Dr. Onyeka Ezenwoye

Dr. Peter Clarke

2

9th LectureCEN 4021: Software Engineering II

AgendaAgenda

Software Project Planning (POMA)– Organizing

Human resources

9th LectureCEN 4021: Software Engineering II

OrganizationOrganization

Construct a software development, support, and service organization based on the project plan.

Activities include:– Acquiring various skilled individuals needed for the project.

– Obtaining the tools to support the process and methodologies.

– Creating a set of well-defined metrics to track and gauge the project.

9th LectureCEN 4021: Software Engineering II

Human ResourcesHuman Resources

Possible software organizational structures– Software development organization– Software support organization

Preparations to acquire human resources– Recruiting, hiring

Projects require– large number of people with range of skills.– Multiple teams with specialized skills (e.g., testing,

installation). Personnel hiring may be done in parallel with

preparing organizational structure. Organizing groups require understanding of project

plan.

9th LectureCEN 4021: Software Engineering II

Project Management

Database Management Application Design Build/Packaging

Tools SupportApplication ManagementUser Interface Design

Process and MeasurementApplications TestingRequirements Analysis

System Design Systems Testing

Publication and Information Design

Publication and InformationDevelopment

Fig. 6.1 General Software Project Organization

9th LectureCEN 4021: Software Engineering II

Software Development Software Development StructuresStructures

General software development organization. An implementation-independent general organization that includes all the major activities required to develop software artifacts, from inception to release. The specific implementation details such as relationships among activities, expected sourcing of the people, or the deployed organizational structure are added onto the general organization.

9th LectureCEN 4021: Software Engineering II

Software Development Software Development StructuresStructures

• Refining the General Organizational structure

1. Matrix

2. Hierarchical Orientation

3. Functional Orientation

4. Highly Specialized Organization

9th LectureCEN 4021: Software Engineering II

Matrix vs. Hierarchical Matrix vs. Hierarchical OrientationOrientation

The software development structure is flexible based on the size of the project.

The organization structure may be represented either as a hierarchy or as a matrix.– Hierarchy org.: all the people associated with a project are

grouped into functional departments that report directly within the vertical line of command of the organization

– Matrix org.: people are grouped based on the functions they perform.

Functions may be performed by non-members of official project organization

Less function duplication, better focus on specialized skill.What about team loyalty and confusion?

9th LectureCEN 4021: Software Engineering II

Refined Organizational Refined Organizational Structure I: Functional Structure I: Functional OrientationOrientation

The general organizational structure may be further refined to show a more precise structure.

It is important that the org. be defined down to a level where each individual can see her/his name.

Project Manager (Sally Thomas)

Project Interface to process & tools (to be

hired)

Project interface to prog center. (Mark Burke)

Apps. Designer (John Chang)

Apps. Designer (Kim O’Conor)

UI Designer (to be hired)

Req. Analyst (Tom Shaker)

9th LectureCEN 4021: Software Engineering II

Refined Organizational Refined Organizational Structure I: Functional Structure I: Functional OrientationOrientation

Many projects rely on this type of org. in which activities are dispersed but all the responsibilities are still put into the hand of a small group of people.

Not strictly hierarchical. Such an org. tends to have more overhead, including

several people engaged in activities indirect to the immediate project.

This org. requires a manager to spend more time conscientiously promoting rapid and effective communications.

9th LectureCEN 4021: Software Engineering II

Refined Organizational Refined Organizational Structure II Highly Structure II Highly Specialized OrganizationSpecialized Organization

Software Development Manager (Sally Thomas)

Apps. Engineer (to be hired)

Apps. Engineer (to be hired)

Apps Engineer (to be hired)

Apps. Analyst (Tom Shaker)

Senior Apps. software Engineer

(Tom Shaker)

Apps. Engineer (Laura Lang)

Apps. Engineer (to be hired)

Apps Engineer (to be hired)

Senior Apps. software Engineer

(to be hired)

Software development specialization

9th LectureCEN 4021: Software Engineering II

Highly Specialized Highly Specialized OrganizationOrganization

More specialized, that is the groups responsible for only the development of software, but not, for instance the information development and publication task.

Group does not perform any of the requirements gathering and specification activities, nor does it handle any independent testing.

9th LectureCEN 4021: Software Engineering II

Highly Specialized Highly Specialized OrganizationOrganization

No project service activities, such as those dealing with processes, methodologies, measurements, configuration management, and tools, are the responsibility of this group.

The software development manager for this group still needs to ensure that the interfaces to the other departments within the same organization are well defined and operational.

9th LectureCEN 4021: Software Engineering II

Software Support StructuresSoftware Support Structures

After the release of the software there is still a need for support from the software development company.

A software support and service organization may share many characteristics of the general software project org..

software support and service: Post-software-release activities related to clarifying user questions and fixing software problems encountered by users.

Software support and service has one important component – customer management.

9th LectureCEN 4021: Software Engineering II

Software Support StructuresSoftware Support Structures

project manager must set up an extensive customer interface group, such as call service dept. that handles the following duties:– Answer calls– Analyze each problem– Respond to the customer if a possible solution exist– Generate a problem report when an immediate solution does not

exist– Track problem resolution activities– Report and deliver solutions to the customer– Close problems

9th LectureCEN 4021: Software Engineering II

Software Support StructuresSoftware Support Structures

Customer management – The set of activities related to ensuring that the customers’ need are properly served.

A different set of skills and tools may be needed for a software support org. as opposed to the software development organization.

9th LectureCEN 4021: Software Engineering II

Software Support Software Support OrganizationOrganization

Software Support Manager

Problem resolution Analyst

Customer level 2 support leader

Customer level 3 support leader

Customer Call support analyst

Customer Call support analyst

Customer Call support analyst

Customer level 1 support leader

Problem resolution Analyst

Problem resolution Analyst

Software support Engineer

Software support Engineer

Software support Engineer

9th LectureCEN 4021: Software Engineering II

Recruiting and Hiring Software Recruiting and Hiring Software PersonnelPersonnel

Once the organizational positions are outlined, the software project management needs to fill open positions.

The actual hiring of the employees starts with having a clear definition of the open position in terms of the skills, training, and character of the candidates required for each position.

Recruiting: It is usually not sufficient to provide a general description

of the position title to the HR department.

9th LectureCEN 4021: Software Engineering II

Recruiting and Hiring Software Recruiting and Hiring Software PersonnelPersonnel

Recruiting cont: Following is are some examples of common software

positions:1. Database design and administration

2. Applications designer

3. Applications testing

4. Applications developer

The skills description for the Database design and administration is as follows:

9th LectureCEN 4021: Software Engineering II

Recruiting and Hiring Software Recruiting and Hiring Software PersonnelPersonnel

Recruiting cont:– Database and administration: Technical skills include setting up a

relational database, designing queries and reports to access information

in the database, and administering backup and recovery processes for

the database, which may require direct working experience with a

specific database from the database vendor. Formal education includes

a bachelor’s degree in computer science or information technology.

Professional training includes a certification in the particular database

and two or more years of work experience with that database. The

candidate must posses good communication skills and enjoy detail-

oriented work.

9th LectureCEN 4021: Software Engineering II

Recruiting and Hiring Software Recruiting and Hiring Software PersonnelPersonnel

Recruiting cont: Each position should have a description, whether it is

open or not. Each skill area may also be divided into levels

characterized by different expectations and different degrees of reward and compensation.

There should be descriptions of the career paths, including the progression through the levels, for the various technical and supporting roles.

9th LectureCEN 4021: Software Engineering II

Recruiting and Hiring Software Recruiting and Hiring Software PersonnelPersonnel

Recruiting cont: The initial screening of the applicants may be performed

by professional recruiters or by the personnel department.

project manager should prepare the recruiters of what is expected in the role i.e. go over the specific needs.

Hiring: The actual interview may take place in several stages.

9th LectureCEN 4021: Software Engineering II

Recruiting and Hiring Software Recruiting and Hiring Software PersonnelPersonnel

Hiring cont: The initial conversation may take place via telephone or

via video conferencing. The first interview is a two-sided information exchange

intended to determine whether a mutual fit and interest exist.

The project manager should not try to “sell” the position. project manager and members of the interview team

should listen to the candidate and assess that person’s qualifications, specific skills and personal traits.

9th LectureCEN 4021: Software Engineering II

Recruiting and Hiring Software Recruiting and Hiring Software PersonnelPersonnel

Hiring cont: If open position has special requirements the project

manager must ask the candidate about the special constraints that the person might have, related to issues such as the amount of travel required or the amount of potential overtime.

Potential questions may include the following topics:– General technical skills– Specific technical skills– General educational background

9th LectureCEN 4021: Software Engineering II

Recruiting and Hiring Software Recruiting and Hiring Software PersonnelPersonnel

Hiring cont:– Years and types of experiences– The best and worst moments of past projects– Tasks that the person wants to do the most and the least and

why– The person’s career goals– Any constraints, including absolute minimum salary– Why the person is leaving her/his current position– When the person is available– Description of the project– Description of the position

9th LectureCEN 4021: Software Engineering II

Recruiting and Hiring Software Recruiting and Hiring Software PersonnelPersonnel

Hiring cont:– Description of the team– Description of the company and business and company culture– Description of the company benefits– Description of the compensation system

The interview does not necessarily follow the topics in this order.

Interview usually starts with a project manager giving a brief description of the project and the open position.

9th LectureCEN 4021: Software Engineering II

Recruiting and Hiring Software Recruiting and Hiring Software PersonnelPersonnel

Hiring cont: project manager should keep track of the topics as they

are covered. project manager should ask the candidate for the

minimal salary or a range of salary, since the project might have a very tight budget.

Candidates might not only focus on the dollar value for compensation but also rewards related to job satisfaction, educational opportunity, or health benefits.

9th LectureCEN 4021: Software Engineering II

Recruiting and Hiring Software Recruiting and Hiring Software PersonnelPersonnel

Hiring cont: If the project manager decides to conduct a second

round of interviews, then the candidate should be someone the project manager is willing to hire.

The second interview may include the candidate talking to other members of the team, other project managers and the interviewing manager’s immediate manager.

In the second interview there maybe a skills test in some programming language or tool.

9th LectureCEN 4021: Software Engineering II

Recruiting and Hiring Software Recruiting and Hiring Software PersonnelPersonnel

Hiring cont: If the parties are interested after the follow-up interview

the project manager should provide the candidate with a target date for a formal decision and an offer.

The immediate offer is often made verbally for those companies that require drug or other substance clearances before final hiring.

The offer letter should contain:– Description of the position– Brief description of the tasks

9th LectureCEN 4021: Software Engineering II

Recruiting and Hiring Software Recruiting and Hiring Software PersonnelPersonnel

Hiring cont:– The total compensation package, including a reference to any

documents that explain the details

Bringing people on board: Once the candidate accepts the offer, the project

manager needs to prepare for that person to be brought on board to the project as smoothly as possible.

Items needed to be prepared before the arrival of new employee:– Physical space and physical facilities, such as a desk and chair

9th LectureCEN 4021: Software Engineering II

Recruiting and Hiring Software Recruiting and Hiring Software PersonnelPersonnel

Hiring cont:– Office supplies– Computing equipment– Communication facilities, such as a telephone numbers, user

IDs, and passwords– Special software tools– Scheduling of special project education, if necessary– Printed or electronic documents on project processes, policies,

methodologies, and other items relevant to the project

project manager need to prepare the other team members for the arrival of a new employee.