Skip to main content

The Art of Project Management

Ahmed Bargady
Ahmed Bargady

Data Science Student & FullStack Web Developer

The application of knowledge, skills, tools, and techniques to project activities to meet the project requirements

project-management-750x350

Introduction

As defined by Gartner, project management is the application of knowledge, skills, tools, and techniques to project activities to meet the project requirements.

Project management is an integral part of software engineering processes along with business analysis, requirements specification, design, programming, and testing.

Project management professionals define a successful project as NOT only the one that is completed on time and within budget BUT also as the one that delivers expected benefits.

Project Management Phases

Regardless of the scope, any project should follow a sequence of actions to be controlled and managed. According to the Project Management Institute(PMI), a typical project management process includes the following phases:

  1. Initiation
  2. Planning
  3. Execution
  4. Performance/Monitoring
  5. Closure
important

Yet, this structure is too general. A project usually has a number of internal stages within each phase. They can vary greatly depending on the scope of work, the team, the industry, and the project itself.

So in attempts to find a universal approach to MANAGING ANY PROJECT, humanity has developed a significant number of Project Management techniques and methodologies.

Traditional Project Management Methodologies

Based on the above described phases, traditional methodologies take a step-by-step approach to managing the project. Thus, the project goes though the initiation phase, then the planning phase, then the execution phase, then the performance phase, and finally the closure phase in consecutive stages.

Often called Linear, this approach applied most commonly within the construction or manufacturing industry, where little or no changes are required at every stages. Traditional project management has found its application in software engineering as well. (Waterfall Model)

Waterfall Model

It has been a dominant software development methodology since the early 1970s.

my_image_waterfall

  • Strong emphasis on planning and specifications development, which takes up to 40% of the project time and budget.
  • Basic principal for this approach is the strict order of the project phases. (new project stage does not begin until the previous one is finished)
  • Works well for clearly defined projects with single deliverable and fixed deadlines.
  • Requires thorough planning, extensive documentation, and tight control over the development process.
  • In theory, it lead to on-time, on-budget, low-risks, and predictable final result. However, when applied to the actual software engineering process, it tends to be slow, costly, and inflexible due to numerous restrictions.
  • In many cases, its inability to adjust the product to the evolving market requirements often results in a huge waste of resources and the eventual PROJECT FAILURE.

Agile Project Management Philosophy

methodology-agile

As opposed to the traditional approach, the Agile Project Management Philosophy has been introduced as an attempt to make software engineering more flexible and efficient. It has quickly become the industry standard for project management. (Estimated that about 95% of organizations have adopted Agile in one form or another)

Historical Background

The history of Agile can be traced back to 1957, At that time Bernie Dimsdale, Jhon Von Neumann, Herb Jacobs, and Gerald Weinberg were using incremental development techniques (Agile now), building software for IBM and MOTOROLA. Although, not knowing how to classify the approach they were practicing, they realized clearly that it was different from Waterfall in many ways.

However, the modern-day Agile approach was officially introduced in 2001, when a group of 17 software development professionals met to discuss alternative project management methodologies.Having a clear vision of the flexible, lightweight, and team-oriented software development approach, they mapped it out in the Manifesto for Agile Software Development

info

The manifesto clearly specifies the fundamental principles of the new approach:

  1. Individuals and interactions over processes and tools.
  2. Working software over comprehensive documentation.
  3. Customer collaboration over contact negotiation.
  4. Responding to change over following a plan.

Agile methodologie takes an iterative approach. Unlike a straightforward linear Waterfall model, It consists of a number of smaller cycles Sprints. Each Sprint is a project in miniature: (It has a backlog and consists of design, implementation, testing, and deployment stages ).

Process_Agile2

At the end of each Sprint, a shippable product increment is delivered. Thus, with every Sprint, new features are added, resulting in gradual project growth.

note

Main Agile Aspects

  • Flexibility: scope of work may change according to new requirements.
  • Work breakdown: small cycles (known as Springs in Scrum)
  • Value of teamwork: working members together with clear vision of their responsibilities.
  • Iterative improvement: frequent reassessment of the work done within a cycle to make the final product better.
  • Cooperation with client: custemer is closely engaged in the development and can change the requirements or accept the team's suggestions.

For more information

Check this BLOG