How would you handle non-productive developers or team-members?
- Align big lofty goals with their personal goals. If not, incentivize them by helping them identify the personal goals(like learning a new programming language that will be used in this project that will help her/him get motivated)
- Clearly define roles and responsibilities. Assign accountability to them.
- Don't be overly strictly. Put some big rules in place but don't keep overemphasizing them.
- Include the team in decision making and planning process.
- Do retrospective meetings to ensure what has been accomplished and what not.
- Talk to them to understand if they need help.
How will you get traction from a TPM of another team?
- Communicate the goals to them and what impact they are going to make. Indicate KPIs or metrics that this goals could help achieve.
- Align their projects with yours and involve them into planning.
- Divide the projects into roadmap and sub-stories. Make them commit to the sub-stories and ask for timelines.
- Offer help if they are not able to achieve those timelines.
- Glorify them when the projects are achieved within reasonable time limits. This will make them very likely to work with you again.
What are important things of consider while running a cross-team program?
- Helps if roles and responsibilities are defined.
- Communication is shared. And their are frequent updates. Frequent meetings of leaders, where they provide updates from their teams.
- Its best if they know the mission and goals one can achieve. Report frequently on KPIs and metrics.
- Encourage cross-functional training.
- Celebrating major milestones and congratulating the team on achieving the goals.
How do you earn trust of your team members.
- Lead by example
- Communicate openly
- Don't place blame on any one person. Tackle the issue at hand without pointing fingers.
- Discuss trust issues.
- Be available to them to discuss project goals and communicate often.
- Develop team exercises.
- Be calm, open, and transparent where ever possible.
- Encourage mutual feedback.
- Allow flexibility in choosing projects, hours.
- Be patient with new employees.
How do you plan a project or program?
- Under the project goals.
- Align them with company goals and mission.
- Define KPIs and metrics.
- Prioritize goals.
- Identify stakeholders and meet with them. Discuss project goals with them to see if they help achieve their goals.
- Create a product roadmap.
- Divide roadmap into deliverables.
- Assign deliverables to functional and dev teams. Create a project schedule of the deliverables.
- Identify issues or technology gaps and complete risk assessment.
- Think of alternatives to avoid or minimize risk.
- Think of MVPs in case project runs into delivery issues.
- Present the plan to stakeholders.
- Communicate the plan to the dev teams and keep things moving.
What in your opinion are three constraints of a project or program?
Its called as Project management triple constraint. Those are:
- Time
- Cost
- Scope
- 4th: Meets the customers requirements. - Make it PM diamond.
Tell-tale signs that your project is going to fail:
Objectives:
- Missing strategy.
- No clear goals.
- Leadership priority issues.
- Too many projects at one time.
- Constant scope changes.
- Last minute major changes.
Leaders:
- Team doesn't trust higher level or management.
- Management or key people leaves in between the projects.
People:
- Stakeholders are not interested.
- No knowledge sharing.
- Resource limits
How do you motivate your team of developers?
- Provide them flexibility to choose the projects and times they could work on whenever possible.
- Involve them in planning and important decision making if possible. Don't ask them to do it because upper management is doing it.
- Help them understand what KPIs or metrics you are trying to achieve. And how it will help shape the company.
- Career growth: Help them with career growth if possible. Align the career goals to the projects that are pending.
- Innovation: Allow them to utilize latest tools and technologies. If they are going to conferences to learn new things let them go. Request a demo to see you are interested what they have been learning. See if you can put sometime in project planning to let them experiment with new technologies.
- Create structured trainings in the organizations. Let me take online trainings and reimburse it when needed.
- Provide recognition of good work.
- Good infrastructure to let them work.
- Empower them to make the decisions where ever possible. Don't wait on you for each and everything.
How have you contributed to the success of the project?
By:
- Understanding end goals.
- Understanding my role and each team's roles.
- Identifying Interdependencies and stating them early on.
- Cross functional and periodic communication via emails, standups, meetings.
- Setting up milestones and periodic checking enabling team to collaborate well.
- Accepting and managing problems.
- Recognizing and rewarding the teams.
How would you increase efficiency of your development team?
By:
- Document Coding and dev standards.
- Implement CI integration.
- Release often if possible.
- Schedule demos.
- Follow test driven development.
- Creating detailed tasks.
- Review backlog
- Resolve blockers.
- Have short meetings.
- Support initiative
- Rely and trust your team's expertise, where ever possible.
If you come about an early delay in one of your milestones what would you do?
- Catch them early by monitoring the progress of the project and staying in touch with leads through out the project.
- Notify stakeholders: Update them on delay and revised schedules.
- Call for a meeting: Dev, technical teams, vendors, stakeholders, customers and update them on the delay.
- Gather the right resources: Re-allocate the resources.
- Reschedule: Check if some activities that were planned sequentially can be done parallely.
- Re-prioritize: List out all the activities that are not yet done. Move the important ones to the top of the list.
- Document the updated plan and send it out to everyone.
How to decide between traditional project management v/s Agile methologies?
Use traditional when:
- Long and detailed planning is required.
- Processes is linear and all the tasks are scheduled sequentially.
- Requires a formal CM process.
- Prioritization is fixed.
- Customer feedback can be taken at the end and incorporated into future releases. Customer involvement is low.
- Organization is very centralized.
- ROI is achieved at product release.
- Ex: Hardware or non-customer facing projects like infrastructure or technology changes.
Use Agile when:
- Process and decision making is iterative.
- Need customer feedback right away and can be incorporate right away.
- Organization is de-centralized.
- Prioritization changes based on business requirements and customer feedback.
- Small amount of work is picked up to be done. Rest can be updated and prioritized based on inputs.
- Customer involvement is high.
- ROI is achieved often and is iterative. It determines what the future releases.
What are the various states of the project? - RYG. What do they stand for? How to move the project from R to G?
Green: Project is within budget, timeline, and expectation.
Yellow: Project might fallout of budget, timeline or expectation and is it risk. Requires special attention from team involved. If needed from higher ups.
Red: Some aspect of the project has fallen behind or encountered major setback or is over budget
How to move R to G: Have a plan on paper, get a buy in, and get it approved. Once everyone agrees to the new set of parameters then move it to G from R.
Some teams move G to Y or R to get feedback from upper management so that they can get their expertise involved to get it done.