Project Management

1.   What is Project Management?

Project management is the application of knowledge, skills, tools, and techniques to project activities to meet the project requirements. Project management is accomplished through the appropriate application and integration of the 47 logically grouped project management processes which are categorized into 5 process groups. They are - 

  • Initiating
  • Planning
  • Execution
  • Monitoring & Controlling
  • Closing


2.   How do you define a project life cycle?


A project has a beginning and an end and it passes through several phases of development known as project life cycle phases. These phases are varied depending upon the industry involved but all follow the same basic steps. Every project has certain phases of development. A clear understanding of these phases allows managers and executives to maintain control of the project more efficiently.


The five main phases of the project life cycle are as follows -
  • Initiation - This phase is where the project objectives are defined and the conceptual aspects of the project are agreed upon. This is the phase where a problem is identified and potential solutions suggested.
  • Planning - This phase is where the project is broken down into manageable areas of work and planned in terms of time, cost, and resources. This is a continuous process and will extend throughout the execution phase of the project.
  • Execution - During the third phase, the execution phase, the project plan is put into motion and the work of the project is being performed. It is important to manage the time, cost, resources, and risks as needed during execution. Progress is continuously monitored and appropriate adjustments are made and recorded as variances from the original plan. In any project, a project manager spends most of the time in this step. 
  • Monitoring & Controlling - During project implementation, people carry out the tasks, and progress information is reported through regular team meetings. The project manager uses this information to maintain control over the direction of the project by comparing the progress reports with the project plan to measure the performance of the project activities and take corrective action as needed.
  • ClosingDuring the final closure, or completion phase, the emphasis is on releasing the final deliverable to the customer, handing over project documentation to the business, terminating supplier contracts, releasing project resources, and communicating the closure of the project to all stakeholders. The last remaining step is to conduct lessons-learned studies to examine what went well and what didn’t. Through this type of analysis, the wisdom of experience is transferred back to the project organization, which will help future project teams.

3.   How do you manage a Project?


Managing a project typically includes identifying requirements, addressing the various needs, concerns, and expectations of the stakeholders in planning and executing the project. The project manager also set up, maintains, and carries out communications among stakeholders that are active, effective, and collaborative in nature. Project Managers are responsible for managing stakeholders toward meeting project requirements and creating project deliverables.

The specific project characteristics and circumstances can influence the constraints which include but are not limited to - scope, quality, schedule, budget, resources & risks on which the project manager needs to focus. 

4.   Describe what makes a successful Project Manager?


Every project manager knows how to execute projects on time and within budget but a good project manager also takes pains to consistently meet project requirements. But truly great project leaders go above and beyond. Not only do they execute projects within scope, but they are also accountable, strategic business partners fully vested in organizational success.


Good Communicator - The ability to communicate with people at all levels is almost always named as the second most important skill by project managers and team members. Project leadership calls for clear communication about goals, responsibility, performance, expectations, and feedback.


Shared Vision - An effective project leader is often described as having a vision of where to go and the ability to articulate it. Visionary leaders enable people to feel they have a real stake in the project. They empower people to experience the vision on their own.


Enthusiasm - Enthusiastic leaders are committed to their goals and express this commitment through optimism. Leadership emerges as someone expresses such confident commitment to a project that others want to share his or her optimistic expectations. We want leaders with enthusiasm, a bounce in their step, with a can-do attitude, not those who give us 200 reasons why something can't be done. 


Ability to Delegate Tasks - Trust is an essential element in the relationship between a project leader and his or her team. You demonstrate your trust in others through your actions - how much you check and control their work, how much you delegate, and how much you allow people to participate. Individuals who are unable to trust other people often fail as leaders and forever remain little more than micro-managers, or end up doing all of the work themselves.


Problem-Solving Skills - An efficient project manager should be capable of solving any or all problems, either with the team or the project itself. The team members should trust the project manager to solve their problems but also involve the team in problem-solving also.


Team-Building Skills - The project manager needs to be a good team builder. A team builder can best be defined as a strong person who provides the substance that holds the team together in a common purpose toward the right objective. The team starts as a group of strangers and needs to be made into a core group of people. Keeping the sense of team spirit alive despite the many problems in the project’s execution, is the quality a project manager should have. The leader must also have an understanding of the different team players' styles and how to capitalize on each at the proper time, for the problem at hand.


5.   What type of management style do you have?

