|
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.
|
|
|
|