Water Process
Software development is just not about technology. It is about communication. It is about appealing to higher vision and knowing the business need that you are trying to fulfill. It is about discipline and collaboration. It is not about being tactical, but it is about being strategic.
We have a custom process "Water" which is combination of agile methodologies, traditional waterfall and project management practices. It is uniquely designed for global teams to innovate, to add value and to excel. The process evolved by analyzing real life issues with global software development challenges and outsourcing failure reasons. We believe that all the practical issues can be addressed by process.
This process is designed to blend with your process without affecting the basis. The process is a set of best practices for success of global teams
- Effective, continuous & proactive communication
- Focus on end goal
- Zero waste policy
- Know the problem you are trying to solve
- No 'yes' until it is 'Yes' in true sense
- Good Morning Meeting - Objectives, Personal Accountability
- Check Point - Monitor progress, Identify Risks
- Iterations - weekly plan
- Retrospective - evaluate, Learn and Evolve
- Weekly Health Check - Continuous Improvement
- Code Management
- Unit Testing
- Checklist
- Release Process
- Change Request
- Code Review
Principles
- Communication should be proactive, effective and continuous
- No "Yes" until it is "Yes" in true sense.
- Software is developed to solve a problem. Understand the problem you are trying to solve
- Zero waste policy
- Focus on end goal
- Organizing work
- Communication
- Development approach (End goal in mind and end user perspective)
- Testing
- Code management
- Being Focused and fast
- Continuous improvements
-
Water process is based on following 5 principles:
Practices are defined for
Project Management Approach
Don't fall in love with the plan. Fall in love with process of planning.

Practices
- Self-organization
- Team collaboration
- Personal accountability
- See more
-
-
Practice II: To-Do list
Keep a to-do list for short term and long term tasks, so we never "forget" them.
- To-Do Lists are prioritized lists of all the tasks that you need to carry out.
- They list everything that you have to do, with the most important and the least important tasks.
- By keeping a To-Do List, you make sure that you capture all of the tasks you have to complete in one place
- To-Do Lists are very simple, they are also extremely powerful, both as a method of organizing yourself and as a way of reducing stress. And most important thing, you do not have to remember, you delegate that to a system called "To-Do list".
Practice III: Check point meeting
- This meeting should be conducted at around 3 pm to review the targets decided during the GM meeting
- Purpose of this meeting is to
♦ Remind the targets for the day,
♦ Evaluate progress and address obstacles,
♦ Trigger communication in case of ambiguities
♦ Identify risk to the schedule
♦ Communicate dependencies - At the end of the meeting, everyone should have a sense for their own progress, team progress and should trigger required communication
Practice IV: Daily status
Communicate daily status via email and through task tracking tool. This helps to keep track of the project and task progress. Also, this is a self management tool to monitor daily objectives.
Generally, project leader reconciles the status for the project.Practice V: Weekly health check
- Meeting conducted on each Friday
- Review the progress, consistency of process and reconcile project reporting
- Identify achievements of the team members
- Retrospect and identify process improvements
Practice VI: Communication
- No communication is over communication. Keep the communication proactive, effective and continuous.
- Avoid assumptions and if any, communicate those.
- Do not wait for end of the day or a meeting to communicate things that impact the project, deliverables and stakeholders

Practice VII: Code management
- Update your local code every morning from SVN
- Check in code for every task. Please do not check in the code at the end of the day.
Before check in, take a diff from the repository. Make sure each file has diffs specific to changes you made. There shouldn't be any white space difference(s) between local and remote file. - Update/Merge the code if the file was modified before your check in. If there was a merge, test the functionality again.
- Check in the code with proper comments/issue#. If you have to fix issue# 2, issue# 6 and issue# 7, please have 3 sets of checkins corresponding to the issue fixes
- If your check in needs some environment updates/changes, mail about those specifically to the affected parties
- The code in repository should always compile and work.
- Never keep changes local to your computer for longer durations, its unsafe.
- Do not format the file using code formatter as this will ruin history of the file. Your code changes will be lost in the formatting changes (which affects complete file). Moreover, you will not be able to take diff of this revision with previous revisions because of white space diffs.
See less
-
All practices defined do not demand too much time from the project team. Most of the meetings and practices require between 5 minutes to 15 minutes of the team members
Practice I: Good Morning Meeting
This practice focuses on 'Organizing work'
Purpose of GM meetings
Process Flow

Guidelines
- Time Estimation
- Unit testing
- Cross browser compatibility
- Usability of web applications
- Data modeling
- Open source usage
- Release management (QA, Integration and Production)
-
Guidelines and Checklists
Guidelines and checklists are also defined for