I believe a good manager gives clear directions and stays pretty hands-off, but is ready and available to jump in to offer guidance, expertise, and help when needed. I try my best to make that my management style.


In terms of what makes me unique, I also go out of my way to make sure I know when my team needs help. I don’t hang around and wait to be called upon by my team members rather I go to them. That means plenty of informal check-ins, both on the work they’re doing and on their job satisfaction and mental well-being.


I remember one project in particular in my most recent role where I was deployed as a Project Manager and had 8 team members working on a separate aspect of the product. This meant a lot of independent work for my team, but rather than call everyone for repetitive meetings to update me and everyone else on progress made, I created a project wiki that allowed us to communicate new information when necessary without disrupting another team member’s work. I then made it my job to make sure no one was ever stuck on a problem too long without a sounding board. Ultimately, despite the disparate project responsibilities, we ended up with a very cohesive product and, more importantly, a team that wasn’t burnt out. 


6. How do you handle conflict with your superiors?

When dealing with conflicts with your boss, it is important to remain calm, feel confident to stand up for yourself, and, finally, ensure that you are feeling good about it afterward. The key steps are:

  • Prepare - The first step is to prepare yourself psychologically. Stay calm and think about the situation realistically and positively. Do not react when it first happens. Instead, take time for a deep breath and digest the situation and think of possibilities. 
  • One-to-one meeting - It is extremely important for you to set up a one-on-one in-person meeting with your boss for this discussion. This step involves you using set phrases or questions that can allow you to get more clarification and understanding from your boss about their point of view as well as give you more time to think about how to proceed to the next steps.
  • Feel confident to stand up for yourself - A criticism can be made in the form of a personal attack. From time to time, there may be some validity to the content of the criticism, even if it was stated inappropriately. If this is the case, try to acknowledge the validity to your boss, but make it clear that you would prefer it not to be delivered in the manner that it was. As stated in the beginning, it is very important for you to remain calm and appear positive.
It is important for you to remember that negative remarks do not always truly reflect your capabilities, as it is unlikely that we “always” make mistakes and someone else is “always” right.

7. Describe the projects you have worked on and the process by which you arrived at the project kick-off meeting?


This process is more applicable to working with external clients than to internal projects. In general, once the project scope document, project schedule, budget, team assignments and milestones, communication plan, and change management process have been identified, I can conduct the project kickoff meeting. 


8. How Agile will fit into a service-oriented organization?


Agile is a methodology that is useful in cases where there is no long-term visibility or customers themselves are not very clear with the requirements. So one can plan for shorter scrum cycles (2 weeks is the minimum). Also, it will be helpful for controlling the changing requirements. 


9. What if the client wants you to start the project ASAP without signing the contract since the contract takes 1-3 weeks of legal review  & approval while the project needs to be started ASAP. How will you handle the risk of project cancellation?


In the given situation, we can start the project if the client will provide a letter of intent signed by their president and also a non-refundable down payment equal to 10% of the total project cost of the entire project. We want the customer to be happy but in business, anything can happen so I would prefer the rules to avoid costly issues.


10. Client wants the new project to be delivered as soon as possible. Can you start the development tomorrow? 

No, I can't straight away jump to the development. The detailed scope needs to be finalized and then requirements analysis is required before the development starts. Also, as per the PMI, the project charter and the project management plan must be prepared and approved before the development begins. Project contract signoff, finalizing requirements, set-up the project process, selecting the SDLC, resource planning, organization chart for the SLA, and project management plan need to be done to avoid any risks.


11. What is a Gantt Chart?

A Gantt Chart is a technique used in project management for planning activities and tracking project schedules, being the most useful way to display tasks and activities against time. In simple words, a Gantt Chart is a project chart that tells you what needs to be done and when.

On the left side of the chart is the list of tasks and activities, while on the right is the timeline. Each activity is displayed on the timeline by a bar that represents the duration of that activity.

12. Why are Gantt Charts useful?

There are four important uses of Gantt Charts - 
  • Planning and scheduling your projects – who’s going to do what, when we start, and how much time it will take to complete the job.
  • Better visualization and explanation of your project – through its intuitive design every person involved will understand what’s going on without training.
  • Monitoring the project – this is one of the most complex and somehow difficult parts of Gantt Charts (because it requires constant attention and schedule adjustments), that allows you to see if your project is on schedule or not. There’s no better tool out there for monitoring project progress.
  • Make project adjustments – the initial plan will probably need many adjustments, and the Gantt Chart excels in allowing you to make these adjustments easily.

