Agile development approaches are becoming increasingly popular these days… but it can mean very different things to different people, to me it’s like being part of the mob.
Email me for the MS PowerPoint version.
3. Making Scrum’s Bones
Product Owner
• Liaises with Managers / C-Level Managers
Scrum Master
• Removes blockages
• Process monitor
Team
• Includes
• Developers
• Technical Writers
• Testers
4.
5. Rites and Codes Of Conduct
Initiation ceremony & Artefacts
Mob Agile / Scrum
• Ceremony • Ceremony
– Weird – Release Planning
• Artefacts – Sprint Planning
– a pistol, a dagger and an – Daily stand up
image of a saint • Artefacts
– Life long commitment to the – Product Backlog
family – Sprint Backlog
– Burn down chart
6.
7. Rites and Codes Of Conduct
Commandments
Mob Agile / Scrum
• No one can present himself directly to another • Manifesto
of our friends. There must be a third person to
do it. – Individuals and interactions over
• Never look at the wives of friends. processes and tools
• Never be seen with cops. – Working software over
• Don't go to pubs and clubs. comprehensive documentation
• Always being available for Cosa Nostra is a duty - – Customer collaboration over
even if your wife is about to give birth. contract negotiation
• Appointments must absolutely be respected.
– Responding to change over
• Wives must be treated with respect.
following a plan
• When asked for any information, the answer
must be the truth. • + 12 Principles behind the Agile
• Money cannot be appropriated if it belongs to Manifesto
others or to other families.
• People who can't be part of Cosa Nostra:
anyone who has a close relative in the police,
anyone with a two-timing relative in the family,
anyone who behaves badly and doesn't hold to
moral values.
8.
9. 12 Principles behind the Agile Manifesto
• Our highest priority is to satisfy the customer through early and continuous delivery of valuable
software.
• Welcome changing requirements, even late in development. Agile processes harness change
for the customer's competitive advantage.
• Deliver working software frequently, from a couple of weeks to a couple of months, with
a preference to the shorter timescale.
• Business people and developers must work together daily throughout the project.
• Build projects around motivated individuals. Give them the environment and support they
need, and trust them to get the job done.
• The most efficient and effective method of conveying information to and within a
development team is face-to-face conversation.
• Working software is the primary measure of progress.
• Agile processes promote sustainable development. The sponsors, developers, and users should be
able to maintain a constant pace indefinitely.
• Continuous attention to technical excellence and good design enhances agility.
• Simplicity--the art of maximizing the amount of work not done--is essential.
• The best architectures, requirements, and designs emerge from self-organizing teams.
• At regular intervals, the team reflects on how to become more effective, then tunes and
adjusts its behaviour accordingly.
10.
11. Rites and Codes Of Conduct
Introductions
Mob Agile / Scrum
• A Mafioso is not supposed • The Product Owner cannot
to introduce himself to go directly to developers to
another Mafioso “just sneak this functionality
in.”
• New items cannot be added
to the sprint backlog once
the sprint has started.
12.
13. Rites and Codes Of Conduct
The Code
Mob Agile / Scrum
• Omertà is a code of silence • Communication is key
that forbids Mafiosi from – Product backlog
betraying their comrades to – Release burn-down
the authorities. – Sprint burn-down
• The penalty for – Daily stand-up
transgression is death. – Task board
– Sprint retrospectives
– Sprint review
19. “la stessa cosa” - the same thing
• The role of an architect in an agile team
– “Just enough” upfront design
– Start with a vertical slice
– Just-in-time design each iteration
– Trust your team… but be there for them
– Write code!
– Be involved in everything
– Drive a culture of quality
– Know when changes are required
– Shield the team from external randomisation
– Write docs…but only if someone needs to read them
20.
21. Never go against the family
• Maintenance Projects
• Product Owner not always available
• Requires hand-on management, but not
micromanagement
• Scrum is new and different
• Estimating / Design unclear until you start
• Commitment
• Scope creep
Firstly, what I hope to achieve today is not to teach you about Scrum or Agile – I’m sure that you all have read about it or know something about it. My aim is to make you think about Scrum in a different way. Agile development approaches are becoming increasingly popular these days… but it can mean very different things to different people, to me it’s like being part of the mob. Let’s look at the structure of your average mob. The American Mafia's organizational structure was created by Salvatore Maranzano who became the first Capo di tutti capi– theboss of all bosses. Though he was killed by Lucky Luciano after holding the position for only six months, he legacy lived on.Beneath him is the Don, or Boss— The boss is the head of the family, usually reigning as a dictator, sometimes called the "Godfather". The boss receives a cut of every operation taken on by every member of his family. The Consigliere is an advisor to the family and sometimes seen as the Boss's "right-hand man". They are used as a mediator of disputes and aides in meetings with other families. The Capo Bastone or underboss, is the second in command of the family. The underboss is in charge of all of the capos, who are controlled by the boss. The underboss is usually first in line to become acting boss if the boss is imprisoned or worse.A Caporegime or capo, is the captain, he is in charge of the group of soldiers who report directly to him, referred to as his crew. Each crew usually contains 10-20 soldiers and many more associates. A captain gives a percentage of his earnings to the boss and is also responsible for any tasks assigned, including murder. Soldato, is Italian for soldier. The soldier is a member of the family, and traditionally can only be of Italian background. Once a member is “made”, he is untouchable. by committing a murder on the orders of his superiors, they become made men, who have made their bones. This ensures the soldier's reliability: he will never testify against a man who could testify against him. Being made, is the beginning, but not the end, of a Mafia career. An Associate is not a member of the mob, and an associate's role is similar to that of an errand boy. They are usually a go-between or sometimes deal in drugs to keep the heat off the actual members, or they are people the family does business with,like restaurant or strip club owners.
So, now where does Scrum fit in.No doubt you have all heard Scrum’s story of the chicken and the pig – where chickens are involved and pigs are committed. The Product Owner represents the voice of the customer. He ensures that the Scrum Team works on the “right things” from a business perspective. The Product Owner writes customer-centric items,typically user stories, prioritizes them and then places them in the product backlog. The Product owner is a pig during release planning but a chicken during daily stand ups. Scrum is facilitated by a Scrum Master, whose primary job is to remove impediments to the ability of the team to deliver to the sprint goal and the sprint deliverables; the hit man of the group. The Scrum Master is not the leader of the team but acts as a buffer between the team and any distracting influences. The Scrum Master ensures that the Scrum process is used as intended and is the enforcer of these rules. A key part of the Scrum Master's role is to protect the team and keep them focused on the tasks in hand.The team has the responsibility to deliver the product. A team is typically made up of 5–9 people with cross-functional skills who do the actual work (design, develop, test, technical communication, etc.). Typically the team is self-organizing – but the reality is that there is often a technical lead or team lead that the team reports to; much like the caporegime. “Chicken” rolesChicken roles are not part of the actual Scrum process, but must be taken into account. They are people for whom the software is being built. These could be the CEO, Capo ditutticapi; the customers, the consigliere, or internal stakeholders, like marketing, the Associates.
On April 27, 1980, Wise Guy, Henry Hill was arrested on a narcotics-trafficking charge, bonded out of jail, and, shortly afterwards, was re-arrested as a material witness in a robbery. He became convinced that his former associates planned to have him killed. So Hill became an FBI informant.Within Scrum there are informants too – for instance, sprint burn down chart informs the other 3 letter acronyms, CEO, CIO, etc, about the status of the project. But I’ll talk about them more later on.I mentioned at the beginning that Agile can mean very different things to different people. At one extreme are the people who use “agile” as a convenient shorthand for not following any process,and generally not getting good results. At the other extreme are the zealots who follow a very specific methodology, and anyone who doesn’t do it exactly right is not “agile”.So I’ll take my definition from the people who invented it – Agile isany software development process that follows the agile manifesto. While it’s a simple set of values, anyone who has tried it will know it takes a lot of work and a great team to pull it off.
After his arrest, the mobster Giovanni Brusca described the ceremony in which he was formally made a full member of Cosa Nostra, an Mob family based in Sicily. In 1976 he was invited to a "banquet" at a country house. He was brought into a room where several Mafiosi were sitting around a table upon which sat a pistol, a dagger and an image of a saint. They questioned his commitment and his feelings regarding criminal activity and murder,despite him already having a history of such acts. When he affirmed himself, Salvatore Riina, then the most powerful boss of Cosa Nostra, took a needle and pricked Brusca's finger. Brusca smeared his blood on the image of the saint, which he held in his cupped hands as Riina set it alight. As Brusca juggled the burning image in his hands, Riina said to him: "If you betray Cosa Nostra, your flesh will burn like this saint."
Release Planning Meeting The purpose of release planning is to establish a plan and goals that the Scrum Teams and the rest of the organizations can understand and communicate. Release planning answers the questions, “How canwe turn the vision into a winning product in best possible way? How can we meet or exceed the desired customer satisfaction and Return on Investment?” The release plan establishes the goal of the release,the highest priority Product Backlog items, the major risks, and the overall features and functionality that the release will contain. It also establishes a probable delivery date and cost that should hold if nothing changes. The organization can then inspect progress and make changes to this release plan on a Sprint-by-Sprint basis.Sprint Planning MeetingThere are two parts to the Sprint Planning Meeting: the “What?” part and the “How?” part. In the first part, the Scrum Team addresses the question of “What?” Here, the Product Owner presents the top priority Product Backlog to the Team. They work together to figure out what functionality is to be developed during the next Sprint. The input to this meeting is the Product Backlog, the latest increment of product, the capacity of the Team, and past performance of the Team. The amount of backlog the Team selects is solely up to the Team. Only the Team can assess what it can accomplish over the upcoming Sprint.Having selected the Product Backlog, a Sprint Goal is crafted. The Sprint Goal is an objective that will be met through the implementation of the Product Backlog. This is a statement that provides guidance to the Team on why it is building the increment. The Sprint Goal is a subset of the release goal.Daily StandupEach day during the sprint, a project status meeting occurs. All are welcome, but only “pigs” may speakDuring the meeting, each team member answers three questions: What have you done since yesterday? What are you planning to do today? Do you have any problems preventing you from accomplishing your goal? Product backlogThe product backlog is a high-level list that is maintained throughout the entire project. It aggregates backlog items: broad descriptions of all potential features, prioritized as an absolute ordering by business value. It is therefore the “What” that will be built, sorted by importance. It is open and editable by anyone and contains rough estimates of both business value and development effort. Those estimates help the Product Owner to gauge the timeline and, to a limited extent prioritize. For example, if the “add spell-check” and “add table support” features have the same business value, the one with the smallest development effort will probably have higher priority, because the ROI (Return on Investment) is higher.The Product Backlog, and business value of each listed item is the property of the product owner. The associated development effort is however set by the Team.Sprint backlogThe sprint backlog is the list of work the team must address during the next sprint. Features are broken down into tasks, which, as a best practice, should normally be between four and sixteen hours of work. With this level of detail the whole team understands exactly what to do, and potentially, anyone can pick a task from the list. Tasks on the sprint backlog are never assigned; rather, tasks are signed up for by the team members as needed, according to the set priority and the team member skills. This promotes self-organization of the team, and developer buy-in.The sprint backlog is the property of the team, and all included estimates are provided by the Team. Often an accompanying task board is used to see and change the state of the tasks of the current sprint, like “to do”, “in progress” and “done”.Burn downThe sprint burn down chart is a publicly displayed chart showing remaining work in the sprint backlog. Updated every day, it gives a simple view of the sprint progress. It also provides quick visualizations for reference.
3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter time scale. Frequent delivery of working software provides stakeholders with concrete feedback, making the current status of your project transparent while at the same time providing an opportunity for stakeholders to provide improved direction for the development team.4. Business people and developers must work together daily throughout the project. Your project is in serious trouble if you don't have regular access to your project stakeholders. Agile developers adopt practices such as on-site customer and active stakeholder participation, and adopt inclusive tools and techniques which enable stakeholders to be actively involved with software development.9. Continuous attention to technical excellence and good design enhances agility. It's much easier to understand, maintain, and evolve high-quality source code than it is to work with low-quality code. Therefore, agilists know that they need to start with good code, and keep it good via refactoring, and take a test-driven approach so that they know at all times that their software works. Agile developersalso adopt and follow development guidelines, in particular coding guidelines and sometimes even modeling guidelines.
If Mafioso wants to establish a relationship, he must ask a third, mutually-known Mafioso, to introduce them to each other. This intermediary can vouch that neither of the two is an impostor.
Omertà is a code of silence that forbids mob membersfrom betraying their comrades to the authorities. The penalty for transgression is death, and relatives of the turncoat may also be murdered. Mafiosi generally do not associate with police (aside perhaps from corrupting individual officers as necessary). For instance, a Mafioso will not call the police when he is a victim of a crime. He is expected to take care of the problem himself. To do otherwise would undermine his reputation as a capable protector of others, and his enemies may see him as weak and vulnerable.Scrum is the absolute opposite to this – Communication is key to the projects success. This is done by scrum artefacts, but also by the daily stand-up and regular retrospectives and demos. Knowing where the project status is important to all involved. At any one time the team should be able to point to the burn down chart and say we are here – we have X number of work items left and Y number of days left in this sprint.
When the American mobster Joseph Valachi testified before the U.S. Senate in 1962, he revealed that American Mafiosi referred to their organization by the term cosa nostra , "our thing" or "this thing of ours”.So what is our thing...
Explored Ask around – has this been done before in another team? Can we buy this feature/functionality?Identified Have you thought about cross-cutting concerns including following: Localization/Globalization Security User Experience Performance / Scalability Reuse Designed Discuss design/solution with peer(s) Write design document, use cases, sequence diagrams etc. (if necessary)Coded / Implemented Release ready code including comments Note any technical debt in registry Meets coding standard (No warnings, no TODO’s etc)Automated Unit tests (if necessary)Reviewed Peer code review Tested Automated tests written / run successfully (if available) Manual tests completed successfullyDocumented Documentation updated, including help files, release notes, etcAccepted Product owner / Principal consultant as seen a demo of the feature and has accepted the feature
Top 10“Just enough” upfront designStart with a vertical sliceJust-in-time design each iteration Design for the actual set of requirements being built – don’t over engineer or try to anticipate future Drive a culture of quality Don’t settle for mediocrity or “good enough”, and don’t let anyone else do it either.Know when changes are required Don't cling to past design decisions when they are no longer appropriateWrite docs……but only if someone needs to read them Some are written voluntarily, e.g. design drilldowns - others are necessary: fixed text
Maintenance Projects scrum pays entirely no attention to product maintenance and technical support. If all your developers are working on a new release of a product, there’s nobody to maintain the old versions while a sprint is in progress. The obvious workaround is to reduce the number of developers involved in the sprint, and stick them on maintenance and support handling. Aha- but for a small team pushed to make a new release, this is a disaster. Firstly, a reduced team equals a reduced output, an extended release date, and, let’s face it, less revenue. Is this really true? Product Owner not always availableRequires hand-on management, but not micromanagement Management must be willing to make changes to help Scrum teams succeed Scrum requires constant monitoring both quantitatively and qualitatively Requires management to delegate decision-making authority to the Scrum team Managers must let Scrum teams make their own decisions, even allowing them to fail if necessaryScrum is new and different People are resistant to change Some workers are not comfortable with the responsibility Scrum enablesEstimating / Design unclear until you start If a task is not well defined, estimating project costs and time will not be accurate. In such a case, the task can be spread over several sprints.Commitment If the team members are not committed, the project will either never complete or fail.Scope creep With the amount of flexibility in the process, there is a concept of feature creep that threatens to disrupt the process.
Mark Twain said “Eat a live frog every morning, and nothing worse will happen to you the rest of the day.” Darren got me on this an audio book called eat that frog, I’m sure if you listen to it you’ll get something different from it – but what I got out of it boiled down to scrum. So keeping with the theme – I’ve renamed it to “Fight that gang” – if faced with a large gang, like a Jackie Chan movie, if you try and fight them all once – you will fail. But, if you fight one at a time, then your chances of success are much better. We tend to put off the most difficult, tedious, less than fun things. Which are often times the most important things, and spend a lot of time on tasks that are busy work, not productive work.There are 21 key points that the book covers, 1 Set the Table2 Plan Every Day in Advance - Standup3 Apply the 80/20 Rule to Everything - Release backlog4 Consider the Consequences5 Practice Creative Procrastination6 Use the ABCDE Method Continually7 Focus on Key Result Areas8 Apply the Law of Three9 Prepare Thoroughly Before You Begin10 Take It One Oil Barrel at a Time - Fight that gang 11 Upgrade Your Key Skills12 Leverage Your Special Talents13 Identify Your Key Constraints14 Put the Pressure on Yourself15 Maximize Your Personal Powers16 Motivate Yourself into Action17 Get Out of the Technological Time Sinks18 Slice and Dice the Task - User stories, sprint planning meeting19 Create Large Chunks of Time20 Develop a Sense of Urgency21 Single Handle Every Task
Agile assumes the project is non-linear. You will have changes to scope. You might have changes to team membership. You might have changes to product direction. But the key is that Agile embraces change.The biggest change to Agile is mindset! The main thing for in working in an Agile environment is the change in communication between people. Grad-ile - lets all move towards “Costa nostre” – our way of doing Agile but to get there we must all be fully committed, the team, the product and the process.