Agile software development refers to software development methodologies centered round the idea of iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. Show
WHAT IS AGILE?Agile software development refers to a group of software development methodologies based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. Agile methods or Agile processes generally promote a disciplined project management process that encourages frequent inspection and adaptation, a leadership philosophy that encourages teamwork, self-organization and accountability, a set of engineering best practices intended to allow for rapid delivery of high-quality software, and a business approach that aligns development with customer needs and company goals. Agile development refers to any development process that is aligned with the concepts of the Agile Manifesto. The Manifesto was developed by a group of fourteen leading figures in the software industry, and reflects their experience of what approaches do and do not work for software development. Image: Agile methodology WHAT IS SCRUM?Scrum is a subset of Agile. It is a lightweight process framework for agile development, and the most widely-used one.
A Scrum process is distinguished from other agile processes by specific concepts and practices, divided into the three categories of Roles, Artifacts, and Time Boxes. These and other terms used in Scrum are defined below. Scrum is most often used to manage complex software and product development, using iterative and incremental practices. Scrum significantly increases productivity and reduces time to benefits relative to classic “waterfall” processes. Scrum processes enable organizations to adjust smoothly to rapidly-changing requirements, and produce a product that meets evolving business goals. An agile Scrum process benefits the organization by helping it to
Image: Scrum Process Source: Internet Need help with Agile or Scrum? CLICK HERE to speak to an expert today!Agile software development refers to software development methodologies centered around the idea of iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. The ultimate value in Agile development is that it enables teams to deliver value faster, with greater quality and predictability, and greater aptitude to respond to change. Scrum and Kanban are two of the most widely used Agile methodologies. Below are the most frequently asked questions around Agile and Scrum, answered by our experts. Agile software development refers to a group of software development methodologies based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams. Agile methods or Agile processes generally promote a disciplined project management process that encourages frequent inspection and adaptation, a leadership philosophy that encourages teamwork, self-organization and accountability, a set of engineering best practices intended to allow for rapid delivery of high-quality software, and a business approach that aligns development with customer needs and company goals. Agile development refers to any development process that is aligned with the concepts of the Agile Manifesto. The Manifesto was developed by a group of fourteen leading figures in the software industry, and reflects their experience of what approaches do and do not work for software development. Read more about the Agile Manifesto. Did you know that Agile can also be applied to hardware projects? Learn about Cprime’s revolutionary Agile for Hardware framework. Get more information and Mural templates to get started with Agile What is Scrum?Scrum is a subset of Agile. It is a lightweight process framework for agile development, and the most widely-used one.
A Scrum process is distinguished from other agile processes by specific concepts and practices, divided into the three categories of Roles, Artifacts, and Time Boxes. These and other terms used in Scrum are defined below. Scrum is most often used to manage complex software and product development, using iterative and incremental practices. Scrum significantly increases productivity and reduces time to benefits relative to classic “waterfall” processes. Scrum processes enable organizations to adjust smoothly to rapidly-changing requirements, and produce a product that meets evolving business goals. An agile Scrum process benefits the organization by helping it to
What are the benefits of Agile?Benefits to CustomerCustomers find that the vendor is more responsive to development requests. High-value features are developed and delivered more quickly with short cycles, than with the longer cycles favored by classic “waterfall” processes. Benefits to VendorsVendors reduce wastage by focusing development effort on high-value features, and reduce time-to-market relative to waterfall processes due to decreased overhead and increased efficiency. Improved customer satisfaction translates to better customer retention and more positive customer references. Benefits to Development TeamsTeam members enjoy development work, and like to see their work used and valued. Scrum benefits Team members by reducing non-productive work (e.g., writing specifications or other artifacts that no one uses), and giving them more time to do the work they enjoy. Team members also know their work is valued, because requirements are chosen to maximize value to customers. Benefits to Product ManagersProduct Managers, who typically fill the Product Owner role, are responsible for making customers happy by ensuring that development work is aligned with customer needs. Scrum makes this alignment easier by providing frequent opportunities to re-prioritize work, to ensure maximum delivery of value. Benefits to Project ManagersProject Managers (and others) who fill the ScrumMaster role find that planning and tracking are easier and more concrete, compared to waterfall processes. The focus on task-level tracking, the use of Burndown Charts to display daily progress, and the Daily Scrum meetings, all together give the Project Manager tremendous awareness about the state of the project at all times. This awareness is key to monitoring the project, and to catching and addressing issues quickly. Benefits to PMOs and C-Level ExecutivesScrum provides high visibility into the state of a development project, on a daily basis. External stakeholders, such as C-Level executives and personnel in the Project Management Office, can use this visibility to plan more effectively, and adjust their strategies based on more hard information and less speculation. What are the Scrum requirements?Scrum does not define just what form requirements are to take, but simply says that they are gathered into the Product Backlog, and referred to generically as “Product Backlog Items,” or “PBIs” for short. Given the time-boxed nature of a Sprint, we can also infer that each set should require significantly less time to implement than the duration of the Sprint. Most Scrum projects borrow the “XP” (Extreme Programming) practice of describing a feature request as a “User Story,” although a minority uses the older concept of a “Use Case.” We will go with the majority view here, and describe three reasonably-standard requirements artifacts found in Product Backlogs. User StoryA User Story describes a desired feature (functional requirement) in narrative form. User Stories are usually written by the Product Owner, and are the Product Owner’s responsibility. The format is not standardized, but typically has a name, some descriptive text, references to external documents (such as screen shots), and information about how the implementation will be tested. For example, a Story might resemble the following:
The elements in this User Story are:
There are two reasons for including the information about how to test the Story. The obvious reason is to guide development of test cases (acceptance tests) for the Story. The less-obvious, but important, reason, is that the Team will need this information in order to estimate how much work is required to implement the story (since test design and execution is part of the total work). StoryNot all requirements for new development represent user-facing features, but do represent significant work that must be done. These requirements often, but not always, represent work that must be done to support user-facing features. We call these non-functional requirements “Technical Stories.” Technical Stories have the same elements as User Stories, but need not be cast into narrative form if there is no benefit in doing so. Technical Stories are usually written by Team members, and are added to the Product Backlog. The Product Owner must be familiar with these Stories, and understand the dependencies between these and User Stories in order to rank (sequence) all Stories for implementation. DefectA Defect, or bug report, is a description of a failure of the product to behave in the expected fashion. Defects are stored in a bug-tracking system, which may or may not be physically the same system used to store the Product Backlog. If not, then someone (usually the Product Owner) must enter each Defect into the Product Backlog, for sequencing and scheduling. What are the Scrum roles?The three roles defined in Scrum are the ScrumMaster, the Product Owner, and the Team (which consists of Team members). The people who fulfill these roles work together closely, on a daily basis, to ensure the smooth flow of information and the quick resolution of issues. ScrumMasterThe ScrumMaster (sometimes written “Scrum Master,” although the official term has no space after “Scrum”) is the keeper of the process. The ScrumMaster is responsible for making the process run smoothly, for removing obstacles that impact productivity, and for organizing and facilitating the critical meetings. The ScrumMasters responsibilities include
In practical terms, the ScrumMaster needs to understand Scrum well enough to train and mentor the other roles, and educate and assist other stakeholders who are involved in the process. The ScrumMaster should maintain a constant awareness of the status of the project (its progress to date) relative to the expected progress, investigate and facilitate resolution of any roadblocks that hold back progress, and generally be flexible enough to identify and deal with any issues that arise, in any way that is required. The ScrumMaster must protect the Team from disturbance from other people by acting as the interface between the two. The ScrumMaster does not assign tasks to Team members, as task assignment is a Team responsibility. The ScrumMaster’s general approach towards the Team is to encourage and facilitate their decision-making and problem-solving capabilities, so that they can work with increasing efficiency and decreasing need for supervision. The goal is to have a team that is not only empowered to make important decisions, but does so well and routinely. Download the Scrum Master Role CheatsheetProduct OwnerThe Product Owner is the keeper of the requirements. The Product Owner provides the “single source of truth” for the Team regarding requirements and their planned order of implementation. In practice, the Product Owner is the interface between the business, the customers, and their product related needs on one side, and the Team on the other. The Product Owner buffers the Team from feature and bug-fix requests that come from many sources, and is the single point of contact for all questions about product requirements. Product Owner works closely with the team to define the user-facing and technical requirements, to document the requirements as needed, and to determine the order of their implementation. Product Owner maintains the Product Backlog (which is the repository for all of this information), keeping it up to date and at the level of detail and quality the Team requires. The Product Owner also sets the schedule for releasing completed work to customers, and makes the final call as to whether implementations have the features and quality required for release. Download the Product Owner Role CheatsheetTeamThe Team is a self-organizing and cross-functional group of people who do the hands-on work of developing and testing the product. Since the Team is responsible for producing the product, it must also have the authority to make decisions about how to perform the work. The Team is therefore self-organizing: Team members decide how to break work into tasks, and how to allocate tasks to individuals, throughout the Sprint. The Team size should be kept in the range from five to nine people, if possible. (A larger number make communication difficult, while a smaller number leads to low productivity and fragility.) Note: A very similar term, “Scrum Team,” refers to the Team plus the ScrumMaster and Product Owner. Download the Scrum Team CheatsheetHow does Agile save you money?What are some agile metrics I can use for reporting?What to measure in agile is the enduring question. There should be two primary filters we should ask ourselves before we measure anything; “will this measurement accelerate value delivery?,” and “will this measurement enhance trust?”. Below is an example of a fitting agile measurement. Typically an organization will create a goal to increase story point velocity, and this seems rational because we always strive to deliver more where possible. This perspective is looking at the problem from the wrong angle because what we want is value delivery not higher output. Those are not the same; one is outcome focused, and the other is production focused. Agile stresses outcome; which is value delivery, not output. Looking through the lens that equates increases in velocity to output assumes a few things; the teams are not working hard enough, and that output equals value. Of which both assumptions are typically untrue. We should be using velocity to run our business; a story point velocity can be used to divide the product backlog and plan roughly when specific features will be available for our customers. What we need to do is incent stability in velocity, not velocity that is changing or in flux. In a world where there are incentives for increasing velocity, the teams will oblige and provide a higher story point velocity. They will inflate the story points to achieve the desired increase, which in turn reduce our ability to run the business because the velocity is no longer meaningful. Addressed in a slightly different way we could measure the say/do of the sprint. Evaluating a team’s estimate of how many story points they will deliver against what they perform in a sprint. Immediately the incentive causes stability in story point velocity, which provides the ability for the business to predict when features will release to market. The former tells the teams they are not trusted, and erodes the creation of value delivery where the latter promotes both. It also catches teams doing good as their estimates start to converge to performance, moving to say/do of zero gives the business the ability to take the velocity to the bank as well as build trust within the organization. Everybody wins; our customers, our organization, and the team. Sample Operational Metrics
Sample Output Metrics
Sample Outcome / Value Metrics
Take a look at these articles for more info on Agile Metrics: People Metrics: How Annual Performance Reviews Enable Bad BehaviorsValidating Agile with Performance MetricsAre you Misusing Metrics in Agile and Scrum?Metrics in Project ManagementHow do I deal with Distributed Teams in Agile?There are two dimensions to this question. Having teams with remote team members and having all local teams where the teams are intact but in different geographical locations. Avoid the former at all costs. Intact teams in different geographical locations The organization needs to support experimentation to all problem solving because that takes failure out of the conversation. Experiments require a known state, the desired state, and activities that move toward the desired state. Allow the teams to experiment, evaluate, and adjust to the new found learning resulting from that experience. Then be prepared to support a different approach and another experiment. Having teams with remote team members The soundest way to deal with this is to create all teams with local people. Challenge your thinking, assumptions, and constraints if colocated teams are not possible. As a last resort following the path described above should make the best of a terrible situation. Helpful Resources: Managing Distributed Teams Daily Scrums in a Distributed
World What is SAFe?How does Agile relate to DevOps?While Agile and DevOps started as independent methodological movements, they share a number of traits focused on improving the efficiency and speed of teams. As organizations become more Agile and refine their project management skill sets, they increasingly depend on technical teams being able to keep pace and maintain a certain flexibility. This is where DevOps comes in as the “yang” to Agile’s “yin”. The DevOps approach helps development groups utilize new tools, automation, and different cultural strategies to change not just how they work themselves, but how they work with others. It becomes a symbiotic relationship where product teams work hand in hand with developers and testers and the like to ensure everyone has more contextual awareness. This promotes a greater overall quality of deliverables in a shorter period of time. Helpful ResourcesContested Development:
Finding Pragmatism in Agile & DevOps Should I be using Scrum, Kanban or another flavor of Agile?Scrum is the dominant team based flavor of agile used today, it is over twenty years old and is time-tested. That said Kanban has its origins in manufacturing and Toyota applied it in 1953, another long-lived approach. Then there are various flavors of scaling frameworks to consider if organizational size is one of your contexts. Context is primary to the answer. What commercial needs challenge your business? What size is your organization? How is your company organized? Are your core product teams dispersed in many geographical locations? Therefore the actual commercial problems your business faces and the way you respond to your customers are contextual to the answer. Asking the question, “Scrum, Kanban or another agile flavor” is the first step and an excellent place to start. Considering a shift toward an agile approach is the first step toward sustainability. As described above agile is a requirement for future success, it is not new. Those organizations that do not adopt some form of agile will not be responsive to customer and market needs and are significantly disadvantaged. Helpful Resources: 3 Differences Between Scrum and Kanban You Need to KnowA Peek Inside Agile: Scrum and KanbanIs My Project Suitable for Kanban or Scrum?How do I scale Agile adoption?Scaling agile is one of the most challenging issues to solve because there are so many variants of how organizations are structured and their commercial needs are diverse. This awareness brings into focus the notion of context. Because of that diverse variance, there have emerged many scaling frameworks, and the notion of, “one-size fits all” is a false premise. Scrum is the dominant team framework; therefore, most scaling frameworks have Scrum at their core. Using Scrum as the basis to solve scaling problems is sound because most of them add to extend as a technique. As an example, the SAFe scaling frameworks introduce Kanban to facilitate the scaling challenges while keeping Scrum at its core. The critical issues to consider when scaling beyond the team dynamic are; coordination, communication, shared or dependent work, and remoteness of groups or team members. These limitations are the same constraints at the team implementation of Scrum; however, as teams increase in numbers, they become amplified and extremely more difficult to solve. As an organization moves from one-team to multi-teams structure, broader issues become apparent. They tend to be the roadmap and investment rations between competing initiatives to support the vision and goals of the business. Organization size also plays into the implementation and adoption of the scaling efforts as well as the scaling framework selected. A business of three hundred employees and an organization of tens of thousands employees require different approaches. Again illustrating the “one-size fits all” idiom. To be sure the organizational scaling of Scrum is a whole company activity, not something isolated to product management and engineering as often occurs with Scrum implementations. Learn more about scaling Agile Helpful resources Lean Agile Requirements in Large Scale Complex SystemsScaling Agile with Atlassian and SAFe®Want to Scale Agile Across Your Enterprise? See What 5,000 Respondents SayHow to Bring Agile to Scale in Your EnterpriseWhat is the best holistic approach to Agile adoption?Often when an organization adopts agile, the focus is on the engineering services group with some marginal collaboration with the product management department. This pattern is pervasive and typically explains why businesses do not feel that they receive the benefits they expect from an agile adoption, furthering the conjecture that agile does not work. Commercial needs, company size, organizational structure, and a host of other considerations create the context needed to frame an approach to agile adoption. By far the leading success system requires the inclusion of all aspects of the business. System thinking, that of understanding that all domains of the company accomplish value delivery are aligned and working together. Therefore to ask the engineering department with some support from the product management department become agile misses the mark. Unfortunately, the business will more than likely have to consider restructuring and shifting management styles to achieve organizational alignment. Best outcomes happen when the leadership team goes all in with an open mind to the possibilities when they collaborate. Collaborate with a focus on value delivery and working in a supportive way recognizing that they all will reshape in support of those possibilities. Some examples are when the accounting department transition from Cost Accounting to Lean Accounting. Human resources department considers the moving to OKRs and eliminating MBOs and KPIs. The company metrics focus on measurements that correlate to value delivery over output. The best approach when considering an agile adoption relates to your organization’s context as described above. Then be inclusive with the leadership team and their areas of focus with an eye to accelerated value delivery over output and utilization. How do I amplify the impact of Agile?By developing a learning organization with the benefit of a clear purpose and providing an environment where people are trusted. Learning
Organization We need to involve the entire company in these principles because the higher benefits from agile are dependent on system thinking. System thinking coupled with the focus on value delivery. We desire the measurements that influence the engineering services to be consistent with what drives the business. Clear Purpose Trusting Environment Given that set of constraints, the experiment yields either a supported outcome or a null hypothesis. And both are significant data points that should influence our future behavior. In conclusion, agile is a company-wide sport, and it is not merely an engineering services activity. Without all three; learning organization, clear purpose, and trusting environment, the effects of agile will be diminished. How have other organizations successfully adopted Agile?Context is essential, the framework for a change as dramatic as altering the way a company operates requires leading the staff through the journey as opposed to dragging them. Some critical areas for success are to recognize that change is difficult, and an acknowledgment that this endeavor is a human effort. Embracing the Scrum values of commitment, courage, focus, openness, and respects. And expressing them in ways that the company entirely embraces them, so they become organizationally shared values will promote success. A dynamic approach to seeking volunteers will surface staff looking for positive change and filter out those opposed to change. This strategy will remove the organizational blockers from the transition because they are not part of the progress toward the new operational method. As time progresses the change begins to have visible outcomes; happier staff, innovation grows more pronounced, and value delivery becomes accelerated. Suddenly there becomes momentum as staff, teams, departments, and business units become pulled toward the new operating model of agile. The issue of scaling agile is monolithic therefore starting at the team, or a few teams are the beginning of the journey which is required. Caution against applying scaling frameworks on day one typically yield less than beneficial results in the long run. View our Agile Success Case Studies Is based on iterative and incremental development where requirements and solutions evolve through collaboration between crossAgile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. The Agile Manifesto introduced the term in 2001.
What are agile development methodologies?Agile software development -- also referred to simply as Agile -- is a type of development methodology that anticipates the need for flexibility and applies a level of pragmatism to the delivery of the finished product.
Is agile a methodology?Rather, agile is a group of methodologies that demonstrate a commitment to tight feedback cycles and continuous improvement. The original Agile Manifesto didn't prescribe two-week iterations or an ideal team size. It simply laid out a set of core values that put people first.
Is Agile methodology an iterative approach?Agile methods of software development are most commonly described as iterative and incremental development. The iterative strategy is the cornerstone of Agile practices, the most prominent of which are SCRUM, DSDM, and FDD.
|