13. What is a Critical Path in Project Management?

In project management, the critical path refers to the longest sequence of dependent or floating tasks that must be completed in order to get the project done on time. The critical path only refers to the time required to complete the tasks. You can identify if a task is on the critical path if, delayed by one day, it can influence the duration of the project. The critical path is an indicator of the earliest date a project is planned to complete. 

14. What is a Lag?

Lag refers to the amount of time that is added between a predecessor task and its successor. It can be applied to all dependent tasks regardless of their dependency type (FS, FF, SS, SF). Lag is always associated with delay. Normally, any lag that is added between tasks on the critical path will delay your project. This is usually something you don’t want to do. So basically you want to add lag either when you don’t have a choice or when you have a clear goal in mind.

15. What is Lead?

If lag is associated with delay, “lead” is the amount of time by which a successor task can be advanced with regard to its predecessor. If adding lag will result in delaying a project, adding lead to dependent tasks on a critical path may reduce the time required to complete the project.

16. What are constraints?

In a Gantt Chart, a constraint represents a restriction that is applied to the start or end date of a task. They are helpful because they offer various degrees of flexibility when scheduling. Following are the 8 types of constraints - 
  1. As soon as possible – when you apply this constraint to an unlinked task, the start date of that task will be the same as the start date of the project. When this is applied to a dependent task, that task will start as soon as the dependency of its predecessor allows.
  2. As late as possible – this is a flexible constraint which when applied to an unlinked task, will match its end date to the finish date of the entire project. If this is applied to a dependent task, the task will be scheduled to finish when its successor task has to start.
  3. Start no earlier than – the task can start on or after the specified date.
  4. Start no later than – the tasks can start on or before the specified date.
  5. Finish no earlier than – the task has finished on or after the specified date.
  6. Finish no later than – the task has to finish on or before a specified date.
  7. Must start on – the task has to start on the specified date.
  8. Must finish on – the task has to finish on the specified date
Constraints 1-2 are considered flexible (they don’t tie a task to a specific date), 3-6 are semi-flexible (they include either a start or finish date but are not limited to these) and 7-8 are inflexible (because they have specific start or finish dates).

17. How do you manage risks? 

Risk management is the process of identifying possible risks, assessing their potential consequences, and then developing and implementing plans for minimizing any negative effects. Risk management can’t eliminate risks, but it offers the best chance of successfully accomplishing your project despite the uncertainties of a changing environment. 

To manage the risks that may affect your project please follow the steps -

  • Identify risks by determining which aspects of your plan or project environment may change.
  • Assess the potential effects of those risks on your project.
  • Develop plans for mitigating the effects of the risks.
  • Monitor the status of your project’s risks throughout the performance.
  • Inform key audiences of all risks involved with your project.

18. What are the typical risks you may meet in your project?

The typical risks that may encounter during project execution are - 

  • Scope Creep
  • Budget Risk
  • Integration Risk
  • Resource Risk
  • Contract Risk
  • Schedule Risk
  • Technology Risk
  • Project Dependencies
  • Requirements Quality
  • Quality Risk
  • Procurement Risk
  • Security Risk
  • Infrastructure Risk
  • Regulatory Risk
  • Legal Risk

19. What are the project management KPIs to measure the project manager's performance?

Project management KPIs are used as key measures to evaluate how effectively the project is performing. Following are the KPIs for a project manager but it’s most important to be S.M.A.R.T. (Specific, Measurable, Attainable, Realistic, Time-Bound) - 

Project Schedule - No project can lag behind schedule by more than 30% at any time. So whenever any project lags behind schedule by 25%, it gets highlighted and corrective action can be taken.

Project Resources - Every project should have resource utilization of at least 75% at any time. Resource utilization is an important project KPI not only from the team’s perspective but also from whether a project manager is able to play their role right.

Project IssuesNo project can have open issues percentage of more than 40%. As a project manager, you have to be aware of open project issues, incidents/bugs, and how many, for how much longer, by whom, and of what priority? Answers to these questions give you another project management KPI about project issues.

Project Risk - Maximum risk exposure for any project can have is 40%. If your organization deals with compliance, audit, or anything related to hazardous stuff (Environmental Health Safety); then risk management is very important for you. In such cases, the project KPI can be based on overall project Risk Exposure. You can track risk exposure on a regular basis and ensure that you are not crossing the risk threshold limit.

