Summer Camp: How to build a website like an engineer


8 What is Project Management process?

Every software company manages their projects and product development with project management process, usually led by a project manager. The two key methodologies are: the Waterfall (sequential) methodology to the Agile methodology. Agile methodology is also called Scrum, which involves multiple iterations or sprints.

Here is a definition of Scrum from Wikipedia:

"Scrum enables teams to self-organize by encouraging physical co-location or close online collaboration of all team members and daily face-to-face communication among all team members and disciplines in the project."

First, a company will define a scope of a project, find the funding of the project, and allocate resources to complete the project in a predefined time frame. Then the project manager will work out a Schedule of the project based on the Scope and the Resources available for the project.

Usually the product manager or the product team will define a full set of functionalities to be implemented. At the beginning of each iteration, the team members choose the features to be delivered in a short period of time, usually 3 weeks. At the end of each iteration, the features that are not completed will be put into the project back log to be worked on in the next iteration.

Every day, there will be a short status meeting to discuss the feature implementation, deliverables and common issues for the team. There might be some Spikes to deal with by extra time to be allocated because some research work has be to involved. The project manager will be responsible for the collaboration of the team to work efficiently and deliver on schedule.

According to the project plan, there will be Tasks, Milestones, Deadlines and Dependencies for the team members to coordinate with. Before a minor or a major release date, the product team will figure out the highest priority tasks for the team to fulfill urgently. There will be Show Stoppers, Critical issues, Priority 1 (P1) issues, P2 issues, etc. Developers will work closely with the Quality Assurance (QA) team to roll out a release with solid quality. Some company will ensure that the QA team must sign off the features to be delivered before they are put into the official release.

Most startup companies have the process to do nightly build, weekly minor releases, internal or open beta releases, and General Availability (GA) releases.