Project Management in Software Industry
The software industry has achieved a notorious reputation for being out of control in terms of schedule accuracy, cost accuracy and quality control .Estimating, planning and quality control of software projects have become very difficult in terms of its management due to various reasons and results in extension of time in completing the projects, high costs which exceeds the budgets, project cancellation before its completion.
The software game industry is one of the most technically advanced sectors of the entire software domain. The game industry has pioneered a number of role- playing simulations in which players deal with such scenarios as planning cities, developing empires etc. The technology underlying these role playing games is a natural vehicle for project management simulations and a number of companies recognize that, Although management games will probably start as low cost independent products, their intrinsic usefulness and their ability to allow managers to take risks without having to face serious real life consequences, make these tools very useful additions to methodology management tools, software cost estimating tools and project planning tools.
FACTORS OF EFFECTIVE SOFTWARE PROJECT MANAGEMENT:
Effective SPM practices focus on four factors namely people, product, process and project. All of them need equal attention in the SPM process.
i) People:
People connected directly or indirectly are the dynamic and live factor in project management. The success of the Software Project largely depends upon how the lead role players in project management handle people issues, concerns and their expectations while developing the software for a given requirement. Project Management has to deal and interact with different levels of people within and outside the organization.
People from within the organization are developers, analysts, designers, technology specialists, HR managers and the senior management.
People from outside the organization largely belong to the customer organization, and are known as primary users, secondary users, stakeholders, project co-coordinators and business managers.
The people factor is so important that the software engineering institute has developed a people management capability maturity model known as PM-CMM. If this model is implemented, the organization enhances the readiness of human resources to undertake increasingly complex software development applications, enabling the management to attract, grow motive, deploy and retain critical resources to keep the development competence at a high level.
The people resources falls into five categories namely manager, technocrat, developer, customer and end user. The manager is responsible for achieving project goal and business goal. The Technocrats comprising analyst, designer, architect, and implementer are responsible for achievement of software goal, defined in terms of cost, quality, productivity, deliverables and customer satisfaction. The developer is responsible for implementing the project as per SP implementation guidelines agreed upon, and to fulfill all obligations as a key participant in the SP development. SPM is a team effort, where very member of a team has role, responsibility and commitment to the task and an obligation to perform. It is not only critically important to select good team members, but also manage the team resource effectively. The effectiveness comes through configuration of different members into groups responsible for different development functions, or components.
When software projects are large and complex, it is not the development task of one team, but more than one team will be involved. The function of teams and their goals are based on different criteria like using functions, modules, technology phases in the development cycle and so on. When there are more teams, coordination between teams becomes critically important. The project manager has the responsibility of ensuring that teams will work towards the common goals of the projects, and the members do not limit their role to achieve the teams’ goal.
The coordination within tams is possible provided there is a formal system of communication, documentation, reporting and periodical reviews to ensure that teams not only perform as per their plan to achieve the team goals, but also work in a cohesive manner and pull their strength in the same direction. To facilitate coordination and communication between teams, it is necessary to do following:
a) Issue project reports periodically that can be measured against the project plan.
b) Meetings to be held to solve the problems affecting the project.
c) Reviews of requirements, design and code are to be conducted regularly.
d) Status reviews to be conducted through analysis to find out the problems which affect the achievement of milestones.
e) Formal MIS reports are to be built and distributed by highlighting exceptions for actions.
ii) Product: Software:
The Product, in the context of software, is the scope of the software that is proposed to solve the requirements of the user. The software and its scope are a product that is defined and described by four factors namely, context, objective, functions and performance.
a) Context: The scenario or situation in business which has problems and which need solutions within the given domain and with due regard to constraints and limitations preventing in the environment.
b) Objective: Software system objective in terms of information, analysis, reports etc. as outputs for the benefit of users to solve business problems.
C) Functions: Software system processes and functions, such as data sourcing and processing, information processing and analysis, transaction processing, applications processing and integrating the applications to achieve software product goals.
d) Performance: This stipulates non-functional requirements of speed, quality and features such as ease of use, adaptability, interoperability, achieving certain measurable objectives such as cost reduction, reduction in cycle time, improving management effectiveness and so on.
Apart from understanding the software in terms of factors, knowing its category also helps in deciding technology and its application.
A software product may fall into any one of the following categories:
a) System software
b) Application software
c) Software development tools
d) Software solution
e) Software generic product for general requirements
f) Software tools: automation, printing, processing, report writing, screen generation and so on.
iii) Process:
There are several process models to select from, as the need be. Each process model has its strength in a given development scenario. The process models are:
a) Linear sequential when the requirement is stable.
b) Prototyping when the requirement is unclear to all.
c) Rapid application development when the requirement can be split for development purposes and can be delivered in increments.
It is very important to select the appropriate process model for development. Increment choice of the model will affect the budget, quality and performance. The choice of model also automatically decides the planning, development and implementation strategies. It decides software development organization, team building in terms of capacity and skills. The process model is a critical success factor in software development.
The development process of a software product takes place through any one of the processes mentioned earlier. A process is composed of certain activities. Some activities are process- specific and some are common and generic, applicable to all processes and products. Every software development organization has a set of activities that are applied to all development projects. They are put into framework, called Common Activity Framework (CAF).