Why don't small companies do big-A-Agile? Are they agile by default? Is Agile just a way for a large company to behave more like a small one? In this retrospective on agile adoption in companies large and small we'll look at what drives adoption, how effective it is at meeting those goals and whether software craftsmanship could teach us more.
Lean and Kanban-based Software DevelopmentTathagat Varma
This document discusses key concepts in Lean and Kanban-based software development. It defines Lean as focusing on maximizing customer value while minimizing waste. Key Lean principles outlined include identifying value, mapping the value stream, establishing flow and pull, and seeking perfection. Kanban is introduced as a scheduling system inspired by Toyota's just-in-time production to visualize workflow and limit work-in-progress. The document also discusses applying Lean concepts like value stream mapping, waste elimination, and 5S to software development processes and teams.
Dimitri Ponomareff is an experienced coach, project manager, and facilitator. He has extensive experience coaching and training teams at many large organizations. Dimitri is passionate about sharing his knowledge of Agile methodologies like Scrum, XP, and Kanban to help teams improve. The document provides an overview of these Agile approaches including their origins and key principles.
Presentation I gave to the Chicago ACM about Lean Software Development. Full audio can be found here:
https://soundcloud.com/griffinc/intro-to-lean-software
Richard Powell has over 12 years of experience delivering IT projects using Agile and Lean methodologies. He has worked as an Agile Coach at National Grid and Project Delivery Manager at Interserve PLC. Some of his key projects include implementing Salesforce CRM and Lightning apps, developing mobile apps for field engineers, and establishing an Agile Center of Excellence. He holds multiple Agile, project management, and IT certifications and has received several awards for his work.
Lean software development aims to eliminate waste from the software development process by applying principles from lean manufacturing. The key principles of lean thinking include eliminating waste, increasing feedback, delaying commitment, delivering fast, empowering teams, building integrity in, and seeing the whole system rather than optimizing parts. Applying these principles, such as integrating work daily and weekly to increase feedback, keeping options open as long as possible, and empowering teams, can help software development become more efficient and responsive to customers.
Important aspect of doing a Lean Software Development is identifying and eliminating waste and amplifying learning. Sharing summary of my notes as I go through LSD by Poppendiecks and practice it myself at Go-Jek.
This document outlines a presentation on fundamentals of agile software development given by Ikenna Nwaiwu. The presentation introduces the Lagos Agile & Craftsmanship Meetup group, its mission to spread knowledge of agile principles and practices in Nigeria. It then covers the values and principles of the Agile Manifesto, including emphasizing individuals and interactions, working software, customer collaboration, and responding to change. The contents of the presentation are listed as the Agile Manifesto, principles of agile, and agile methods.
Today many teams and companies are turning to Agile product development. Scrum is among the most popular choices. The promises from Agile are several. Still it is good advice to do a couple of things before you go Agile. In the following I will list and discuss five things to do before you go Agile.
The Values and Principles of Agile Software DevelopmentBrad Appleton
The document discusses the values and principles of agile software development. It begins by introducing the presenter and their experience and background. It then outlines the core values of agile development as defined in the Agile Manifesto: individuals and interactions, working software, customer collaboration, and responding to change. The document continues by explaining that principles guide behavior towards upholding these values. It proceeds to define several key agile principles in more detail, including continuous delivery of customer value, welcoming change, and collaborating daily across functions.
Lean software development tips and tricks - Agile Tour Dublin 2014Augusto Evangelisti
The document provides tips for lean software development. It discusses identifying waste, asking "why?" to understand root problems, seeing processes as a whole to remove barriers, having zero tolerance for defects, experimenting without permission to fail cheaply and learn, and using communities of practice to innovate. The tips are meant to help eliminate waste, optimize processes, focus on customers, energize workers, learn continuously, deliver quickly, build in quality and improve.
Lean software engineering emphasizes continuous delivery of high quality applications. Ken Pugh explains the principles and practices that form the basis of lean software development―concentrating on developing a continuous flow by eliminating delays and loopbacks; delivering quickly by developing in small batches; emphasizing high quality which decreases delays due to defect repair; making policies, process and progress transparent; optimizing the whole rather than individual steps; and becoming more efficient by decreasing waste. Ken describes lean’s emphasis on cycle time, rather than resource utilization, and demonstrates the value stream map which helps you visualize the development cycle flow to identify bottlenecks. He explores the differences between push and pull flow, describes how lean thinking shows up in agile processes including Scrum and Extreme Programming, and discusses how lean can be applied to the entire workflow—not just the development portion. Ken concludes with a discussion of how you can begin your lean transformation.
All You Want To About Kanban Before Doing Kanban Certification | AgileFeverAgileFever
AgileFever is a digital transformation consulting firm headquartered in Texas that provides Agile, DevOps, and Kanban training and coaching services globally. The presentation introduces Kanban, including its history starting in 1956 at a Toyota plant. It describes Kanban principles like limiting work in progress, managing flow, and implementing feedback loops. Key Kanban practices and events like daily stand-ups and retrospectives are also outlined. The presentation concludes with discussing common Kanban metrics like cycle time, work in progress, and throughput.
The document compares traditional waterfall and agile product development approaches. It summarizes research finding that agile projects succeed three times more often than waterfall projects. Key aspects of agile methodologies like Scrum are outlined, including roles, ceremonies, and values. Challenges of adopting agile approaches are also discussed.
Lean Concepts & Agile Software MethodologiesBrad Smith
Presentation introducing the core concepts of Lean in manufacturing and an exploration of the various Agile software engineering approaches which apply these principles to increase the responsiveness of product development.
Download and reference notes for full detail.
Scrum Patterns: The New Defacto Scrum StandardJames Coplien
This is the talk I gave at the Japanese Scrum Gathering on 28 February 2015. I'm uploading it at the request of Osamu Tomita who thought that others would like to see it. Sorry it's only a PDF — Slideshare is still living in the Microsoft dark ages, and can't handle even the PowerPoint export that I generated.
Agile Scrum Master is an advanced level Agile Project Management course that is ideal for individuals and enterprises that are looking to gain a comprehensive understanding of Agile methodologies and Scrum practices and covers Scrum Master role with regards to facilitating the Scrum team that adheres to Scrum theory, practices, and rules.
Agile and Scrum Master Certification training course accredited by EXIN is ideal for software developers, project team members, team leads, architects, project managers, scrum team members, scrum managers, scrum masters, teams transitioning to scrum, and any one who is part of IT and project management teams working on projects.
To know more about Agile Scrum Master Certification training worldwide,
please contact us at -
Email: support@invensislearning.com
Phone - US +1-910-726-3695,
Website: https://www.invensislearning.com
Agile lean software development principlesEyna Hamdzah
Agile software development is a process that supports the agile philosophy of being able to move quickly and easily. It is suitable for small or medium sized projects or for custom system development within an organization. Lean software development applies lean manufacturing principles to software development with the goal of reducing waste and providing high value for the customer. The key principles of lean software development are to eliminate waste, amplify learning, defer commitment, deliver fast, respect people, build in integrity, and optimize the whole system rather than sub-optimizing parts. Success stories found lean software development resulted in on time delivery, reduced scrap and rework, lower costs, and improved productivity.
This is a presentation that was given to the Project Management Institute of Metrolina. The goal is exposure to the fundamental ideas of Lean/Agile/Scrum software development.
Uswitch.com transitioned from a traditional waterfall development process to agile practices like Scrum and XP over three years. While this improved speed, they still found planning overhead and low velocity. They then evolved to a fully lean approach, removing roles like QA and PM, limiting work-in-progress, releasing on demand, and building quality in rather than inspecting. This led to quicker time to market, reduced waste, safer and more frequent releases, and quality built-in rather than inspected. Measuring value is difficult but they focus on revenue, customer experience, innovation, and efficiency gains.
Lately that the terms Agile and Lean have been thrown around casually with little disregard for what they truly mean and how they can be applied correctly. Join us in this session for a lively, interactive discussion about what it means to be lean and agile and how we can incorporate the
principles and practices from each of these industry movements to help us build world class software.
The document discusses challenges with traditional waterfall software development approaches and makes the case for adopting agile methodologies. Some key points:
- Traditional approaches focus too much on upfront planning and scope definition, which often leads to changes later on that cause delays and missed deadlines.
- Agile prioritizes delivering working software frequently in short iterations to get early customer feedback and make adjustments more easily.
- Scrum is introduced as a popular agile framework that emphasizes self-organizing cross-functional teams, short development cycles called sprints, and flexibility to change requirements.
- A transformation is needed across the organization to shift from traditional command-and-control styles to collaborative agile values like continuous
Mark Foley Agile Methods And The Business AnalystcMia Horrigan
The document discusses the role of business analysts in agile development methods. It describes how agile practices like Scrum and XP involve business analysts in gathering requirements through techniques like user stories, working closely with customers, and responding flexibly to changes. The document also addresses how business analysts can help tailor requirements practices to different project needs and environments.
Agile software development methodology is sweeping the IT Industry. Many organizations are experimenting with Agility and there are many “brands” of Agile including Scrum, XP, Lean, Crystal Clear and DSDM. Adoption of one of these methodologies could be wholesale in the case of a small well defined project that has no dependencies on other projects and can be completely delivered by a trained and motivated team. As these types of adoptions are rare organizations are looking for ways to ease into Agile practices without losing productivity.
This session is designed to discuss and identify ways that agile enablers can facilitate the transition to Agile practices. Participants learn basic Agile practices as well as techniques for introducing them to the software delivery team. This session will present common software delivery problems and the Agile path to solutions.
The document provides an overview of Agile development methods. It discusses what Agile is, why it is important, and how difficult it can be to implement. Specifically, it defines Agile as an iterative approach that emphasizes adaptation, incremental delivery, and collaboration. It then summarizes the Scrum framework, noting its core roles, meetings, and iterative process for completing work in short cycles.
This document provides an overview of agile and lean principles for software development. It discusses concepts like the agile manifesto, scrum, extreme programming (XP), kanban, and lean software development. The document aims to introduce audiences to fundamental agile and lean concepts and encourage them to continue learning through references and future events.
Despite increased adoption across industries, many people still have trouble defining and distinguishing between Agile, DevOps and product management. What’s the difference between these practices? Are they competing or complementary?
In this on-demand Agile Leadership Series webinar, we’ll explore what the Agile mindset is and how to develop it, taking a deep dive into the technical practices needed to build in quality at every step of the development process. Learn how, together, these approaches can improve quality and dramatically decrease time to market. We’ll also discuss how product management can help to ensure teams are building the right features for the right users.
What we’ll cover:
Defining Agile, DevOps and product management
The combined value of these approaches (and what happens when one is left out)
How to identify and prevent feature factories, technical debt and feature debt
Strategies for bringing these approaches to your organization
You keep using the word agile, i do not think it means what you think it meansNathan Gloyn
Slides for the talk about what people think agile is, what agile is about and how you can get back to the idea of agile.
A recording of the talk from NDC London 2016 should be available here https://vimeo.com/158164783
The document discusses Agile software development methods and provides evidence that Agile approaches are effective. It defines Agile development as iterative and incremental with close collaboration. Case studies show organizations achieving better results with Agile, including increased productivity, quality, and customer satisfaction. Adopting Agile practices like Scrum and test-driven development enables organizations to adapt to changing priorities and deliver working software more frequently.
Agile development methodology focuses on iterative development where requirements and solutions evolve through collaboration between cross-functional teams. Some key aspects of agile include short development cycles, working software over documentation, customer collaboration, and responding to change. Scrum is a popular agile framework used at W3i that utilizes user stories, estimating, planning meetings, daily stand-ups, burndown charts, sprints, reviews and retrospectives to deliver working software frequently.
This session will have something for everyone. For the person new to Agile Development, this will provide a basic knowledge to distinguish Agile development from traditional Waterfall development. For those that have some knowledge, this will provide some practical examples and stories about what is happening in the “real world”.
We are in tough financial times, and are being ask to do more than ever with less people. Faster, better, and cheaper is the new mantra for organizations. Companies that will survive and endure for the long haul are looking for different and better ways to deliver software and are discovering Agile development as a possible answer. How do you get started with Agile practices? What are some lessons learned that I can watch out for as we get started? What will Agile fix
and what will it expose? In this session, these questions and others will be answered.
We will also explore how Agile development came to be and provide a foundational knowledge of the common practices including the Scrum framework and Extreme Programming (XP).
Agile methodology is a framework for modern software development.
What is the philosophy behind Agile?
How does it differ from traditional project management strategies like waterfall?
What are the stages, meetings, tools, and team roles?
What is Scrum?
General introduction to agile practices like Scrum and Kanban. Also covers what situations Agile is best at, what situations Agile doesn't help with, and what an Agile team should look like. This deck is a general intro to Agile for OpenSource Connections clients.
The document discusses scrum and agile frameworks. It provides information on scrum roles and ceremonies like stand-ups, planning, reviews and retrospectives. It also discusses metrics like velocity and burn down/up charts. The document reviews participants' past project experiences and has them identify success and failure factors. It aligns these factors to scrum roles and ceremonies. It also discusses aligning with the values in the Agile Manifesto and whether participants currently practice these values.
This document provides an overview of Agile and Scrum methodologies. It discusses why Agile approaches became popular, describing challenges with traditional waterfall methods. Key aspects of Scrum are outlined, including roles like Product Owner and Scrum Master, ceremonies like sprint planning and daily standups, and artifacts like product and sprint backlogs. Benefits of Scrum like adaptability, visibility and increased productivity are highlighted. The document aims to introduce readers to Scrum processes and terminology at a high level.
'Stakeholder Engagement Shortcuts': Ilan Goldstein @ Colombo Agile Conference...ColomboCampsCommunity
Change is difficult, and the reality is that in many organisations, an agile adoption means considerable change. Kickstarting a new initiative such as Scrum requires support from your senior stakeholders. This presentation outlines some powerful shortcuts to help engage with your stakeholder community to ensure that Scrum is given the best opportunity to flourish!
This document provides an overview of Agile methodology and SCRUM. It discusses the principles of Agile, including its emphasis on collaboration, adaptability, and delivering working software frequently. It then describes SCRUM in more detail, covering the roles of Product Owner, Scrum Master, and Team. The key SCRUM artifacts like Product Backlog, Sprint Backlog, and Burn Down Chart are explained. It also outlines the core SCRUM ceremonies of Sprint Planning, Daily Scrum, Sprint Review, and Retrospective. The document concludes by discussing challenges of adopting SCRUM and provides tips for SCRUM Team members.
Similar to Why don't small companies do big a agile? (20)
How to Avoid Learning the Linux-Kernel Memory ModelScyllaDB
The Linux-kernel memory model (LKMM) is a powerful tool for developing highly concurrent Linux-kernel code, but it also has a steep learning curve. Wouldn't it be great to get most of LKMM's benefits without the learning curve?
This talk will describe how to do exactly that by using the standard Linux-kernel APIs (locking, reference counting, RCU) along with a simple rules of thumb, thus gaining most of LKMM's power with less learning. And the full LKMM is always there when you need it!
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Erasmo Purificato
Slide of the tutorial entitled "Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Emerging Trends" held at UMAP'24: 32nd ACM Conference on User Modeling, Adaptation and Personalization (July 1, 2024 | Cagliari, Italy)
Performance Budgets for the Real World by Tammy EvertsScyllaDB
Performance budgets have been around for more than ten years. Over those years, we’ve learned a lot about what works, what doesn’t, and what we need to improve. In this session, Tammy revisits old assumptions about performance budgets and offers some new best practices. Topics include:
• Understanding performance budgets vs. performance goals
• Aligning budgets with user experience
• Pros and cons of Core Web Vitals
• How to stay on top of your budgets to fight regressions
Blockchain technology is transforming industries and reshaping the way we conduct business, manage data, and secure transactions. Whether you're new to blockchain or looking to deepen your knowledge, our guidebook, "Blockchain for Dummies", is your ultimate resource.
Quality Patents: Patents That Stand the Test of TimeAurora Consulting
Is your patent a vanity piece of paper for your office wall? Or is it a reliable, defendable, assertable, property right? The difference is often quality.
Is your patent simply a transactional cost and a large pile of legal bills for your startup? Or is it a leverageable asset worthy of attracting precious investment dollars, worth its cost in multiples of valuation? The difference is often quality.
Is your patent application only good enough to get through the examination process? Or has it been crafted to stand the tests of time and varied audiences if you later need to assert that document against an infringer, find yourself litigating with it in an Article 3 Court at the hands of a judge and jury, God forbid, end up having to defend its validity at the PTAB, or even needing to use it to block pirated imports at the International Trade Commission? The difference is often quality.
Quality will be our focus for a good chunk of the remainder of this season. What goes into a quality patent, and where possible, how do you get it without breaking the bank?
** Episode Overview **
In this first episode of our quality series, Kristen Hansen and the panel discuss:
⦿ What do we mean when we say patent quality?
⦿ Why is patent quality important?
⦿ How to balance quality and budget
⦿ The importance of searching, continuations, and draftsperson domain expertise
⦿ Very practical tips, tricks, examples, and Kristen’s Musts for drafting quality applications
https://www.aurorapatents.com/patently-strategic-podcast.html
How RPA Help in the Transportation and Logistics Industry.pptxSynapseIndia
Revolutionize your transportation processes with our cutting-edge RPA software. Automate repetitive tasks, reduce costs, and enhance efficiency in the logistics sector with our advanced solutions.
UiPath Community Day Kraków: Devs4Devs ConferenceUiPathCommunity
We are honored to launch and host this event for our UiPath Polish Community, with the help of our partners - Proservartner!
We certainly hope we have managed to spike your interest in the subjects to be presented and the incredible networking opportunities at hand, too!
Check out our proposed agenda below 👇👇
08:30 ☕ Welcome coffee (30')
09:00 Opening note/ Intro to UiPath Community (10')
Cristina Vidu, Global Manager, Marketing Community @UiPath
Dawid Kot, Digital Transformation Lead @Proservartner
09:10 Cloud migration - Proservartner & DOVISTA case study (30')
Marcin Drozdowski, Automation CoE Manager @DOVISTA
Pawel Kamiński, RPA developer @DOVISTA
Mikolaj Zielinski, UiPath MVP, Senior Solutions Engineer @Proservartner
09:40 From bottlenecks to breakthroughs: Citizen Development in action (25')
Pawel Poplawski, Director, Improvement and Automation @McCormick & Company
Michał Cieślak, Senior Manager, Automation Programs @McCormick & Company
10:05 Next-level bots: API integration in UiPath Studio (30')
Mikolaj Zielinski, UiPath MVP, Senior Solutions Engineer @Proservartner
10:35 ☕ Coffee Break (15')
10:50 Document Understanding with my RPA Companion (45')
Ewa Gruszka, Enterprise Sales Specialist, AI & ML @UiPath
11:35 Power up your Robots: GenAI and GPT in REFramework (45')
Krzysztof Karaszewski, Global RPA Product Manager
12:20 🍕 Lunch Break (1hr)
13:20 From Concept to Quality: UiPath Test Suite for AI-powered Knowledge Bots (30')
Kamil Miśko, UiPath MVP, Senior RPA Developer @Zurich Insurance
13:50 Communications Mining - focus on AI capabilities (30')
Thomasz Wierzbicki, Business Analyst @Office Samurai
14:20 Polish MVP panel: Insights on MVP award achievements and career profiling
Sustainability requires ingenuity and stewardship. Did you know Pigging Solutions pigging systems help you achieve your sustainable manufacturing goals AND provide rapid return on investment.
How? Our systems recover over 99% of product in transfer piping. Recovering trapped product from transfer lines that would otherwise become flush-waste, means you can increase batch yields and eliminate flush waste. From raw materials to finished product, if you can pump it, we can pig it.
How Social Media Hackers Help You to See Your Wife's Message.pdfHackersList
In the modern digital era, social media platforms have become integral to our daily lives. These platforms, including Facebook, Instagram, WhatsApp, and Snapchat, offer countless ways to connect, share, and communicate.
AC Atlassian Coimbatore Session Slides( 22/06/2024)apoorva2579
This is the combined Sessions of ACE Atlassian Coimbatore event happened on 22nd June 2024
The session order is as follows:
1.AI and future of help desk by Rajesh Shanmugam
2. Harnessing the power of GenAI for your business by Siddharth
3. Fallacies of GenAI by Raju Kandaswamy
The DealBook is our annual overview of the Ukrainian tech investment industry. This edition comprehensively covers the full year 2023 and the first deals of 2024.
Are you interested in dipping your toes in the cloud native observability waters, but as an engineer you are not sure where to get started with tracing problems through your microservices and application landscapes on Kubernetes? Then this is the session for you, where we take you on your first steps in an active open-source project that offers a buffet of languages, challenges, and opportunities for getting started with telemetry data.
The project is called openTelemetry, but before diving into the specifics, we’ll start with de-mystifying key concepts and terms such as observability, telemetry, instrumentation, cardinality, percentile to lay a foundation. After understanding the nuts and bolts of observability and distributed traces, we’ll explore the openTelemetry community; its Special Interest Groups (SIGs), repositories, and how to become not only an end-user, but possibly a contributor.We will wrap up with an overview of the components in this project, such as the Collector, the OpenTelemetry protocol (OTLP), its APIs, and its SDKs.
Attendees will leave with an understanding of key observability concepts, become grounded in distributed tracing terminology, be aware of the components of openTelemetry, and know how to take their first steps to an open-source contribution!
Key Takeaways: Open source, vendor neutral instrumentation is an exciting new reality as the industry standardizes on openTelemetry for observability. OpenTelemetry is on a mission to enable effective observability by making high-quality, portable telemetry ubiquitous. The world of observability and monitoring today has a steep learning curve and in order to achieve ubiquity, the project would benefit from growing our contributor community.
Implementations of Fused Deposition Modeling in real worldEmerging Tech
The presentation showcases the diverse real-world applications of Fused Deposition Modeling (FDM) across multiple industries:
1. **Manufacturing**: FDM is utilized in manufacturing for rapid prototyping, creating custom tools and fixtures, and producing functional end-use parts. Companies leverage its cost-effectiveness and flexibility to streamline production processes.
2. **Medical**: In the medical field, FDM is used to create patient-specific anatomical models, surgical guides, and prosthetics. Its ability to produce precise and biocompatible parts supports advancements in personalized healthcare solutions.
3. **Education**: FDM plays a crucial role in education by enabling students to learn about design and engineering through hands-on 3D printing projects. It promotes innovation and practical skill development in STEM disciplines.
4. **Science**: Researchers use FDM to prototype equipment for scientific experiments, build custom laboratory tools, and create models for visualization and testing purposes. It facilitates rapid iteration and customization in scientific endeavors.
5. **Automotive**: Automotive manufacturers employ FDM for prototyping vehicle components, tooling for assembly lines, and customized parts. It speeds up the design validation process and enhances efficiency in automotive engineering.
6. **Consumer Electronics**: FDM is utilized in consumer electronics for designing and prototyping product enclosures, casings, and internal components. It enables rapid iteration and customization to meet evolving consumer demands.
7. **Robotics**: Robotics engineers leverage FDM to prototype robot parts, create lightweight and durable components, and customize robot designs for specific applications. It supports innovation and optimization in robotic systems.
8. **Aerospace**: In aerospace, FDM is used to manufacture lightweight parts, complex geometries, and prototypes of aircraft components. It contributes to cost reduction, faster production cycles, and weight savings in aerospace engineering.
9. **Architecture**: Architects utilize FDM for creating detailed architectural models, prototypes of building components, and intricate designs. It aids in visualizing concepts, testing structural integrity, and communicating design ideas effectively.
Each industry example demonstrates how FDM enhances innovation, accelerates product development, and addresses specific challenges through advanced manufacturing capabilities.
Details of description part II: Describing images in practice - Tech Forum 2024BookNet Canada
This presentation explores the practical application of image description techniques. Familiar guidelines will be demonstrated in practice, and descriptions will be developed “live”! If you have learned a lot about the theory of image description techniques but want to feel more confident putting them into practice, this is the presentation for you. There will be useful, actionable information for everyone, whether you are working with authors, colleagues, alone, or leveraging AI as a collaborator.
Link to presentation recording and transcript: https://bnctechforum.ca/sessions/details-of-description-part-ii-describing-images-in-practice/
Presented by BookNet Canada on June 25, 2024, with support from the Department of Canadian Heritage.
9. Agility Responding quickly to a change 1. Determine next required change 2. Implement small product increment 3. Get feedback from customer
10. Agility Responding quickly to a change 1. Determine next required change On-site customer, prioritised backlog 2. Implement small product increment User stories, short iterations, TDD 3. Get feedback from customer CI, small releases, continuous deployment
45. A company only needs formal Agile Adoption if it isn't naturally agile
46. We have heard about new ways of developing software by paying consultants and reading Gartner reports. Through this we have been told to value: Individuals and interactions over processes and tools and we have mandatory processes and tools to control how those individuals (we prefer the term ‘resources’) interact Working software over comprehensive documentation as long as that software is comprehensively documented Customer collaboration over contract negotiation within the boundaries of strict contracts, of course, and subject to rigorous change control Responding to change over following a plan provided a detailed plan is in place to respond to the change, and it is followed precisely That is, while the items on the left sound nice in theory, we’re an enterprise company, and there’s no way we’re letting go of the items on the right. halfarsedagilemanifesto.org
57. Agile Roll Out Nominate a Scrum Master Or “Project Manager” as they used to be called Have daily stand ups What I did yesterday... Update burn down chart daily And challenge the team when they're behind
58. Agile Roll Out Sprint retrospective But don't follow up on actions Ship working software But not till the end of the last sprint, obviously Congratulate everyone on a successful agile project
64. Software Craftsmanship All about the people If your business makes money from software, the people building that software are the most important in your business Professionalism in programming Taking responsibility for our craft
85. Rushing will make you go slower Corners cut this morning will cost you this afternoon We cannot successfully trade quality for time Write clean code first
88. Agility Responding quickly to a change 1. Determine next required change 2. Implement small product increment 3. Get feedback from customer
89. Agility Responding quickly to a change 1. Determine next required change Productive partnership, trust 2. Implement small product increment Autonomy, experience, quality, minimal process 3. Get feedback from customer One team, fast process, partnership with customer
Java developer Agile enthusiast Aspiring software craftsman Co-founder of LSCC Twitter Why don't small companies do Agile?
Start with some definitions Tried doing by numbers About names not roles ” We need Mike to help with this” ” That's a job for Rachel” In large co ” We need QA to help with this” ” That's a job for the operations team” Not to say ppl don’t know each other Identifying by role/team creates short hand – but creates barrier
We mean agility Responsiveness; ability to react Bottom up – enthusiastic developers introduce specific practices
Agile goes mainstream Big-A-Agile is how we try to get there
Take away the theatre and buzzwords – agility is pretty simple Iterate!
XP practices fit this perfectly Scrum & kanban provide structure on top – forecasting, planning & process improvement
BA vs talking direct to customer Requirements review; architecture standards committee; design sign-off Not been in business long Large business, older, more time to build legacy Interesting metric: LOC/developer 50k 10ppl = 5k/dev 1m 20ppl = 50k/dev Large companies, more code & more code per-developer More to remember Harder to change Software factory
With less inventory, even starting on wrong foot easier to retro-fit tests Dev owns junit tests; BA owns acceptance tests; who owns browser tests? QA or dev? What if they're written in junit?
Small company trying to find product market fit – can’t wait
So small companies naturally do something approximately agile; what stops a large company replicating that?
Byzantine process – dedicated job to navigate Failure of an alternative, nervous management return to process safety net “ We’re doing agile, but...” Requirements review, design sign off This isn’t “scrum, but” – its “waterfall, but we’re pretending its agile”
Separate QA, build, operations team More people, more meetings, more waste
Everybody ”does their job”, instead of delighting the customer ” I fixed the bug, it's up to QA to test it” ” I raised the defect, I'm waiting for dev to fix it” ” The build's ready, operations need to deploy it” ” It's the maintenance team's job to fix bugs” Thrashing - reviewing possibilities / changing direction
Development is documenting requirements Start from vague ideas; most precise form is code Project idea has a lot of appeal – but software is weird stuff People feel threatened by agile
So why do large companies do big A Agile... Or the stupid...
Coming from waterfall background, or half arsed agile
What would a diabolical agile roll out look like? How would Dilbert's PHB do it?
Project mindset Have team size, fixed scope, fixed date Backlog full of mandatory stories Extra credit: new to company
Alpha geek & passive-aggressive cynic Solve all design problems – can't estimate without understand what we're building Everything is a 5 anyway Might feel like planning theatre, but its important to be able to hold developers accountable for their commitment
Sprint end – stories not done carry over Process set in stone, can't change it But of course, this isn't agile – it's a checklist of behaviours
Now agile is mainstream First line of the agile manifesto Ironically...
If big-A-agile isn’t the answer for large companies, perhaps software craftsmanship provides a better view?
Software craftsmanship typically focuses on the individual developer How can I improve? How can I learn? How can I mentor others? I’d like to go off in a slightly different direction – if I built a team of craftsmen, what would that look like
Responsible for, and capable of , delivering a working increment More dependencies, more project management Developers want to understand the business Let them work with the customer, not for the customer
Bob Martin talks about 1 master, 3 journeymen, 9 apprentices Fred Brooks “If a 200 man project has 25 managers who are the most competent and experienced programmers, fire the 175 troops and put the managers back programming”
If team responsible for customer to production; all process is internal to team Conforming to standard should be choice of team – because it’s beneficial to the team Some mandatory – rest owned by team
Most developers need to work harder on improving quality; very few over-engineer Rush design, multiple code rewrites Skip unit testing, bugs found late – expensive to fix. Not my fault – unlucky Bugs thrive in crap code; debugging crap code takes time -> just fix the code! Scrum/kanban etc give ways of tracking velocity/cycle time to make projections based on past experience If schedule is slipping, cut features not corners
So how does craftsmanship help?
Developers understand the business; customer trusts the development team -> what to build next. Small, autonomous team; with right experience; producing clean code -> implement smallest thing One team (devops); minimal, self-improving process; working in partnerhsip with the customer -> get feedback quickly On top of the XP practices, craftsmanship is about the relationships, the team structure and a focus on quality
XP is about the day-to-day practices What developers do
Scrum is about the iteration-by-iteration practices What project managers do
Software craftsmanship is about developers “raising the bar” But it’s also about building the right team and genuinely empowering them to craft great software This is in management ’s domain Craftsmanship has these four key goals to enable agile delivery: autonomy, experience, process & quality – let me summarise my thoughts about this into what I think the software craftsmanship manifesto should have said
We don’t want dependencies, scheduling and project management – we want autonomy We don’t want armies of untrained developers – we want to hire great developers with a balance of experience and help them all progress We don’t want long process definition documents – we want permission to use the right process for the job Finally, we have to stop writing crap thinking its quicker. If we do the job right, speed will come naturally.