Agile & Scrum

Utilize Agile & Scrum frameworks with Omni212 to emphasize teamwork, frequent deliveries of working software, close customer collaboration, and the ability to respond quickly to change.

Agile

What is Agile? Agile is an umbrella term that refers to a collection of methodologies that support a particular philosophy and set of values about engineering practices. Types of Agile include Scrum, Kanban, Extreme Programming, Lean, and Adaptive Engineering. These have many overlapping practices aimed at responding to changing business demands by reducing waste, releasing more quickly, and working collaboratively.

sprint-onteration

How do Agile methodologies get work done?

Agile development is implemented through a series of feedback loops. The process iterates multiple nested loops simultaneously. It uses the feedback from each iteration to improve the next iteration at that level. eXtreme Programming involves all of these loops. Scrum involves iteration plan and standup. Both also include a process improvement loop.

Looking for effective software development methods, iterative planning and feedback that accelerates the delivery of your business value? In need of a flexible, holistic product development strategy that keeps you ahead of the game? With Agile from Omni212, you can have all that and more!

Simple, Efficient Processes

Agile is a group of software development methods that promote powerful adaptive planning, evolutionary development, quick delivery and growth. Its capabilities are backed by countless industry-leading companies including Facebook, Twitter, Linkedin, Whatsapp, Google Cars, Tesla Motors and Uber. The process, simple yet compelling, starts with the creation of a prioritized wish list called a sprint backlog. A team then pulls a small chunk from the top of that wish list before deciding how to implement those pieces. The team has a certain amount of time to complete the work and the sprint ends with a review and retrospective. This simply enables you to create amazing applications in less than half the time when compared to waterfall.

Innovatively Powerful

Agile offers a lightweight framework for helping teams maintain a focus on delivering business value and reduce overall risk associated with software development. With Agile from Omni212, you’ll boost team interactions with face-to-face conversation for the best form of communication that increases productivity. Enjoy close daily cooperation between business people and developers, increase adaptation ability to changing circumstances and enhance continuous attention to technical operations and design. But most importantly, Agile allows you to boost customer satisfaction with continuous delivery of useful software.

Tailored for Businesses

In today’s competitive business environment, being first is the difference between making and failing. And with Agile from Omni212, you’ll gain the competitive edge by taking newer products to the market in less than half the time. Not only will you enhance workplace productivity and efficiency with industry-leading development method, but you’ll also increase customer satisfaction with a product that is designed meticulously and seamlessly through sprint processes which allows for opportunities to constantly refine your product as well as manageable units to help focus on high quality development.

Agile Fundamentals

Who have become successful using Agile?

  • Uber, Google cars, Tesla motors, Facebook, Twitter, Linkedin, Whatsapp
  • These companies have brought disruptions in their respective industries by using Agile

What are the advantages of using Agile methodologies?

  • Ability to cause disruption in any industry
  • Ability to create amazing applications in less than half the time when compared to waterfall
  • Acquire competitive edge and succeed in taking newer products to the market in less than half the time
  • Accelerated enhancement of:
  • organizational productivity
  • workplace productivity
  • team productivity
  • personal productivity and even
  • family productivity

What are the core Agile principles?

The official values are stated in the Agile Manifesto:

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan
  • That is, while there is value in the items on the right, we value the items on the left more.
  • These values describe the common ground between all Agile approaches. Each Agile methodology expands upon this set in some way.
  • Work tiny: Whatever you do, do it in a smaller chunk today than you did yesterday.
  • Prove everything: Know what it means to finish and always demonstrate that you have met the requirements before moving on.
  • Work for a customer: Know your customer. Anything that doesn’t serve your customer is waste.
  • Work for yourself: Anything that doesn’t serve you is waste.
  • Work sustainably: Optimize for consistent, stable output, not for short-term gains.
  • Work as a team: The team owns all objectives and work products. The team succeeds or fails as a whole.
  • Focus the whole team: Work on one thing at a time.
  • Target simplicity: Design code and processes to eliminate dependencies.
  • Achieve technical excellence: Rather than settling for an adequate solution to a complex problem, simplify the scope to today’s needs and solve it excellently.
  • Learn constantly: Each individual and team learns each day. The team uses these lessons to improve its processes.
  • Get done: Don’t let anything drag on. Pick an objective and meet it before moving on. Working software is the primary measure of progress.

