What is management ? Management is the art of getting things done through and with the people in formally organised groups. This can be done by performing different function in systematic way
Management functions ● ● ● ● ●
Planning Organizing Staffing Directing Controlling
Planning ●
●
●
It is the process of foreseeing the future in advance Today
Tomorrow
Mgr plans by setting goals & decide policies , procedure , rules , budgets etc…
Organizing ●
It is the process of identifying the entire job.
●
Job divides in tasks , assign them to process.
●
It is done by managers.
●
It is job oriented function.
Staffing ●
●
This is the function to put the right person at the right job -- Defining the requirements with regard to the people -- Select the suitable person -- Trained them This is worker oriented function
Directing ●
It includes : 1. Communication 2. Motivation 3. Leadership Above mentioned skills are required for organizing & achieving the goals .
Controlling ●
●
To ensure that activities are being performed as per plan . This process involves : 1. Fixing standards for measuring work performance. 2. Measurement of actual performance. 3. Comparing actual with standards. 4. Taking corrective actions.
Project management ----
Organising, planning and scheduling software projects. • • • • • • • •
Directing Being a technical leader Reviewing and approving decisions made by others Building morale and supporting staff Monitoring and controlling Co-ordinating the work with managers of other projects Reporting Continually
OR “ Project Management is a series of activities embodied in a process of getting things done on a project by work with members of the project team and with other people in order to reach the project schedule , cost , and technical performance objectives.”
Goal of Project Management To ensure that a software product that meets the quality specifications of the requirements definition is produced on schedule and at an economically justifiable cost within the planned resources.
Objectives ●
●
●
●
introduce software project management and to describe its distinctive characteristics To discuss project planning and the planning process To show how graphical schedule representations are used by project management To discuss the notion of risks and the risk management process
Activities in Project Management ● ● ● ● ● ●
Proposal writing Project planning and scheduling Project costing Project monitoring and reviews Personnel selection and evaluation Report writing and presentations
Proposal writing Proposal writing is a skill that is acquired by experience There can be no set guidelines for this task.
Project planning ●
●
Project planning is concerned with identifying the activities , milestones & deliverables produced by a project. A plan must be drawn up to guide the development towards the project goals.
Project scheduling ●
●
Project scheduling involves separating the total work involved in a project into separate tasks and assessing when these tasks will be completed Some of these task are carried out in parallel and must be coordinated
Project monitoring and reviews ● ●
●
Also called Project tracking. The managers must keep track of the progress of the project and compare actual and planned progress and costs There are 2 mechanisms for monitoring: -- formal mechanisms -- skilled mgrs. can monitor the project activities by informal discussion with project staff.
Personnel selection and evaluation ●
●
Personnel selection and evaluation is a very challenging task. PM have to select people to work on their project
Report writing and presentations ●
●
PM is usually responsible for project report writing to both client and contractor organisations. PM must write concise , coherent documents that abstract critical information from detailed project reports.
Management commonalities ●
●
●
These activities are not peculiar to software management Many techniques of engineering project management are equally applicable to software project management Technically complex engineering systems tend to suffer from the same problems as software systems
Principles of Engineering Management
What is Engineering Management? ●
What is Engineering?
●
What is Management?
●
Why Engineering Management?
What is Engineering?
The profession in which a knowledge of the mathematical and natural science gained by study, experience, and practice is applied with judgement to develop ways to utilize economically, the materials and forces of nature for the benefit of mankind .
What is Management? A set of activities (including planning and decision making, organising, leading and control) directed at an organisation’s resources (human, financial, physical and informational) with the aim of achieving organisational goals in an efficient and effective manner.
What is Engineering Management? ●
●
●
Direct supervision of engineers and/or the engineering function? Application of quantitative methods and engineering techniques to the practice of management? What engineering managers do! • Management of technical functions • Management of (other) functions in a high-technology enterprise
“Typical” Engineering Management
● ●
●
●
Historical Development of Engineering Management. FUNCTIONS OF TECHNOLOGY MANAGEMENT. • Planning and Forecasting. • Decision Making. • Human Aspects of Organization. • Controlling. MANAGING TECHNOLOGY THROUGH THE PRODUCT LIFE CYCLE. • Managing the Research Function. • Managing Engineering Design. • Planning and Managing Production Operations. • Engineers in Marketing and Service Activities. MANAGING PROJECTS.
Software project management ●
●
Concerned with activities involved in ensuring that software is delivered on time and on schedule and in accordance with the requirements of the organisations developing and procuring the software. Project management is needed because software development is always subject to budget and schedule constraints that are set by the organisation developing the software.
Software management distinctions ●
The product is intangible Eg. The mgr. of a shipbuilding project can see the product being developed . If schedule slips the effect on the product is visible. But in s/w development the project mgr. can not see progress. They rely on others to produce the documentation needed to review progress.
●
The software development process is not standardised we do not have a clear understanding of the relationship between the s/w process and product types. In engg. disciplines with a long history , the process is tried and tested. but we can not predict with certainty when a particular s/w process is likely to cause development problems.
● ●
The product is uniquely flexible Software engineering is not recognized as an engineering discipline with the same status as mechanical, electrical engineering, etc.
●
Many software projects are 'one-off' projects i.e large s/w projects are usually different from previous projects. So mgrs do have large body of previous experience which can be used to reduce uncertainty in plans. Rapid technologies changes outdate previous experience.
Project staffing ●
May not be possible to appoint the ideal people to work on a project • • •
●
Project budget may not allow for the use of highly-paid staff Staff with the appropriate experience may not be available An organisation may wish to develop employee skills on a software project
Managers have to work within these constraints especially when (as is currently the case) there is an international shortage of skilled IT staff
Managing People
Managing people ●
Managing people working as individuals and in groups
Objectives ●
●
●
●
To describe simple models of human cognition (i.e. the perceptions, reasoning, awareness) and their relevance for software managers To explain the key issues that determine the success or otherwise of team working To discuss the problems of selecting and retaining technical staff To introduce the people capability maturity model (P-CMM)
People in the process ●
●
●
People are an organisation’s most important assets The tasks of a manager are essentially people oriented. Unless there is some understanding of people, management will be unsuccessful Software engineering is primarily a cognitive activity. Cognitive limitations effectively limit the software process
Limits to thinking ●
People don’t all think the same way but everyone is subject to some basic constraints on their thinking due to • • •
●
Memory organisation Knowledge representation Motivation influences
If we understand these constraints, we can understand how they affect people participating in the software process
Memory organisation
Short-term memory ● ● ●
●
Fast access, limited capacity 5-7 locations Holds 'chunks' of information where the size of a chunk may vary depending on its familiarity Fast decay time
Working memory ● ●
●
Larger capacity, longer access time Memory area used to integrate information from short-term memory and long-term memory. Relatively fast decay time.
Long-term memory ● ● ●
●
Slow access, very large capacity Unreliable retrieval mechanism Slow but finite decay time - information needs reinforced Relatively high threshold - work has to be done to get information into long-term memory.
Information transfer ●
●
●
Problem solving usually requires transfer between short-term memory and working memory Information may be lost or corrupted during this transfer Information processing occurs in the transfer from short-term to long-term memory
Knowledge modelling ●
●
●
Syntactic knowledge : knowledge of details of a representation e.g. an Ada while loop. Semantic knowledge : knowledge of concepts such as the operation of assignment, concept of parameter passing etc. Semantic knowledge seems to be stored in a structured, representation independent way.
Syntactic/semantic knowledge
Knowledge acquisition ●
● ●
Semantic knowledge through experience and active learning - the 'ah' factor Syntactic knowledge acquired by memorisation. New syntactic knowledge can interfere with existing syntactic knowledge. •
Problems arise for experienced programmers in mixing up syntax of different programming languages
Semantic knowledge ●
●
Computing concepts - notion of a writable store, iteration, concept of an object, etc. Task concepts - principally algorithmic - how to tackle a particular task
Problem solving ●
●
●
●
●
Requires the integration of different types of knowledge (computer, task, domain, organisation) Development of a semantic model of the solution and testing of this model against the problem Representation of this model in an appropriate notation or programming language Software development ability is the ability to integrate new knowledge with existing computer and task knowledge and hence derive creative problem solutions
Problem solving
Motivation ●
●
An important role of a manager is to motivate the people working on a project Motivation is a complex issue but it appears that their are different types of motivation based on • • •
Basic needs (e.g. food, sleep, etc.) Personal needs (e.g. respect, self-esteem) Social needs (e.g. to be accepted as part of a group)
Human needs hierarchy
Need satisfaction ●
Social • •
●
Esteem • •
●
Provide communal facilities Allow informal communications Recognition of achievements Appropriate rewards
Self-realization • •
Training - people want to learn more Responsibility
Personality types ●
Motivation should also take into account different personality types: • • •
Task-oriented Self-oriented Interaction-oriented
Personality types ●
Task-oriented. •
●
Self-oriented. •
●
The motivation for doing the work is the work itself The work is a means to an end which is the achievement of individual goals - e.g. to get rich, to play tennis, to travel etc.
Interaction-oriented •
The principal motivation is the presence and actions of coworkers. People go to work because they like to go to work
Motivation balance ●
●
●
●
Individual motivations are made up of elements of each class Balance can change depending on personal circumstances and external events However, people are not just motivated by personal factors but also by being part of a group and culture. People go to work because they are motivated by the people that they work with
Group working ●
Most software engineering is a group activity •
●
●
The development schedule for most software projects is such that they cannot be completed by one person working alone
Group interaction is a key determinant of group performance Flexibility in group composition is limited •
Managers must do the best they can with available people
Time distribution
Group composition ●
Group composed of members who share the same motivation can be problematic • • •
● ●
●
Task-oriented - everyone wants to do their own thing Self-oriented - everyone wants to be the boss Interaction-oriented - too much chatting, not enough work
An effective group has a balance of all types Can be difficult to achieve because most engineers are task-oriented Need for all members to be involved in decisions which affect the group
Group leadership ●
●
●
●
Leadership depends on respect not titular status There may be both a technical and an administrative leader Democratic leadership is more effective that autocratic (person with unlimited power) leadership A career path based on technical ability should be supported
Group cohesiveness ●
●
In a cohesive group, members consider the group to be more important than any individual in it Advantages of a cohesive group are: • • • •
Group quality standards can be developed Group members work closely together so inhibitions caused by ignorance are reduced Team members learn from each other and get to know each other’s work Egoless programming where members strive to improve each other’s programs can be practised
Developing cohesiveness ●
●
Cohesiveness is influenced by factors such as the organisational culture and the personalities in the group Cohesiveness can be encouraged through • • •
●
Social events Developing a group identity and territory Explicit team-building activities
Openness with information is a simple way of ensuring all group members feel part of the group
Environmental factors ●
●
●
Privacy - each engineer requires an area for uninterrupted work Outside awareness - people prefer to work in natural light Personalization - individuals adopt different working practices and like to organize their environment in different ways
Workspace organisation ●
Workspaces should provide private spaces where people can work without interruption •
●
Providing individual offices for staff has been shown to increase productivity
However, teams working together also require spaces where formal and informal meetings can be held
The People Capability Maturity Model ●
●
Intended as a framework for managing the development of people involved in software development Five stage model • • •
Initial. Repeatable. Defined.
•
Managed.
•
Optimizing.
Ad-hoc people management Policies developed for capability improvement Standardised people management across the organisation Quantitative goals for people management established and introduced. Continuous focus on improving individual competence and workforce motivation
The People Capability Maturity Model
P-CMM Objectives ●
●
●
●
To improve organisational capability by improving workforce capability To ensure that software development capability is not reliant on a small number of individuals To align the motivation of individuals with that of the organisation To help retain people with critical knowledge and skills
Key points ●
●
●
Managers must have some understanding of human factors to avoid making unrealistic demands on people Problem solving involves integrating information from long-term memory with new information from short-term memory Staff selection factors include education, domain experience, adaptability and personality
Key points ●
●
●
●
Software development groups should be small and cohesive Group communications are affected by status, group size, group organisation and the sexual composition of the group The working environment has a significant effect on productivity The People Capability Maturity Model is a framework for improving the capabilities of staff in an organisation
Questions Q.1
What factor should be taken into account when selecting staff to work on a project ? Any type of project can be taken as example.
Q.2
Why is the P-CMM an effective framework for improving the management of people in an organisation ? Suggest how it may have to be modified if it is to be used in small companies.
Q.3
Explain the role of different department in a company.
Q.4
What are the various activities in project management.
Contd…. Q.5 You are a programming manager who has been given the task of rescuing a project that is critical to the success of the company. Senior management have given you an open-ended budget and you choose a project team of up to five people from any other projects going on in the company. However , a rival company , working in the same area , is actively recruiting staff and several staff working for your company have left to join them. Describe two models of programming team organisation that might be used in this situation and make a choice of one of these models. Give reasons for your choice and explain why you have rejected the alternative model.