Yahara's Project Management Philosophy

Over the course of numerous software development project efforts, Yahara has defined a Software Development Lifecycle process based upon Agile principles and using the Scrum methodology for Project Management. This comprehensive formal process combines traditional and Agile techniques, and is able to combine the predictability and budgeting advantages of a traditional Waterfall methodology with the Agile benefits of painless change management, transparent process, frequent demos and feedback, and increased developer productivity. Scrum is an established Agile methodology that has a long standing track record of success in the completion of software projects.

Yahara's Hybrid Approach

While Agile processes provide tremendous benefits in productivity, transparency and communication, they do not provide a really good way to define an overall budget for a project, or prescribe any holistic way to define and refine system requirements. To address this, Yahara has developed a Hybrid process that starts out with a Project Definition phase. The goal of the definition phase is to make sure that all parties are in alignment on the goals of the project and how they will be approached. After the completion of this definition phase, Yahara moves into an Agile interative development process.
1
Requirements Analysis
The goal of the requirements analysis exercises is to gain a high level understanding of the project features and goals. Major functionality and workflows are defined during this phase. The typical deliverable of this analysis is a listing of business goals, feature lists and user profiles. Analysis and documentation of further details are done iteratively during the development phase of the project.
2
Specification of Application Architechture
Based on data collected in the requirements analysis, Yahara architects will evaluate possible approaches and architectures to determine the best technical approach to implementing the project. Yahara discusses the advantages and risks of different approaches with the client so that informed decisions have been made. Once an approach is chosen a high level system architecture that describes the major functional components of the system is assembled. Yahara will often leverage reusable components that it has developed and used across multiple projects to minimize the time required to implement the architectural frameworks as most all applications share some common technical requirements.
3
Prototyping
Yahara utilizes tools that help the client visualize how an application will be implemented. Screen mockups as well as more interactive prototypes can be created that help demonstrate the navigation and major functional elements of the application. In addition to these prototypes, Yahara will commonly implement functional proof of concept prototypes that will help prove out any areas of the application that provide technical challenges. Using these prototypes minimize risk of major changes in user interface or technological approaches later in the project when the impact on cost and schedule can be much more substantial.
4
Project Planning
The final aspect of the project definition phase is to have a high level project plan in place. This includes identifying the user stories required to deliver the requirements of the project. These user stories are roughly estimated and prioritized into an overall iteration plan for the project. Based on the results of this planning, Yahara and the client can discuss the project holistically and make decisions on tradeoffs that may be required to balance features, schedule and budget.
5
Sprint Planning
Frequent delivery is a proven technique that contributes to better quality, improved communication and increased customer satisfaction. Yahara Scrum teams typically work in two-week iterations, or “Sprints”, and begin each Sprint with a formal Sprint Planning meeting. In this meeting, the development team collaborates with customer product owners to prioritize the work to be performed during the Sprint, fine-tune estimates, and define the specific deliverables that will be completed.
6
Daily Stand-ups
Research has shown that software development teams that communicate frequently and openly are more likely to succeed, and less likely to get stuck and lose development time. Every Yahara development team gets together for a daily 15-minute “Scrum” meeting, in which each team member describes the work they completed the prior day, their plans for work today, and any issues that are blocking their progress. By raising issues early, the team is able to adjust quickly and work together to deliver on their commitments.
7
Demos and Deliverables
A major focus of Scrum is to deliver complete, tested and useable software as often as possible, and to avoid leaving features partly done. Every work item that is completed during a Sprint will be documented, tested and ready for use. The team holds an open Demo meeting at the end of each Sprint, in which each developer demonstrates and discusses the software that they completed in the Sprint. At this point the team gathers feedback from all attendees, and captures any additional work that should be planned and prioritized for future Sprints.
8
Sprint Retrospective
A key property of successful software project teams is the ability to make reflective improvements to the team itself. Yahara project teams allocate a bit of time at the end of each Sprint to reflect on how the process is working. This meeting gives the team a chance to identify what is going well, and to define any actions the team can take to make the process run even more smoothly.
9
Delivery
The Yahara project team works with clients to define milestone deliveries for each software project. A delivery consists of a complete set of features and functionality that is ready for production use. The team can provide user and technical documentation for all delivered software, and perform user training as needed.
10
Post-Development Support
Yahara can provide flexible support services for software that we develop and deliver. Yahara consultants are local, available and responsive, and we can provide an online helpdesk to track requests and ensure customer satisfaction.