top of page
Search
  • aleksey21sbo

Agile Software Development with Scrum: Learn from Ken Schwaber, the Co-Creator of Scrum



If you are just getting started, think of Scrum as a way to get work done as a team in small pieces at a time, with continuous experimentation and feedback loops along the way to learn and improve as you go. Scrum helps people and teams deliver value incrementally in a collaborative way. As an agile framework, Scrum provides just enough structure for people and teams to integrate into how they work, while adding the right practices to optimize for their specific needs. You may be thinking, that sounds great! But, how do I get started?




agile software development with scrum ken schwaber pdf 31



Scrum is a framework for project management[1] commonly used in software development, although it has been used in other fields including research, sales, marketing and advanced technologies.[2] It is designed for teams of ten or fewer members who break their work into goals that can be completed within time-boxed iterations, called sprints. Each sprint is no longer than one month and most commonly lasts two weeks. The scrum team assesses progress in time-boxed daily meetings of 15 minutes or fewer, called daily scrums (a form of stand-up meeting). At the end of the sprint, the team holds two further meetings: one sprint review intended to demonstrate the work done for stakeholders and solicit feedback, and one sprint retrospective intended to enable the team to reflect and improve.


The term scrum is borrowed from rugby, where it is a formation of players. The term scrum was chosen by the paper's authors because it implies teamwork.[4] The software development term scrum was first used in a 1986 paper titled "The New New Product Development Game" by Hirotaka Takeuchi and Ikujiro Nonaka.[5] The paper was published in the January 1986 issue of Harvard Business Review.


The term scrum was previously trademarked by Schwaber, but the registration has been allowed to lapse. It has been speculated that this was done with the intention of recognizing and enabling the wide community use of the term.[10]


Hirotaka Takeuchi and Ikujiro Nonaka introduced the term scrum in the context of product development in their 1986 Harvard Business Review article, 'The New New Product Development Game'.[14] Takeuchi and Nonaka later argued in The Knowledge Creating Company[15] that it is a form of "organizational knowledge creation, [...] especially good at bringing about innovation continuously, incrementally and spirally".


The authors described a new approach to commercial product development that would increase speed and flexibility, based on case studies from manufacturing firms in the automotive, photocopier, and printer industries.[14] They called this the holistic or rugby approach, as the whole process is performed by one cross-functional team across multiple overlapping phases, in which the team "tries to go the distance as a unit, passing the ball back and forth".[14] (In rugby football, a scrum is used to restart play, as the forwards of each team interlock with their heads down and attempt to gain possession of the ball.[16])


The scrum framework was based on research by Schwaber with Babatunde Ogunnaike at DuPont Research Station and University of Delaware.[8] Ogunnaike advised that attempts to develop complex products, such as software, that weren't based in empiricism were doomed to higher risks and rates of failure as the initial conditions and assumptions change. Empiricism, using frequent inspection and adaptation, with flexibility and transparency is the most suitable approach.


In 2001, Schwaber worked with Mike Beedle to describe the method in the book, Agile Software Development with Scrum.[20] Scrum's approach to planning and managing product development involves bringing decision-making authority to the level of operation properties and certainties.[8]


The product owner, representing the product's stakeholders and the voice of the customer (or may represent the desires of a committee[24]), is responsible for delivering good business results.[25] Hence, the product owner is accountable for the product backlog and for maximizing the value that the team delivers.[24] The product owner defines the product in terms of customer-centric outcomes (typically - but not limited to - user stories), adds them to the product backlog, and prioritizes them based on importance and dependencies.[26] A scrum team should have only one product owner (although a product owner could support more than one team)[27] and it is strongly advised against combining this role with the role of the scrum master. The product owner should focus on the business side of product development and spend the majority of time liaising with stakeholders and the team. The product owner does not dictate how the team reaches a technical solution, but seeks consensus among team members.[28][29][30][better source needed] This role is crucial and requires a deep understanding of both sides: the business and the engineers (developers) in the scrum team. Therefore, a good product owner should be able to communicate what the business needs, ask why they need it (because there may be better ways to achieve that), and convey the message to all stakeholders including the developers using technical language, as required. The product owner uses scrum's empirical tools to manage highly complex work while controlling risk and achieving value.