Schedule Variance - How far a business can allow project progress to fall behind schedule? Different businesses have different measures and metrics. In such cases, slippage in the early phases of such projects may be acceptable say 20%.

Schedule Performance Index (SPI) - This project management KPI tells whether you’re ahead or behind the planned project schedule. If the SPI is greater than one, it indicates that the project is running ahead of schedule but If it is less than one, it indicates that the project is potentially behind schedule.
To calculate Schedule Performance Index, divide the project’s Earned Value (EV) by the Planned Value (PV).

Schedule Performance Index (SPI) = (Earned Value) / (Planned Value)

Project Budget Utilization - No project cost can overshoot its budget by 20 %. The project manager tracks this KPI to know if the actual cost of the project is still within the budget and if they don’t have to go for additional-budget approval.

Project Budget Vs Estimated Cost - Project Budget vs Estimated Cost KPI gives an absolute picture of whether the project's estimated cost is overshooting the budget or the project manager would have to revise the budget and get the approval.

Project Estimated Cost Vs Actual Cost - Project Estimated Cost vs Actual Cost KPI is a clear indicator that informs project managers how far a project‘s actual financials are deviating from its planned one. It is easier to trace project cost deviation to the estimated cost and understand which elements (project resources, tasks, issues, risks, and changes) have contributed to a change in the actual project cost from the estimated one.

Cost Performance Index (CPI) - Allowable Cost Performance Index range is 85%-100%. CPI is the ratio of the planned budget to what you’ve actually spent to accomplish these tasks. As The Cost Performance Index suggests the relative value of work done, it can be seen as the indicator of the project’s cost efficiency. This project KPI helps you approximate how much time you’re behind or ahead of the approved project schedule.

Percentage of Projects Completed on time - The percentage of Projects completed on time must be over 80%. This KPI indicates the number of projects completed on time compared to crossed deadlines.


20. What kinds of projects have you been involved with?

I was recently deployed on a project as a Project Manager. It was the very first project I had handled in this kind of role. I’d never deployed as a Project Manager before but I felt it could be very useful to explore my skills for the new business and to learn more to successfully deliver it. It took a considerable amount of planning and organization on my part; I had to assess everything that would need to be planned in advance, from the analysis of the requirements with our business analysts, systems analyst, and SME (Subject Matter Expert) to the project development team for requirements understanding, estimation, design, development, testing and deployment. I had to make sure I didn’t miss the smallest of details – for example, I had to create the project plans of our stand to ensure that we are committed to our words in terms of cost, timeliness, and quality of the project. On the day itself, we were on site very early to make sure the requirements are completely elicited from the onsite stakeholders and based on that we would be able to create the project plan which would guide the project team members to deliver the project successfully. The project was very successful and our team got the appreciation for the quality work delivered. It was a very nice experience learning the ifs and buts of Project Management techniques. We were able to get two more projects from the same client and it continued. Following the success of this project, I’m now looking at similar roles to learn more and execute them in a very good manner.


21.   Where do you see yourself 5 years from now?

My goal now is to find a position at a company where I can grow and take on new challenges over time. Ultimately, I’d like to assume more management responsibilities and get involved in product & project strategy. But most importantly, I want to work for an organization where I can build a career. I see some of the innovative thinkers in the industry work here and that’s a big reason why I would love to build my career here. 

22.   One of my team is following Kanban for bug fixing kind of activities and one of the challenge is to manage the Integration. So, what should I do to manage the Integration related issues for my team members on my software project?

