SOFTWARE AND SYSTEMS DEVELOPMENT 8.8 PROJECT MANAGEMENT
Project management is the practice of initiating, planning, executing, controlling, and closing a project to achieve specific goals and meet success criteria within a defined timeframe. It involves organizing, coordinating, and directing resources, such as personnel, budget, and time, to ensure the successful completion of a project. In software development, project management plays a vital role in delivering a high-quality software product on time and within budget.
Project management in software development typically includes the following stages:
Initiation: The project is defined, and its feasibility is assessed. Key stakeholders are identified, project objectives are established, and a project charter is created to outline the project's scope, goals, and stakeholders.
Planning: A detailed project plan is developed, including schedules, budget, resource allocation, risk management strategies, communication plans, and quality assurance processes. In software development, this stage may also involve requirements gathering, creating user stories, and defining the software architecture.
Execution: The project plan is put into action, and the software development process begins. This stage includes tasks such as designing, coding, testing, and integrating the software components. Project managers coordinate and oversee the work of developers, testers, and other team members to ensure tasks are completed on time and according to the plan.
Monitoring and Control: Progress is continuously monitored and compared to the project plan. Project managers track key performance indicators, such as schedule, budget, and scope, to identify potential issues or deviations. Corrective actions are taken as needed to address problems and keep the project on track.
Closure: Upon completion of the software development, the project is closed. This stage involves delivering the software product to the client or end-users, conducting a post-project review, and documenting lessons learned for future projects. The project team is also disbanded, and resources are reallocated as needed.
Project management in software development is essential for several reasons:
Resource management: Effective project management helps allocate resources, such as personnel, time, and budget, efficiently and ensures they are utilized effectively throughout the project.
Risk mitigation: Identifying and addressing risks early in the project helps minimize their impact on the project's success, ensuring that potential issues are proactively managed.
Quality assurance: By establishing and monitoring quality standards, project management helps ensure that the software product meets the desired level of quality and adheres to best practices.
Communication and collaboration: Project management facilitates clear and effective communication among team members and stakeholders, ensuring that everyone is informed and aligned with project goals and progress.
Timely delivery: By creating and managing project schedules, project management helps ensure that the software is developed and delivered on time, minimizing delays and cost overruns.
Project management is crucial in software development for ensuring efficient use of resources, mitigating risks, maintaining quality standards, fostering communication and collaboration, and delivering software products on time and within budget.
PROJECT MANAGEMENT METHODOLOGIES
There are many ways to approach a major project, here we look at some principles from the Prince2 Project management qualification which is a widely-recognized project management methodology that provides a structured approach to managing projects effectively. It is applicable to projects of various sizes and industries. The core principles of PRINCE2 provide a foundation for good project management practices and help ensure project success. These principles are:
Continued business justification: A project must have a valid business case that justifies the investment in terms of costs, risks, and expected benefits. The business case should be regularly reviewed and updated throughout the project to ensure its continued relevance and viability.
Learn from experience: PRINCE2 emphasizes the importance of learning from previous projects and applying those lessons to current and future projects. Project teams should continuously identify, record, and act upon lessons learned to improve project outcomes.
Defined roles and responsibilities: The PRINCE2 methodology establishes a clear organizational structure for the project, defining roles and responsibilities for team members and stakeholders. This ensures effective communication, decision-making, and accountability throughout the project.
Manage by stages: PRINCE2 recommends breaking the project down into manageable stages, with each stage having its objectives, plans, and deliverables. This approach allows for better control, monitoring, and decision-making, as the project progresses through a series of checkpoints and review points.
Manage by exception: PRINCE2 promotes the efficient use of management time by setting predefined tolerance levels for cost, time, quality, scope, risk, and benefits. If a project deviates from these tolerances, it is escalated to the appropriate level of management for decision-making, allowing for a more focused and efficient management process.
Focus on products: PRINCE2 emphasizes the importance of clearly defining and understanding a project's products (outputs, outcomes, and benefits). This focus on products helps to ensure that the project delivers the desired value and meets stakeholder expectations.
Tailor to suit the project environment: PRINCE2 is designed to be adaptable to the specific needs, size, complexity, and risk levels of individual projects. The methodology encourages project managers to tailor its processes and techniques to suit the unique characteristics of their projects while maintaining the core principles.
Project management should provide a foundation for effective project management, emphasizing business justification, learning from experience, clear roles and responsibilities, staged management, exception-based management, product focus, and adaptability to the project environment. These principles guide project managers in delivering successful projects that meet stakeholder expectations and provide value to the organization.
Gantt charts are visual project management tools used to represent the timeline, tasks, and progress of a project. They were developed by Henry L. Gantt in the early 20th century and have since become a widely-used technique in project management. The primary purpose of Gantt charts is to provide a clear and easy-to-understand overview of a project's schedule, enabling better planning, coordination, and communication among team members and stakeholders.
Some of the key purposes of Gantt charts include:
Project scheduling: Gantt charts help in planning and scheduling the various tasks and activities involved in a project. By representing tasks along a timeline, Gantt charts enable project managers to set start and end dates for each task and determine the sequence and dependencies among tasks.
Visualising progress: Gantt charts provide a visual representation of the project's progress, displaying the percentage of completion for each task. This allows project managers and stakeholders to quickly assess the status of the project and identify areas that may require attention or adjustments.
Resource allocation: Gantt charts can also be used to plan and track the allocation of resources, such as personnel, equipment, or budget, for each task in the project. This helps ensure that resources are used efficiently and that the project remains on track in terms of resource availability and constraints.
Coordination and communication: Gantt charts serve as a valuable communication tool among team members and stakeholders, helping to clarify expectations and keep everyone aligned on project goals, timelines, and responsibilities. By providing a visual representation of the project schedule, Gantt charts facilitate collaboration and coordination among team members.
Identifying dependencies and critical path: Gantt charts allow project managers to identify the dependencies between tasks and determine the critical path – the sequence of tasks that has the greatest impact on the project's duration. Understanding the critical path helps project managers focus their attention on the most crucial tasks and manage potential bottlenecks or delays effectively.
Gantt charts serve as a valuable project management tool, helping to plan and schedule tasks, visualize progress, allocate resources, coordinate and communicate among team members, and identify dependencies and critical paths. By providing a clear and easily understandable overview of a project's timeline, Gantt charts enable better decision-making and increase the likelihood of project success.
PERT (Program Evaluation and Review Technique) charts are project management tools used to analyze, plan, and monitor complex projects. They were developed in the late 1950s to help manage large-scale projects with a high degree of uncertainty and interdependent tasks. The primary purpose of PERT charts is to provide a graphical representation of a project's tasks, their relationships, and the estimation of the project's duration, which helps project managers to effectively manage and optimize project schedules.
Some of the key purposes of PERT charts include:
Task dependencies and relationships: PERT charts help to visualize and understand the dependencies and relationships among tasks in a project. They represent tasks as nodes and use arrows to show the sequence and dependencies between tasks, making it easier to identify the order in which tasks must be completed.
Time estimation: PERT charts facilitate the estimation of task durations by incorporating optimistic, pessimistic, and most likely time estimates for each task. This probabilistic approach to time estimation accounts for uncertainty and variability in task durations, providing a more realistic view of the project's schedule.
Critical path analysis: PERT charts enable the identification of the critical path, which is the sequence of tasks that determines the minimum possible duration of the project. By focusing on the critical path, project managers can prioritize tasks and allocate resources more effectively, minimizing the risk of delays and ensuring timely project completion.
Slack time calculation: PERT charts help to calculate the slack or float time for each task, which is the amount of time a task can be delayed without impacting the project's overall duration. Identifying tasks with slack time allows project managers to manage resources more efficiently and to address potential bottlenecks or issues proactively.
Monitoring and controlling: PERT charts serve as a valuable tool for monitoring and controlling project progress. By comparing the actual task durations with the estimated durations, project managers can identify deviations from the planned schedule, enabling them to take corrective actions and adjust the project plan as needed.
PERT charts are powerful project management tools that help to visualize task dependencies and relationships, estimate task durations, identify the critical path, calculate slack time, and monitor and control project progress. By providing a structured approach to managing complex projects with a high degree of uncertainty, PERT charts enable project managers to optimize project schedules and improve the likelihood of project success
SOFTWARE YOU MIGHT LIKE
Even as a student you are balancing many tasks and projects. Here are couple of project management software providers that give you good FREE access to software to help manage multiple projects. Trello Monday