At a high level, here are the significant changes for each role:

  • PM: PMs inform the team about the needs of external stakeholders (customers, partners, and management). The backlog becomes part of your spec process. Where PMs tend to be the interface for the required set of features in a spec, this now moves into backlog iteration. Documentation should be developed iteratively and incrementally just like the code – test a little, code a little, and document a little. Specs can be another format for prototyping and defining stories that align with a given sprint and the team’s priorities.
  • Dev: Code is proven to do what the team expects. Devs inform the team about the needs of the system, including reducing duplication, eliminating dependencies, and others. Engineering practices, such as unit tests, help prove the code and often replace the need for detailed functional specifications. The code and tests now document the system’s behavior.
  • Tester: Tests are about learning, not just proving. Testers help Devs learn where their current standard of proof is insufficient.
  • Other roles: Other individuals work directly with the core team and inform them about needs they know about, such as UX, localization, operationalization, and monitoring.
  • Everyone together: Manages the project, understands the customer, improves the process, chooses product direction, and learns.
All of these embrace Agile values and tenets as an overarching philosophy. Scrum, Lean, and eXtreme Programming are methodologies. Scrum is a planning methodology that works for any kind of project; Lean optimizes and improves any process or methodology. eXtreme Programming (XP) is specialized for software and includes planning, design, implementation, maintenance, and operationalizing. Kanban is a planning technique that can be used in any methodology –whether Agile or not.
A scenario is a story told from the customer’s point of view that describes their problem and what they want to achieve. It does not solve the problem or include implementation details, but it does describe the happy ending. Here is an example of a scenario:

“Gene is an IT generalist in a company whose policies require extensive logging, so he must make sure there is always enough free disk space on the 200 web servers that he manages. Currently, he performs this task manually several times per day. He wants to automate this, but he is not a programmer and he always struggles to get scripts working.

Gene discovers a new way to easily automate common IT tasks, and finds it straightforward despite his limited programming background. Within 5 minutes, he is able to automate his first task on a local machine. When he tries to run it on multiple machines, the task fails, but with troubleshooting, soon he can run the task successfully across his entire cloud. Gene is pleasantly surprised at how easy it was to achieve such a time savings in his day-to-day work.”

A user story is a statement that supports a scenario. It is written from the customer’s perspective and describes the customer’s intent, not what the software does. A user story fills in the “” section of the scenario. It describes what the user is doing during that time in order to accomplish the magic. As such, it is showing a solution to the problem. It still doesn’t get fully into solution space, however. A story does not tell how the software helps the user take each action; it just shows an action that the user takes.

A user story follows this format: As a , I want (or need) so that I can . Here is an example:
“As an online video user, I want to search for games and get results that match my interest level.”

You’ll notice that there are no implementation details.

User stories help focus everyone’s energy on a tangible, customer-facing goal. They help avoid putting energy into extra code capabilities that are not actually adding value to a specific scenario. They also help ensure that when everyone thinks something is done the discussion stays around whether the customer-facing goal has been accomplished, rather than a bunch of people doing tasks that don’t add up to a coherent goal.
A sprint is defined length of time, typically 1- 4 weeks long, in which to complete chunks of work. A sprint generally includes user stories, estimates of how long they will take to complete, and acceptance criteria (the definition of “done”). They focus on the completion of something tangible that a customer can give input on, which is referred to as a minimally viable product (MVP).
At the beginning of each sprint, the team writes user stories that support scenarios. It then prioritizes and estimates the work, with the team agreeing on what “done” looks like. As the sprint continues, the team holds daily standup meetings, aimed at less than 15 minutes, using a storyboard or wall to track progress. During each standup, work tasks are updated and unblocked if necessary. At the end of the sprint, the team demos the work to get feedback and celebrate. It then holds a retrospective to discuss how the sprint went from a process standpoint and to agree upon a change for the next sprint.

The following graphic shows what’s involved in a sprint:

  • Work in tiny steps
    • Make each iteration add value to your solution
    • Agree to what done is
    • Prove and complete each iteration before moving on
  • Tune engineering systems to optimize for the flow of work getting done. If it takes hours or days to verify the quality, it’s hard to work tiny without wasting time waiting.
  • Measure the team’s velocity to understand organizational capacity and to drive for consistency and increased efficiency over time (continuous improvement). Don’t increase the sprint to fit the story; rather, decrease the story to fit the sprint.
  • Use relative estimation for planning. Don’t try to predict vacations, sick leave, or scope creep.
  • Focus on eliminating dependencies.
A product backlog is a list of the team’s prioritized work. It consists of user stories that the team is considering adding to the product in the future.

A sprint backlog (sometimes called a sprint commitment) is a list of stories that the team has committed to complete this sprint. A new backlog is created at the beginning of each sprint.

Velocity is the calculation of what the team actually delivered from each week’s sprint plan. That figure is then used to accurately plan work for the next sprint. For example, if a team planned to deliver 18 units of work in a sprint, but only delivered 11, the team’s velocity is 11.

This FAQ covers the aspects of Agile related to planning. It does not cover:

  • The core changes in how people write code that enables everything else.
  • How to transition into agile approaches.
  • What cultural changes will occur as a result of practicing agile methods.
  • How to choose an Agile methodology.
  • How to lead an agile team.
  • Tools and infrastructure that support agile teams.