Managing integration-related issues in a Kanban-based bug fixing process can be challenging, but there are several steps you can take to address this. Here are some suggestions:
  • Define Integration Points: Clearly identify the integration points in your software project. Understand which components or modules need to interact with each other and where potential integration challenges may arise. Documenting these integration points helps in focusing efforts on the critical areas.
  • Collaborative Planning: Involve the entire team in the planning process, including developers, testers, and any other stakeholders. Collaboratively discuss and identify potential integration issues, dependencies, and risks. This ensures that everyone is aware of the integration challenges and can plan accordingly.
  • Continuous Communication: Maintain open and continuous communication among team members. Encourage regular updates on integration-related progress, challenges, and dependencies. This helps in identifying and resolving integration issues promptly, rather than letting them accumulate and become more difficult to manage.
  • Integration Testing: Establish a robust integration testing strategy. Ensure that integration tests are included in the definition of done for each bug fix. Prioritize integration testing alongside functional testing to catch any integration issues early in the process. Automate integration tests wherever possible to improve efficiency and reliability.
  • Incremental Integration: Implement an incremental integration approach. Instead of waiting until the end of the bug fixing cycle to integrate all the changes, integrate smaller batches of bug fixes regularly. This approach allows for earlier detection and resolution of integration issues, reducing the overall impact on the project.
  • Version Control and Branching: Utilize a version control system effectively. Maintain separate branches for ongoing bug fixes, ensuring that each bug fix is isolated until it has been properly tested and integrated. This way, the main development branch remains stable, and integration issues are contained within the bug fixing branch.
  • Continuous Integration: Implement a continuous integration (CI) system if feasible. CI automates the integration process by regularly merging changes from different team members and running automated tests. It helps in detecting integration issues early, reducing the time and effort required for manual integration.
  • Monitoring and Tracking: Establish a system for monitoring and tracking integration-related issues. Use tools or software that allow you to track the status of integration tasks, identify bottlenecks, and visualize the overall integration progress. This provides transparency and helps in identifying areas that need attention.
  • Retrospectives and Learning: Conduct regular retrospectives to reflect on the integration process and identify areas for improvement. Gather feedback from team members on integration challenges faced and brainstorm potential solutions. Implement the lessons learned in future bug fixing cycles to continually improve integration management.
By following these practices, you can better manage integration-related issues in your Kanban-based bug fixing process and ensure smoother integration of changes in your software project.

23.   One of my team is following Kanban for bug fixing kind of activities and one of the challenge is to improve the Code Quality before Release. So, what should I do to improve the code quality significantly for my team on my software project?

Improving code quality is essential for delivering a reliable and maintainable software project. Here are some steps you can take to enhance code quality in your Kanban-based bug fixing process:
  • Code Reviews: Implement a rigorous code review process. Encourage developers to review each other's code, focusing on code correctness, adherence to coding standards, and best practices. Code reviews provide an opportunity to identify and address potential bugs, security vulnerabilities, and design flaws before they become more significant issues.
  • Coding Standards and Guidelines: Establish coding standards and guidelines that define the expected code quality criteria. These standards should cover aspects such as naming conventions, code structure, error handling, documentation, and more. Ensure that all team members are familiar with and adhere to these standards consistently.
  • Automated Code Analysis Tools: Utilize automated code analysis tools, such as static code analyzers, linters, and code formatting tools. These tools can identify common coding issues, potential bugs, and violations of coding standards. Integrate them into your development environment or CI/CD pipeline to automatically check the code for quality and consistency.
  • Test Coverage: Encourage and enforce sufficient test coverage for bug fixes. Automated tests, including unit tests, integration tests, and regression tests, help validate the correctness of the code and ensure that bug fixes do not introduce new issues. Aim for a high level of test coverage to increase confidence in the stability and reliability of the codebase.
  • Refactoring and Technical Debt: Allocate time for refactoring and addressing technical debt. Technical debt refers to suboptimal code or design decisions that need to be improved. Prioritize and plan refactoring activities to gradually improve the codebase, making it more maintainable, readable, and extensible. This helps in reducing the accumulation of technical debt over time.
  • Continuous Learning and Training: Encourage continuous learning and skill improvement within the team. Provide opportunities for developers to enhance their knowledge and expertise in coding best practices, design patterns, and new technologies. Offer training sessions, workshops, or allocate time for self-study to stay up-to-date with industry trends and practices.
  • Knowledge Sharing and Documentation: Foster a culture of knowledge sharing within the team. Encourage developers to document their code, especially complex or critical sections, to improve readability and maintainability. Consider using internal wikis, code comments, or code documentation tools to share knowledge effectively.
  • Performance Optimization: Address performance issues as part of the bug fixing process. Identify and optimize code sections that impact system performance or scalability. Monitor and analyze performance metrics to identify bottlenecks and areas for improvement.
  • Retrospectives and Continuous Improvement: Conduct regular retrospectives to reflect on the code quality and development process. Identify areas for improvement, gather feedback from team members, and implement changes accordingly. Emphasize a culture of continuous improvement to drive long-term code quality enhancements.
  • Peer Learning and Mentoring: Encourage peer learning and mentoring within the team. Establish opportunities for more experienced developers to share their knowledge and mentor junior team members. This helps in disseminating coding best practices and improving the overall code quality across the team.
By implementing these practices, you can significantly improve code quality in your Kanban-based bug fixing process and deliver a more robust and maintainable software project.

No comments:

Post a Comment