Friday, August 31, 2018

Project Management Best Practices

Leading a project to successful closure requires right combination of skills, experience and confidence. Here are some guiding principles to execute projects smoothly :


Why Adopt Best Practices?
  •          We want to deliver the right solution within defined timelines
  •          We want to Identify problem areas at an early stage and take corrective actions
  •          We want to bring efficiency, effectiveness, standardization, and predictability to our delivery model



  Best Practice: Adopt the Agile Mindset
  • Create an enabling environment & empower your team members to work independently with responsibility & ownership
  •  Promote upfront, open communication
  • Best output can be achieved only when people enjoy what they are doing , help them understand the value of their work
  • Any process which does not add value to project needs to be re-evaluated
  • Believe in incremental evolution: to build a perfect artifact it may have to go through several iterations

  Best Practice: Understand your project Objective
  • What is the main objective of the project? What are the key success criteria for Business?
  • What are the current pain points /challenges business is struggling with and how is this project going to help overcome those challenges?
  •  How does this project deliverable fit into the Business Road map?

Examples for some of the drivers for your project :
·         Competitive edge, rich user interface, rich content, quick & easy maintenance of site, real time content updates

  Best Practice: Define your Constraints / Risks
  • Do you see a gap in requirements understanding?
  • Do you need to deliver in a squeezed timeline?  Example: Business demands "Go live" within next 4 months
  • Is your team geographically distributed? Are there any challenges within teams? Dependencies within teams. Example: Design team onshore and tech team offshore
  •  Are there any third-party dependencies?  Example: integrations like social plugins, sales force, loyalty, etc
  • Do you have the right team structure for each track of activity?  Example: Enough QA, design strength
  •  Are there any activities that are beyond your scope but are going to affect you?  Example: Content population, translation, data migration

  Best Practice: Plan Upfront

Plan for the following upfront :
  • What are your high-level timelines? How are you going to divide the work in iterations?  
  • What are the roles and responsibilities of each team member? What are the external dependencies?  
  • How do you plan to communicate with different stakeholders
  • What are the tools that you are going to use and for what purpose?  Eg: tools for tracking, bug management, requirement management, project planning, etc
  • What are the activities that can be automated?  eg: Quality check, deployment, performance analysis, etc
  • What best processes and engineering practices can you implement to bring efficiency to the team?
  • What are the environments you will require for your project execution and when? eg: dev, qa, prod, staging, etc
  • How are you going to track and report progress? 
  • How will you manage RAID? 
  • How will the scope be managed? 
  • How will you track Quality and defects 
  • How will your user stories flow from inception to completion 
  • Team Ramp up planning 
  • Team Building, Feedback & Appreciation Framework  

  Best Practice: Define Checkpoints at every stage
<<Coming Soon >>

  Best Practice: Lookout for warning signs

Lookout for potential problem areas. The earlier the problems are detected the easier it is to manage them.
Warning signs may include :
  •          A small variance in schedule or budget starts to get bigger, especially early in the project
  •          You discover that activities you think have already been completed are still being worked on
  •          You need to rely on unscheduled overtime to hit the deadlines, especially early in the project.
  •          Deliverable quality or service quality starts to deteriorate
  •          Approvals for deliverable not received on time can impact ongoing work

  Best Practice: Define the Review Process

Identify SME for each track and ensure that the following activities are reviewed & improved at appropriate times:
  •          Requirement definition / Story definition
    •  Ensure that the quality of the story is good. It captures all the information required. Does it specify Acceptance criteria clearly? is it calling out Dependencies or integration Details?
    • Review by senior BA, Tech Team for quality of the story
    •  Review by Product owner
  •          Visual Designs ( UX /VD)
    •          Review to ensure technical feasibility & conformity with development standards
    •          Review by Senior Designer for quality of work
    •          Review and approval By the client before it's passed on to the development team
  •          System Architecture & Design
    •          Review by Senior Architect
    •          Review & Approval by Client
  •          QA Activities - Test Cases, Defect Descriptions
    •          Review of strategy by QA Manager
    •          Review by the QA Manager for each Sprint
    •          Is our QA Plan covering all areas: functional, regression, creative, usability, etc
  •          Development
    •          Code Review by Architect for each Sprint
    •          Automation of Code review if possible
    •          Coding Guidelines: review by Senior Architect
    •          Functional review by BA for each sprint
    •          QA review during development to identify gaps upfront
    •          Creative Review by the Design team for each Sprint
    •          Full Regression testing ( For all scopes delivered to date ): preferably Automat it
  •          Build & Release process
    •          Review the Release process for efficiency
    •          Review if we have clearly defined branching & merging strategy


  Best Practice: Project Tracking

Develop Metrics to cover the following for each sprint :
·          
·          
·         Total Estimated effort VS total burned effort VS total effort required: this will help you predict
·         Number of defects in each sprint: Area of defects: functional, UI, Code review, etc
These metrics will help in doing objective progress checks
  Best Practice: Do Retrospective & improvise

A Retrospective should be done after each iteration to identify
  •          Improvements in processes
  •          Technical Improvements/learnings
  •          Improvement in testing
  •          Communication & Planning

These should be used as a guiding principle to improve for future sprints. Also, these learnings should be passed back at the organizational level for broader benefits.