CEN 4021 9 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/...
-
Upload
elijah-lawson -
Category
Documents
-
view
223 -
download
1
Transcript of CEN 4021 9 th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi sadjadi/...
CEN 4021 9th Lecture
CEN 4021 CEN 4021 Software Engineering II Software Engineering II
Instructor: Masoud Sadjadi
http://www.cs.fiu.edu/~sadjadi/
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.