Being A Project Manager Essay, Research Paper
I am a software project manager at a booming Fortune 500 company having
just been promoted from a position as a software engineer. I have been assigned to an on-going software development project because the previous manager left the company to take a job with one of our competitors. After meeting with my new team and reading the project documentation, I have an overall picture of the problem that my boss wants me to solve: we are four months behind schedule and our customer is furious. Our company is in danger of permanently losing this corporate customer. Many team members are already staying late and coming in on Saturdays. Stress levels are skyrocketing. The project is largely finished, but testing is taking forever. The team keeps finding more defects in the software, and when they fix the problems that they know about, they unwittingly create new problems. The software needs to be cleaned up and shipped as soon as possible. In order to expedite the conclusion of this project, I will start out by holding a meeting to plan the rest of the project by addressing the following: the morale of the engineers and relations with the customer, the testing process, and the conclusion.
The first thing I will deal with is the stress among the software engineers. By creating a working atmosphere with less stress and frustration, the team members will be able to think clearer, be more motivated, and work cooperatively. I will reaffirm our vision of completing the software and the impact it will have for our customer and our company. By reminding everyone of our goal, the team will be able to maintain focus
in order to finish the project smoothly and within a reasonable time frame. To further reduce the frenzy, I will not require anyone to work extra hours or come in on Saturdays; it is optional. Next in the meeting, we will review the customer request and make sure all their requirements are honored. Once we have estimated the completion time and established the deadline, we will plan and schedule a formal meeting with the customer to bring them up-to-date and to assure them of our commitment to deliver a high-quality product. To acquire further momentum, we will discuss and change the current testing phase.
Because the programmers have been testing with little success, I will implement a strict design/code review guideline and checklist as part of our testing. I have learned from experience that when dealing with a large software project, a disciplined and structured review is more suited for capturing the majority of the defects than a rigorous debugging session, which generally leads to more complex system behaviors. To accomplish this, I will refine roles and responsibilities. I will partition the workload among two teams, each headed by a team leader, to handle the project design and code. The teams will cooperate using an open paradigm organization, which involves heavy communication and consensus-based decision making. Some of the responsibilities of the design team will include verifying the overall program structure and flow, checking the program s logical control for correctness, checking function calls for accuracy and others. They will review the class diagrams to make sure nothing was overlooked. The code team s main job is to follow a code review checklist. They will concentrate on checking all lines of code for functional defects, instruction syntax, conforming to coding standards and others. The code review will follow a down-top pattern, where the lowest level procedures that do not depend on others are examined first. I will stress strong communication between the teams. In the meantime, I will oversee the operation and will use my authority to hire and fire employees whenever needed. I will bring in an independent third party to perform most of the actual testing of test cases to ensure the highest probability of finding errors and to ease the workload for the engineers. Defects will be recorded in a Defect Recording Log and the time will be noted in a Time Recording Log. Once the program is thoroughly tested and runs without error, we will proceed to the post mortem phase.
When the project is finished and ready to be shipped, we will contact the customer and complete the transaction. In the meantime, we will work on our analysis of the project: the post mortem phase. Using data collected during the ordeal, we will complete a Project and Process Data and a Summary Report. This is our opportunity to reflect on the experience of the group project. We will explain what we have achieved, how we achieved it, and what lessons we have learned on the way. We will explain about the problems we encountered and also explain how we surmounted or evaded them. Altogether, my first assignment as a project manager will allow me to learn a great deal about software engineering and prepare me for future software developments.