In Software Development, task of managing productivity is key issue. The management of software development is heavily dependent on four factors :
- People –
When we refer to people in software development, we actually mean hierarchy of roles in software development such as managers, team leaders, senior developers etc. They are ones who form development team and work in development of software. The order of priority of people among other dependency factors is first (highest). Software development is people-centric activity.
Software development requires good managers, people who understand psychology of people and provide good leadership.
A good manager does not ensure success of project, but can increase probability of success. A good manager gives priority to areas like proper selection, training, compensation, career development, work culture, development team’s efficiency etc.
Therefore, Managers are crucial and critical for software development and it is their responsibility to manage, motivate, encourage, control and guide his/her development team through tough situations. Hence, success of project is on shoulders of people who are involved in development.
- Product –
A product is solution of problem that is handed to user who is struggling with problem. The priority of product among other dependency factors is second that is after people. The product or solution to problem is constructed based on requirements, which are objectives and scope work of problem. This helps managers to select best approach within constraints imposed by delivery deadlines, budgetary restrictions, personnel availability, technical interfaces etc. Without well defined requirements, it may be impossible to define reasonable estimates of cost, development time and schedule for project.
- Process –
The process is way in which we produce software. It provides framework from which comprehensive plan for software development can be established. If process is weak, end product will undoubtedly suffer. The priority of process among other dependency factors is third, after people and product, however, it plays very critical role for success of project. There are many life cycle models and process improvements models. A suitable process model is determined on basis of requirements specification, development team, user, type of project and associated risks of project.
A number of different task sets, milestones, work products, and quality assurance points, enable process framework activities to be adopted to characteristics of project and requirements of project team.
- Project –
A proper planning is required to monitor status of development and to control complexity. For project to be successful, it should be within budget, follow policies and requirements defined, and completed within timeline stated. Most of projects overrun cost by 100% of budget and are not delivered on time. The priority of project among other dependency factors is last(lowest). In order to manage successful project, we must understand and prevent associated risks. Concrete requirements should be defined and frozen, wherever possible. Unnecessary changes should not be made to avoid software surprises. Software surprises are always risky and should be minimized. A planning mechanism should be constructed to caution from from occurrence of any surprises.
All four factors: People, Product, Process and Project are important for success of project. Their relative importance helps us organize development activities in more scientific and professional way.
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.
- Difference between Generic Software Development and Custom Software Development
- Software Engineering | Agile Software Development
- Software Engineering | Software Business and Development
- Software Engineering | Identifying Software Development Metrics
- Software Engineering | Software Project Management Complexities
- Software Engineering | Software Project Management (SPM)
- Software Engineering | Software Project Management Plan (SPMP)
- Modern Principles Of Software Development
- Software Engineering | Rapid application development model (RAD)
- Software Engineering | Agile Development Models
- Software Engineering | Program Development Life Cycle (PDLC)
- Scrum (software development)
- Software Engineering | Jackson System Development (JSD)
- Adaptive Software Development (ASD)
- Client-Server Software Development | Introduction to Common Object Request Broker Architecture (CORBA)
- Software Development Organizational Structure
- Types of Defects in Software Development
- Difference between Traditional and Agile Software Development
- Software Development Life Cycle (SDLC)
- Reliability Attributes in Software Development
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.