Understanding Project Management
Published: 2022-01-14 11:28:56

Project Management is the application of processes, methods and skills to achieve specific project objectives according to the project acceptance criteria within agreed parameters. Project management has final deliverables that are constrained to a finite timescale and budget. It is an essential part of software engineering because professional software engineering is always subject to organizational budget and schedule constraints. A project manager's job is to ensure that the software meets and overcomes these constraints as well as delivering high-quality results. 

To understand the activities of a project manager. we shall be looking at two important events.
1. Risk management
2. People management

**Risk management**
This is one of the most important jobs for a project manager. This involves anticipating risks that might disrupt the project development cycle and taking actions to avoid them
Below is the step project managers can take to manage risks.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ozqes6ldu73pg01lds46.png)

1. Identifying the risk: You should identify possible project, product and business risks. As a starting point for identifying risks, different types of risk may be used:

2. Analyze the risk: You should assess the likelihood and consequences of these risks on your project.

3. Prioritize the risk: These involves making plans to treat the risks in the order of which would have the most impact on the project and identifying it immediately to be treated.

4. Treat the risk: You would report the issue to the appropriate people in the team to have it fixed.

5. Monitor the risk: You should properly assess the risk and your plans for risk control and revise these when you learn more about the risk.

It should be noted that risk management never stops, it is an iterative process that continues for as long as the project is used by clients. You continue to reanalyze the risks and decide if the risk priority has changed or not. At each stage, findings should be recorded and use as a data to help control any further risks your project may face.

People management
Managing people is one of the most essential traits that all project managers need to have. 
For a project manager to have a successful career, it is necessary for the individual to recognize that the people working in his team or organization or on a project are his greatest assets. It costs a lot to recruit people and retain good people. Hence, it falls on the project manager to ensure that the organization gets the best possible return on its investment. Also, when recruiting talents to join teams or forming teams to work on some certain features, project managers should take note of the personality type of the people to make up the group. We have: 
1. Task-oriented people: They are motivated by the work they do, by the intellectual challenge of any task given to them.
2. Self-oriented people: They are motivated by their personal success. They are interested in the task as a means of achieving their own goals
3. Interaction-oriented people: They perform their tasks based on the actions and performance of co-workers. This is often mistaken for the competitive trait that each and everyone has but this simply refers to individuals who are more user-centered. 

When choosing team members for your team. It is advisable to pick more task-oriented people and the rest can be spread across interaction-oriented and self-oriented (although this depends on the project being managed. If we are building a project for a gym)

**Teamwork**
For a project to be finished effectively and efficiently within a period of time, tasks are often shared amongst teams and team building is the job of the project manager. As a project manager forming teams is one of the most important part of the job. There are certain criteria's that should be taken into account: 
1. the personality type of people to make up the teams
2. The size of the team, this is necessary to ensure easy communication amongst the team members. For large organizations, that work on large projects, a single feature can be divided into teams, and the feature further divided to smaller bits. The project gets handled effectively and communication is made easier, you also get to know your team members on an individual level. 

**Group communications**
There are lots of software's now that help project managers organize projects and tasks between their members. These software's were created because there was the problem of effectively passing out information to members of a team. When tasks are shared amongst groups, most times, some tasks are dependent on other tasks. There arises a need to communicate with one another the progress of their various tasks. This is one of the problems that project management tools (Asana, etc.) has helped to fix. Although, there may arise some situations where teams may have to meet physically. This is why it is important to understand the personality-type of team members to help balance out the composition of the team.

Now, when managing projects, tasks should be divided into different time ranges and members would be asked to deliver projects also based on some certain criteria's.

Before we conclude, let's have a case study

On the first day in March 2021, the executives of a public hospital came to the  decision that it would improve productivity at their hospital by developing an application where patients make an appointment with the doctor via their application, where they would be appointed a time and date to make their visit. Hence, making doctors more organized and would  only answer to emergency's. The app is to deployed by July 2021

To begin this project, they appointed Martha to be their project manager because over the years she has proven to get the job done. 

Martha realizing that she is in charge of a larger-scale project that would be used by tens of millions of people and across regions starts the planning for the project(first stage planning).

She meets the board and requests for the key-features of the app and their goal in building the project. Martha also has to work with the sales team, to discuss how to build the app in order for it to also return profit to the hospital.

After identifying the goal and requesting the board's budget for the app. She went on to forming her team. She formed her team based on the features of the app. Below is a tree of how her team looked like:


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fdr2ag8gvbkuxmbkndh0.jpg)

She appointed a technical team lead who reported directly to her and went on to form teams that were responsible for each feature. She created a separate team responsible for testing (unit testing, component testing, etc.). Watch out for a separate article on testing. Let's look at an example of how she selected people that made up a team. For the team responsible for security, she had 4 task-oriented people, 3 self-oriented and 2 interaction-oriented. For a team responsible for the UI/UX for the app, she picked 3 interaction-oriented, 2 task-oriented and 2 self-oriented. Looking at this illustration, for security she picked more task-oriented because it involved more technical prowess but for the UX team, she picked more interaction-oriented because their personality for discovering user's pain-points came in handy.

After setting up teams, she went on to allocate timeframes to different tasks, bearing in mind that some tasks  where dependent on others. For tasks like that, she ensured that the independent task be handled urgently within a timeframe. Let's look at this table to have a better understanding:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c76h920ykezl73juhd42.jpg)

These tasks would be further divided into smaller units, where the doctor's profile can have sub teams taking care of a smaller feature there. It would be the work of the team lad's of smaller units to further create timeframes working with the timeframe of the main team. Also, for tasks dependent on other tasks such as team 2's building the doctor's profile dependent on team 1's working on authentication, tasks like that have to come first before the rest. 

Using software's that are efficient and working around the budget, the project manager also has to effectively communicate the progress the team has made with the directors and executives and work on any adjustment that would be made. 

Risk control is also very important, you would have to decide your own approach in mitigating risks and solving them

Some Project Management tools
1. Zepel
2. Jira
3. Asana
4. Trello
5. Teamweek
6. Wrike
7. Zoho Sprints
8. Airtable

I hope we have been able to understand the basic project management pattern. Depending on the project you are asked to manage, certain criteria may change but if you understand the basics, you would be able to oversee a project till it becomes a success(this is when the client or customer is satisfied and has issued a verbal review.). Overall, project managers have to ensure that both the internal (those directly involved with the project such as staffs, etc.) and external stakeholders(those indirectly involved with the project such as clients, government, etc.) are satisfied at the end of a project.

For beginners, who wish to start their career in project management. Here are some courses that has helped me thus far:
1. https://www.udemy.com/course/agile-crash-course/
2. https://learning.edx.org/course/course-v1:AdelaideX+Project101x+1T2017/home