Communication is a core responsibility of the product owner. The ability to convey priorities and empathize with team members and stakeholders is vital to steer product development in the right direction. The product owner role bridges the communication gap between the team and its stakeholders, serving as a proxy for stakeholders to the team and as a team representative to the overall stakeholder community.[31][32]


The team is self-organizing. While no work should come to the team except through the product owner, and the scrum master is expected to protect the team from distractions, the team are encouraged to interact directly with customers and/or stakeholders to gain maximum understanding and immediacy of feedback.[26]


A sprint (also known as an iteration, timebox or design sprint) is the basic unit of development in scrum. The sprint is a timeboxed effort; that is, the length is agreed and fixed in advance for each sprint and is normally between one week and one month, with two weeks being the most common.[8]


Usually, daily meetings are held to discuss the progress of the project undertaken and any difficulty faced by any team member of the team while implementing the project. The outcome of the sprint is a deliverable, albeit with some increments. The scrum is used for projects like Web Technology or development of a product for the new market, i.e. the product with many requirements or fast-changing requirement.


No detailed discussions should happen during the daily scrum. Once over, individual members can discuss issues in detail, often known as a 'breakout session' or an 'after party'.[43] Issues or bugs identified should be collectively discussed outside of the daily scrum with a view to working toward a resolution.


The backlog can also include technical debt (also known as design debt or code debt). This is a concept in software development that reflects the implied cost of additional rework caused by choosing an easy solution now instead of using a better approach that would take longer.


The product owner can cancel a sprint if necessary,[3] and may do so with input from others (developers, scrum master or management). For example, recent external circumstances may negate the value of the sprint goal, so it is pointless in continuing.


The product backlog contains the product owner's assessment of business value and may include the team's assessment of effort or complexity, often, but not always, stated in story points using the rounded Fibonacci scale. These estimates help the product owner to gauge the timeline and may influence the ordering of product backlog items; for example, for two features with the same business value, the product owner may schedule earlier delivery of work with the lower development effort (because the return on investment is higher) or the one with higher development effort (because it is more complex or riskier, and they want to retire that risk earlier).[45]


The increment is the potentially releasable output of the sprint that meets the sprint goal. It is formed from all the completed sprint backlog items, integrated with the work of all previous sprints. The increment must be complete, according to the scrum team's Definition of Done (DoD), fully functioning, and in a usable condition regardless of whether the product owner decides to actually deploy and use it.


Many companies use universal tools, such as spreadsheets to build and maintain a sprint backlog. There are also open-source and proprietary software packages which use scrum terminology for product development or support multiple product development approaches including scrum.


Scrum is a feedback-driven empirical approach which is, like all empirical process control, underpinned by the three pillars of transparency, inspection, and adaptation. All work within the scrum framework should be visible to those responsible for the outcome: the process, the workflow, progress, etc. In order to make these things visible, scrum teams need to frequently inspect the product being developed and how well the team is working. With frequent inspection, the team can spot when their work deviates outside of acceptable limits and adapt their process or the product under development.[26]


Scrum is used in a variety of contexts to achieve many different aims. To accomplish those varying ends, Scrum is frequently tailored or adapted.[59] A common approach to adapting scrum is hybridization of scrum with other software development methodologies as scrum does not cover the whole product development lifecycle; therefore, organizations find the need to add in additional processes to create a more comprehensive implementation. For example, at the start of product development, organizations commonly add process guidance on the business case, requirements gathering and prioritization, initial high-level design, and budget and schedule forecasting.[60] 2ff7e9595c


1 view0 comments

Recent Posts

See All
bottom of page