iCRG Labs Follows Scrum Model
To keep simple, reduce the cost, speeds up development, testing and delivery, we
follow Scrum - an agile process at iCRG Labs.
What is Agile Methodology?
Agile methodology is an approach to project management, typically used in software development.
It helps teams respond to the unpredictability of building software through incremental, iterative work cadences, known as sprints.
What is Scrum development methodology?
Scrum is a lightweight agile method for software development. In Scrum, projects are divided into succinct work cadences, known as
sprints, which are typically one week, two weeks, or three weeks in duration. At the end of each sprint, stakeholders and team members
meet to assess the progress of a project and plan its next steps. Scrum is ideally suited for projects with rapidly changing or highly
emergent requirements.
Scrum is a software development methodology which consists of:
- Management methodology
- Enhancement methodology
- Maintanance methodology
The Roles of Scrum
Scrum has three fundamental roles: Product Owner, ScrumMaster, and team member.
- Product Owner: In Scrum, the Product Owner is responsible for communicating
the vision of the product to the development team. He or she must also represent
the customer’s interests through requirements and prioritization. Because the Product
Owner has the most authority of the three roles, it’s also the role with the most
responsibility. In other words, the Product Owner is the single individual who must
face the music when a project goes awry. The tension between authority and responsibility
means that it’s hard for Product Owners to strike the right balance of involvement.
Because Scrum values self-organization among teams, a Product Owner must fight the
urge to micro-manage. At the same time, Product Owners must be available to answer
questions from the team.
- Scrum Master: The Scrum Master acts as a liaison between the Product Owner
and the team. The ScrumMaster does not manage the team. Instead, he or she works
to remove any impediments that are obstructing the team from achieving its sprint
goals. In short, this role helps the team remain creative and productive, while
making sure its successes are visible to the Product Owner. The Scrum Master also
works to advise the Product Owner about how to maximize ROI for the team.
- Team Member: In the Scrum methodology, the team is responsible for completing
work. Ideally, teams consist of seven cross-functional members, plus or minus two
individuals. For software projects, a typical team includes a mix of software engineers,
architects, programmers, analysts, QA experts, testers, and UI designers. Each sprint,
the team is responsible for determining how it will accomplish the work to be completed.
This grants teams a great deal of autonomy, but, similar to the Product Owner’s
situation, that freedom is accompanied by a responsibility to meet the goals of
the sprint.
This is how Scrum works?
- Backlog: Product, Release, Sprint Backlog - lists of all functionality in
product, release and sprint respectively. Product Owner responsible for the backlog
management and maintenance.
- Iterative development: The whole project gets divided into sprints usually
4 weeks duration each. Sprints have fixed duration (time boxing). Time boxing enables
regular deliveries supports project heart beats and helps development teams to focus
on a shippable product in the end of each sprint.
- Scrum meetings: Daily meetings where team members answer the following questions:
What have you done since the last Scrum meeting? What has impeded your work? What
do you plan on doing between now and the next Scrum meeting?
- Burn Down Charts: Scrum Sprint Burn Down chart shows implementation progress
during a single sprint. It provides answers on the following questions: When sprint
could be completed based on previous progress? What is the most possible Scrum team
Velocity in future sprints?
- Sprint review meeting: Facilitated by Scrum Master and provides an inspection of project progress at the
end of the every Sprint. The goal is to improve development process by introducing
new practices, changing existing practices, etc.
The sprint cycle is an iterative cycle of about 3-4 weeks, in which the actual development
of the product is done. It starts out with a Sprint Planning Meeting to decide what
will be done in the current sprint. Then the development is done. A sprint is closed
with a Sprint Review Meeting where the progress made in the last sprint is demonstrated,
the sprint is reviewed, and adjustments are made to the project as necessary.
The sprint cycle is repeated until the product's development is complete. The product
is complete when the variables of time, quality, competition, and cost are at a
balance.
- Develop the product further - implement, test, and document.
- Wrap up the work - get it ready to be evaluated and integrated.
- Review the work done in this sprint.
- Adjust for any changes in requirements or plans.
Why Scrum?
- Productivity increases due to optimized resource usage (from 10% to 400% depending
on team, envi ronment, project, agile experience, etc...
- Continuous development process improvement.
- Communication improvement inside development team and between Scrum team and customer.
- Reduced time-to-market via frequent releases.
- Scrum builds "Successful team" attitude where everybody likes work in.
- This allows a project’s direction to be adjusted or reoriented based on completed
work, not speculation or predictions.
- The client is happy because they received what they needed and expected.
Here are some comments from successful teams:
- We did the first piece and then re-estimated—learn as you go!
- We held a short, daily meeting. Only those who had a need attended.
- The requirements document was high level and open to interpretation, but we could
always meet with the systems engineer when we needed help.