Saturday, December 2, 2017

Process Improvement / Recommendations in Software Development Project(s)


Process:
A process is no more than the steps and decisions involved in the way work is accomplished.

Process Improvement:
“Process improvement” means making things better. Below are some Process Improvement factors:
  • What process should we select for improvement?
  • What resources are required for the improvement effort?
  • Who are the right people to improve the selected process?
  • What’s the best way to learn about the process?
  • How do we go about improving the process?
  • How can we institutionalize the improved process? 
Requirement Gathering- Recommendation
  • Involved Subject Matter Expert in requirement gathering meetings.
  • Record all the meetings for future reference.
  • Sending understanding document to client and get clarification is good practice.
  • Send minutes of meeting to all the attendees
  • Analyze and notify client if any requirement can not be achieve due to technical limitations.
  • Reverse KT/ Playback adds advantage in terms project of better project understanding

Estimation- Recommendation

  • Very rough order of magnitude is good enough initially in place of detailed estimation
  • Define clearly what need to be estimate
  • InScope and Out of Scope should mentioned clearly.
  • While doing estimation, we should take suggestions from the Developer/Tester or any technology expert.
  • Risk and Assumptions should be clearly mentioned in the estimation.
  • Tasks can be divided into more granular level. Calculate the efforts/time required at granular level.
  • Clearly mention that any risk/delay involved with third party (if any) to be taken care by client only.
  • Well defined resource plan
  • Mentioned Hardware/ software dependency.
  • Identify the critical points in your schedule. Include dependency
  • It is good practice to have estimation by project stage (kickoff, Pre-Baseline, Baseline, Build phase)
  • Estimation should be reviewed by two level hierarchy.

Development- Recommendation
  • Functional Specification document should be signed off before starting development.
  • Database Project and VSTF should be configured for the project.
  • Write Pseudo code and get reviewed by senior developer before writing any SP/code
  • Apply code reusability that reduces development efforts.
  • Follow standards for coding. A standard code is easy to review and understand.
  • Use the code review tool for code optimization e.g FXCops
  • Refer any existing project having similar features. It will help us to understand implementation
  • Always log all the efforts into VSTF.
  • Daily Sync up call
  • Daily Status report should go to Onsite Manager/Team and clients.
  • Daily Database Backup to avoid any data loss required for Development.
  • Proper unit testing will reduce lot of bugs at development stage, it reduces test efforts.
  • Provide standard drop note/ deployment guide to test team with build.
  • Developing the documentation for QMS, this includes quality manual, processes, working instructions, forms, templates, and checklists and base lining.
  • Conduct the periodical audit to discover the potential issues.
  • Conducting regular (at least monthly) process focused meetings with all key process area members to ensure steady progress
  • Management should encourage the developers to do Certifications based on their Technical skills.

Test - Recommendation
  • Testing cycle should start with the study of Client’s requirement.
  • Create a document / list of all possible scenarios before writing test cases. Include it into test planning.
  • Keep developers away from test environments.
  • Keep track of bug fixing time taken by development team. Keep informed about the time remaining for regression testing to relevant stack holders.
  • Tester should try to understand the logic behind the screen and try to break that logic.
  • Use the appropriate tool for testing is added advantages for test team.
  • While doing test execution, a code review will be helpful to understand the process.
  • Reusing existing test cases from repository is a good practice.
  • Encourage the testers to do ISTQB certifications to enhance their testing skills.
  • We should have well planned test execution time to meet project deadline.
  • Establish a defect prediction model in the project using Six sigma, CCM5 methodology.
  • Always do the BVT after deployment.

Build and Deployment – Recommendation
  • Review Drop note and Deployment guide. Escalate in case of any issue.
  • For any deployment, Rollback process should be mentioned in the deployment document.
  • Take Backup of all the existing items before deployment.
  • Verify access to required servers and file share.
  • Always send notification to the required team in an automated way.

Project Execution – Recommendation
  • Lead/PM should have thorough knowledge about the client requirement
  • Onboard the team for project based on technical/Management/Personal interview.
  • Conduct trainings for the team to meet technical requirement for the project.
  • Establish process roadmap for project execution with clear responsibilities and well defined control points.
  • Managers should utilize leadership, project management trainings and certifications conducted by the organization.
  • Follow the Quality improvement model in the project – CMM5, Six Sigma ISO, IEEE
  • Strictly follow the sign off process.
  • Ensure timely participation of all the team members in the daily/weekly status meeting.
  • Identify and set the project priorities.
  • Conduct the post implementation audit.
  • Post mortem meetings must be planned after every release
  • Encourage and keep motivate the team member for their work.


1 comment: