Notes and highlights for
Learning Agile: Understanding Scrum, XP, Lean, and Kanban
Stellman, Andrew; Greene, Jennifer
My raw notes and highlights from the Learning Agile Book
- Fred
1. Learning Agile
Highlight (pink) - Page 2 · Location 158
methodologies , Scrum and Extreme Programming ( XP ) .
Highlight (pink) - Page 2 · Location 159
Lean and Kanban ,
Highlight (yellow) - Page 2 · Location 160
You’ll learn that while these four agile schools of thought focus on different areas of software development , they all have one important thing in common : they focus on changing your team’s mindset .
Highlight (yellow) - Page 2 · Location 163
the practices that make up the day - to - day work , and the values and principles that help you and your team fundamentally change the way that you think about building software .
Highlight (pink) - What Is Agile? > Page 2 · Location 165
Agile is a set of methods and methodologies that help your team to think more effectively , work more efficiently , and make better decisions .
Highlight (blue) - What Is Agile? > Page 2 · Location 172
This mindset helps people on a team share information with one another , so that they can make important project decisions together — instead of having a manager who makes all of those decisions alone .
Highlight (pink) - What Is Agile? > Page 2 · Location 174
opening up planning , design , and process improvement to the entire team .
Highlight (pink) - What Is Agile? > Page 2 · Location 180
“ going agile ” means helping the team find an effective mindset .
Highlight (pink) - What Is Agile? > Page 4 · Location 202
Figure 1 - 2 . Both people seem to have a valid reason for their attitude toward the daily standup meeting . What effect will this have on the project ?
Note - What Is Agile? > Page 4 · Location 203
problem is that
1. PM : Needs to solve planning and solving the details when they come.
2. Developerss: Need time to focus
Highlight (pink) - What Is Agile? > Page 4 · Location 204
The project manager will be thinking mainly about how people are deviating from his plan ,
Note - What Is Agile? > Page 4 · Location 205
this mentality is wrong
Highlight (pink) - What Is Agile? > Page 4 · Location 205
The developer , on the other hand , wants the meeting to end as quickly as possible , so he’ll tune out everyone else while he’s waiting to give his update ,
Note - What Is Agile? > Page 4 · Location 206
this mentality is wrong
Highlight (yellow) - What Is Agile? > Page 4 · Location 207
Let’s be clear : this is how many daily standups are run , and while it’s not optimal , a daily standup that’s run this way will still produce results . The project manager will find out about problems with his plan , and the developer will benefit in the long run because those problems that do affect him can be taken care of sooner rather than later — and the whole practice generally saves the team more time and effort than it costs . That makes it worth doing .
Highlight (pink) - What Is Agile? > Page 5 · Location 212
example , what would happen if the project manager felt like everyone on the team worked together to plan the project ?
Highlight (pink) - What Is Agile? > Page 5 · Location 219
the developer felt like this meeting wasn’t just about giving status , but about understanding how the project is going , and coming together every day to find ways that everyone can work better ? Then the daily standup becomes important to him .
Highlight (yellow) - What Is Agile? > Page 5 · Location 221
The daily standup becomes his way to make sure that the project is run in a sensible , efficient way
Highlight (blue) - What Is Agile? > Page 6 · Location 224
When every person on the team feels like they have an equal hand in planning and running the project , the daily standup becomes more valuable — and much more effective .
Note - What Is Agile? > Page 6 · Location 226
Low key - This is the best thing in the book.
Highlight (blue) - What Is Agile? > Page 6 · Location 228
But if everyone on the team shares the mindset that the daily standup is their way of making sure that everyone is on track , they’re all working toward the same goal , and they all have a say in how the project is run , it becomes much more effective
Highlight (pink) - Who Should Read This Book > Page 7 · Location 255
ideas to your team , and to overcome some of the challenges that you face every day when helping a team become more agile .
Note - Who Should Read This Book > Page 7 · Location 256
This is literally collective mindset where it comes to a point everyone is chimining and resolving
I had an issue with XYZ. You just need to debug (without the manager being present even!)
2. Understanding Agile Values
Highlight (yellow) - Page 16 · Location 418
Manifesto for Agile Software Development :
Note - Page 16 · Location 419
The Gov is the OPPOSITE OF THIS. And you dont want a COMPANY FOR PROFIT of this
Highlight (pink) - Page 16 · Location 419
Individuals and interactions over processes and tools
Note - Page 16 · Location 419
This interaction could reduce a process or tool. Or make it better. Becouse of this interaction
Highlight (yellow) - Page 16 · Location 419
Working software over comprehensive documentation
Note - Page 16 · Location 420
Makes software a priority OVER any documentaiton.
What is better to have the Authenticator at 99% reliablility OR have 200 pages of documentaiton????
Highlight (blue) - Page 16 · Location 420
Customer collaboration over contract negotiation
Note - Page 16 · Location 420
Collaboration is key.
Lets say I own a Cleaning Compoany, and the cleaning company found a crack in the building.... If you leave that wihout reporting...then what happens the client eventgually would have to fix it and MAYBE sacrifice budget.
Good will pays offl, but you can only have Good will if you have that report.
Highlight (orange) - Page 16 · Location 420
Responding to change over following a plan
Note - Page 16 · Location 420
This happen when people are connected with their managers/pm over whatever plan is already established.
Plans are not perfcet
Highlight (yellow) - No Silver Bullet > Page 19 · Location 479
Many people felt that developers could build software just by following a set of instructions , like following a recipe or assembling a product on an assembly line .
Highlight (blue) - No Silver Bullet > Page 19 · Location 482
one of the most quoted papers in software engineering is Fred Brooks’s 1986 essay , “ No Silver Bullet , ”
Highlight (pink) - No Silver Bullet > Page 20 · Location 485
methodology
Highlight (yellow) - No Silver Bullet > Page 20 · Location 486
a technology that programmers could use to prevent or eliminate bugs .
Highlight (blue) - No Silver Bullet > Page 20 · Location 497
Waterfall really can work . In fact , if you actually know what you need up front , then writing it down first is a pretty efficient way to build software .
Highlight (yellow) - No Silver Bullet > Page 20 · Location 503
Good practices , especially ones like code reviews and automated testing , which are aimed at finding bugs as early as possible in the process . They usually called this “ defect prevention , ” and it required teams to actively think about how those bugs got into the code in the first place .
Highlight (blue) - No Silver Bullet > Page 20 · Location 506
Drawers full of documentation that have rarely been opened , because the people on the team understand that the act of writing down the plan — and the questions that get asked during that planning — is more important than mindlessly sticking to it afterward .
Highlight (yellow) - Agile to the Rescue! (Right?) > Page 26 · Location 633
from dysfunctional to functional , and that’s very good . They’ve gotten what we like to call better - than - not - doing - it results . But is this really all there is to agile ?
Note - Agile to the Rescue! (Right?) > Page 26 · Location 634
This is how I felt exactly when my new manager at microsoft joined.
I worked in Agile before and it felt like a waste of time (mainly becouse of the mindset)
Becouse it was
"I did Authentication"
Today:
"I will continue working in Authentication"
Same Repetitive
Then join miccrosoft where no Agile was done --- Somebody came and implemented Agile --- So it kinda feels functgional but still lots of room for improovement
Highlight (blue) - A Fractured Perspective > Page 27 · Location 659
A user story is a way to express one very specific need that a user has .
Highlight (blue) - A Fractured Perspective > Page 27 · Location 661
this : “ As a bar patron , I want to be able to play the newest hit that was just released today . ”
Highlight (orange) - A Fractured Perspective > Page 28 · Location 665
the lead developer and architect , sees a user story as a small piece of functionality , written out in a simple , easy - to - understand way . He can break it down into tasks , create an index card for each of them ,
Note - A Fractured Perspective > Page 28 · Location 666
Essentiually this would breka down the task into action items that are small pieces of implementation
Highlight (blue) - A Fractured Perspective > Page 28 · Location 668
value that will be delivered to the company ,
Highlight (blue) - A Fractured Perspective > Page 28 · Location 670
Bruce , the team lead , sees a user story as a specific goal that the team can organize around . He helps them figure out which stories should be done next , and uses the progress to keep them motivated .
Note - A Fractured Perspective > Page 28 · Location 672
You reach senior / team lead by just delivering --- Not impact --- Impact is something a Product Owner cares about not a SDE I / SDE II nor SENIOR engineering.
Managers are messured becouse of resource administration NOT even impact. M1 are messured based on the throughpout of the team
M2 -> Impact on how the project can do XYZ example that the GOV contract followes through
Highlight (pink) - A Fractured Perspective > Page 28 · Location 672
Adding user stories to a team like this will help improve the way they build software , because each of the people in those four roles will see a way that user stories helps him or her personally .
Highlight (blue) - A Fractured Perspective > Page 28 · Location 684
developers making incorrect assumptions , jumping into programming , and having to make changes to the code that could have been avoided , and that leave it more fragile .
Highlight (pink) - A Fractured Perspective > Page 29 · Location 687
a fractured perspective ,
Note - A Fractured Perspective > Page 29 · Location 688
aka miss comunication or partial view of what the product should look like (or individual vision on the proyect itself)
Highlight (blue) - A Fractured Perspective > Page 29 · Location 707
A project manager who sees user stories taped to a whiteboard as a direct replacement for a Gantt chart in a Microsoft Project
Highlight (yellow) - A Fractured Perspective > Page 30 · Location 712
In other words , when the team doesn’t communicate , the people in each of the project roles can adopt a new tool ( user stories ) , but still hold onto the old attitudes that caused friction and team problems .
Highlight (pink) - A Fractured Perspective > Page 31 · Location 736
Why Does a Fractured Perspective Lead to Just Better - Than - Not - Doing - It Results ?
Highlight (pink) - The Agile Manifesto Helps Teams See the Purpose Behind Each Practice > Page 33 · Location 762
as the Agile Manifesto , was created
Note - The Agile Manifesto Helps Teams See the Purpose Behind Each Practice > Page 33 · Location 762
Fun fact Agile Manifesto was NOT created by product managers but from engnieers like the one that did TDD or Clean Architecture and others
https://agilemanifesto.org/iso/es/manifesto.html
Kent Beck
Mike Beedle
Arie van Bennekum
Alistair Cockburn
Ward Cunningham
Martin Fowler
James Grenning
Jim Highsmith
Andrew Hunt
Ron Jeffries
Jon Kern
Brian Marick
Robert C. Martin
Steve Mellor
Ken Schwaber
Jeff Sutherland
Dave Thomas
Highlight (orange) - The Agile Manifesto Helps Teams See the Purpose Behind Each Practice > Page 33 · Location 763
Snowbird Retreat in the mountains outside of Salt Lake City , Utah , to come up with a solution to the software development problems they had all seen throughout their careers . After days of discussion , they agreed on a core set of ideas and principles ( and also on the name “ agile ” ) . They bundled them into a single document , which started a shift in thinking across the software development world . The Agile Manifesto contains four simple values . Here’s the entire Manifesto : We are uncovering better ways of developing software by doing it and helping others do it . Through this work we have come to value : Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is , while there is value in the items on the right , we value the items on the left more .
Highlight (pink) - The Agile Manifesto Helps Teams See the Purpose Behind Each Practice > Page 34 · Location 787
like daily standup meetings and retrospectives ( where everyone talks about how the project or iteration went , and what lessons can be learned ) — throughout this book .
Highlight (pink) - The Agile Manifesto Helps Teams See the Purpose Behind Each Practice > Page 35 · Location 800
It could be software that a company sells to make money , or it could be software that people who work at the company use to do their jobs more efficiently . For a project to add value , it needs to deliver or save more money than it cost to build .
Highlight (pink) - The Agile Manifesto Helps Teams See the Purpose Behind Each Practice > Page 35 · Location 807
It often also happens to be the kind of documentation — like wireframes or sequence diagrams — that programmers don’t mind writing .
Highlight (pink) - The Agile Manifesto Helps Teams See the Purpose Behind Each Practice > Page 35 · Location 811
test - driven development , in which the programmers build automated unit tests before they build the software that it tests .
Highlight (pink) - The Agile Manifesto Helps Teams See the Purpose Behind Each Practice > Page 35 · Location 813
because it gives developers a record of what the code is supposed to do , and of the expected behavior for individual elements of the software .
Note - The Agile Manifesto Helps Teams See the Purpose Behind Each Practice > Page 35 · Location 814
For example - Aproving a notifcation (all of our bug bashes)
Highlight (orange) - The Agile Manifesto Helps Teams See the Purpose Behind Each Practice > Page 35 · Location 819
software , they often treat each other as if they’re working on a contract . In many companies , they will explicitly discuss SLAs ( service - level agreements ) between programming teams , between testers and developers , and between teams and their users . This may reduce the risk of getting in trouble with the boss ( because it makes it easier to point a finger and blame another team for failing to deliver software ) , but it is highly counterproductive if the goal is to get working software out the door for the users .
Highlight (pink) - The Agile Manifesto Helps Teams See the Purpose Behind Each Practice > Page 36 · Location 829
Responding to Change Over Following a Plan There’s an old project management saying : “ plan the work , work the plan . ” Unfortunately , if you work the wrong plan , you’ll build the wrong product . That’s why teams need to constantly look for changes , and to make sure that they respond appropriately when there’s a change in what the users need , or in how the software needs to be built . If the circumstances change , the project needs a new plan .
Note - The Agile Manifesto Helps Teams See the Purpose Behind Each Practice > Page 36 · Location 833
Designers and Product Owners should be in the standup meetings to keep tap on what the product changes
Highlight (orange) - The Agile Manifesto Helps Teams See the Purpose Behind Each Practice > Page 36 · Location 837
This makes for a smoother project , but , if the change is really needed , it will be much harder to make it later on , after the code is more complete .
Highlight (yellow) - The Agile Manifesto Helps Teams See the Purpose Behind Each Practice > Page 37 · Location 839
Agile teams often use task boards to show tasks and track progress . They’ll write tasks or user stories on index cards , and move them across the board as they progress . Many teams also draw charts on their task boards to help them track progress .
Highlight (yellow) - The Agile Manifesto Helps Teams See the Purpose Behind Each Practice > Page 38 · Location 856
agile practices to help attain the goal of building working software that customers value through interaction , collaboration , and responding to change will get more out of their projects than the team that simply adopts better planning , programming , and documentation practices .
Highlight (blue) - The Agile Manifesto Helps Teams See the Purpose Behind Each Practice > Page 38 · Location 865
Agile Manifesto contains common values and ideas that lead to effective teams .
Note - The Agile Manifesto Helps Teams See the Purpose Behind Each Practice > Page 38 · Location 865
So the idea is that if a team is on the same page on the Values of Agile, they would go faster than just implemeting (I learned this on the hard way on my first engnieering job)
Highlight (pink) - The Agile Manifesto Helps Teams See the Purpose Behind Each Practice > Page 38 · Location 869
Working software means software that delivers value to the company .
Highlight (pink) - The Agile Manifesto Helps Teams See the Purpose Behind Each Practice > Page 38 · Location 869
“ Customer collaboration over contract negotiation ” means treating everyone like they’re on the same team .
Note - The Agile Manifesto Helps Teams See the Purpose Behind Each Practice > Page 38 · Location 870
Sales, Desginers, PMs, Eng, Eng Managers, and Principles
Highlight (pink) - The Agile Manifesto Helps Teams See the Purpose Behind Each Practice > Page 38 · Location 870
Many effective agile teams treat the product owner as a member of the project team to collaborate with , rather than a client or customer to negotiate with .
Highlight (yellow) - Understanding the Elephant > Page 39 · Location 883
metaphor that can help us get a better handle on what it means to have a fractured perspective ,
Highlight (pink) - Understanding the Elephant > Page 41 · Location 915
A team whose members only see the practices and don’t think about the principles will miss out on the important interactions between people . Their perspective stays fractured ;
Note - Understanding the Elephant > Page 41 · Location 916
Status Updatres are a Key thing for improving
Estiamtes
Planning
Developing velocity
Changing things Adhawks
PM and Designers should join the meetings and stakeholders of the meetings
Highlight (pink) - Understanding the Elephant > Page 41 · Location 919
Individuals and interactions over processes and tools
Highlight (blue) - Understanding the Elephant > Page 42 · Location 933
agile methodology is a collection of practices combined with ideas , advice , and often a body of knowledge and wealth of experience among agile practitioners .
Highlight (pink) - Understanding the Elephant > Page 42 · Location 943
Scrum can be summarized
Highlight (blue) - Understanding the Elephant > Page 42 · Location 944
The team and the project sponsors create a prioritized list of all the things the team needs to do . This can be a list of tasks or a list of features . This is known as the product backlog .
Highlight (blue) - Understanding the Elephant > Page 42 · Location 945
Each month , the team pulls off the top section of the list , which they estimate to be one month’s worth of work . They expand it to a detailed task list , called the sprint backlog . The team promises to demo or deliver the results to the sponsors at the end of the month .
Highlight (blue) - Understanding the Elephant > Page 42 · Location 947
Each day , the team meets face - to - face for five to ten minutes to update each other on their status and on any roadblocks that are slowing them down . This is called the daily standup meeting .
Highlight (blue) - Understanding the Elephant > Page 42 · Location 949
One particular person is designated the Scrum Master .
Highlight (blue) - Understanding the Elephant > Page 43 · Location 954
The product owner creates and maintains a product backlog ,
Highlight (pink) - Understanding the Elephant > Page 43 · Location 959
The team meets for a daily standup meeting in which everyone talks through the work they did the day before , the work they plan to do today , and any obstacles in their way .
Highlight (blue) - Understanding the Elephant > Page 43 · Location 960
The Scrum Master acts as leader , coach , and shepherd to guide the team through the project .
Highlight (pink) - Understanding the Elephant > Page 43 · Location 974
But XP goes beyond that , using those practices to help the team build simple , flexible software designs that are easy for the team to maintain and extend .
Highlight (pink) - Understanding the Elephant > Page 44 · Location 978
Scrum and XP have many things in common , including the fact that they are both iterative .
Highlight (blue) - Understanding the Elephant > Page 44 · Location 981
timeboxing ,
Highlight (pink) - Understanding the Elephant > Page 44 · Location 987
Methodologies are constructed around the agile values and principles , so this change in attitude is generally toward collaboration and
3. The Agile Principles
Highlight (pink) - Page 51 · Location 1118
3 . The Agile Principles
Highlight (yellow) - Page 51 · Location 1118
If I had asked people what they wanted , they would have said faster horses . Henry Ford1
Highlight (blue) - The 12 Principles of Agile Software > Page 52 · Location 1140
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software .
Highlight (blue) - The 12 Principles of Agile Software > Page 52 · Location 1142
Welcome changing requirements , even late in development .
Highlight (blue) - The 12 Principles of Agile Software > Page 52 · Location 1143
Deliver working software frequently , from a couple of weeks to a couple of months , with a preference to the shorter timescale .
Highlight (blue) - The 12 Principles of Agile Software > Page 52 · Location 1144
The most efficient and effective method of conveying information to and within a development team is face - to - face conversation .
Highlight (blue) - The 12 Principles of Agile Software > Page 52 · Location 1145
Businesspeople and developers must work together daily throughout the project .
Highlight (blue) - The 12 Principles of Agile Software > Page 52 · Location 1145
Build projects around motivated individuals . Give them the environment and support they need , and trust them to get the job done .
Highlight (blue) - The 12 Principles of Agile Software > Page 52 · Location 1146
Working software is the primary measure of progress .
Highlight (blue) - The 12 Principles of Agile Software > Page 52 · Location 1147
Agile processes promote sustainable development . The sponsors , developers , and users should be able to maintain a constant pace indefinitely .
Highlight (blue) - The 12 Principles of Agile Software > Page 52 · Location 1148
Continuous attention to technical excellence and good design enhances agility .
Highlight (blue) - The 12 Principles of Agile Software > Page 52 · Location 1149
Simplicity — the art of maximizing the amount of work not done — is essential .
Highlight (blue) - The 12 Principles of Agile Software > Page 52 · Location 1149
The best architectures , requirements , and designs emerge from self - organizing teams .
Highlight (blue) - The 12 Principles of Agile Software > Page 52 · Location 1150
At regular intervals , the team reflects on how to become more effective , then tunes and adjusts its behavior accordingly . 3
Highlight (blue) - The Customer Is Always Right...Right? > Page 53 · Location 1154
He’s talking about giving people what they actually need , and not just what they ask for . The customer has a need , and if you’re building software to meet that need , then you have to understand it — whether or not he can communicate it to you . How do you work with a customer who can’t necessarily tell you at the beginning of a project that he needs a car , and not just faster horses ?
Highlight (pink) - The Customer Is Always Right...Right? > Page 53 · Location 1158
deliver value . But that word , “ value , ” is a little bit tricky , because everyone sees different value in the software : different people need different things from it .
Note - The Customer Is Always Right...Right? > Page 53 · Location 1160
value is the sasme shit as impact
Highlight (pink) - The Customer Is Always Right...Right? > Page 53 · Location 1171
Every one of these things represents value that’s delivered to a stakeholder .
Note - The Customer Is Always Right...Right? > Page 53 · Location 1171
TLDLR I dont know the value of the thing UNTIL people start usign the actual product.
Meaning that I could ship XYZ and the impact is NON
But we should see what stakeholders use it for.
So for example for Passkeys
- This could mean
For Secuyrity Admings: 123 Tenants are able to do phish resisntant better
For Developers: Passkey code is easy to extend and work with the SDK
For Eng Managers: Reduce the amount of COGSS
But everyone thinks about IMPACT/VALUE different and its EASYLY VIEW AFTER thie PROYECT IS FINISHED.
Highlight (pink) - The Customer Is Always Right...Right? > Page 54 · Location 1174
It’s much harder to see that value at the start of the project .
Highlight (blue) - Delivering the Project > Page 55 · Location 1210
By putting frequent delivery of value first , by looking at each change as a good thing for the project , and by delivering software frequently , the team and the customers can work together to make adjustments along the way . The software that the team builds might not be what they set out to build , but that’s a good thing — because they end up building the software that the customers need most .
Highlight (orange) - Delivering the Project > Page 55 · Location 1215
This first principle includes three distinct and important ideas : releasing software early , delivering value continuously , and satisfying the customer .
Highlight (pink) - Delivering the Project > Page 56 · Location 1225
through early delivery :
Highlight (pink) - Delivering the Project > Page 56 · Location 1231
The downside to delivering early is that the software that’s first delivered to the customers is far from complete . This can be really hard for some users and stakeholders to deal with ; while some users are used to the idea that they’ll see software early , others are much less so . Many people have a hard time when they are handed software that’s not perfect . In fact , in a lot of companies ( especially larger companies where people have spent years working with software teams ) , the software team has to literally negotiate the terms under which they’ll provide software to their stakeholders . When there’s not a great partnership between the team and the people they build software for , if the team delivers incomplete software , the users and stakeholders may judge it very harshly and even panic if a feature they expect to see is missing .
Note - Delivering the Project > Page 56 · Location 1237
This is something that you have to EDUCATE the client. Meaning that the client has to understand the Agile Methodiligies, and they have to see value from being in Private Preview.
On my current job is SECEURITY, my last JOB is PRIVACY.
Privacy is harder becouse of the US consitution they are monetary consequences.
Meaning that each data record could lead to 200$ fine from the US gov. nevertheless we shipped regularly.
Highlight (pink) - Delivering the Project > Page 57 · Location 1252
especially for a developer who knows that his boss will hold him to the old deadline , no
Highlight (pink) - Delivering the Project > Page 57 · Location 1265
Very often , someone is telling you to change course after explicitly setting you on that course . If that person told you to build one thing , and you went ahead and built half of it , it’s very frustrating for that same person to then come back to you and say , “ Actually , now that I think about it , can we
Highlight (pink) - Delivering the Project > Page 57 · Location 1267
in . Now you have to go back and make changes to things you thought were done . It’s hard not to get defensive about that ! And it gets even worse if you’re the one who’s held responsible for not reading your customer’s mind and , as a result , blowing your deadline .
Note - Delivering the Project > Page 57 · Location 1269
I live this PR hahaha :')
Highlight (pink) - Delivering the Project > Page 57 · Location 1270
The first step toward welcoming changing requirements is to try to see things from the customer’s perspective . This is not always easy , but it’s enlightening .
Highlight (blue) - Delivering the Project > Page 58 · Location 1275
Your deadline is going to be blown , but so is his .
Highlight (pink) - Delivering the Project > Page 58 · Location 1281
Nobody gets in “ trouble ” when there’s a change . We acknowledge — and our bosses acknowledge — that we’re human and fallible , and that it’s better for the company to allow us to make mistakes and correct them frequently , rather than expect us to do things perfectly the first time .
Highlight (pink) - Delivering the Project > Page 58 · Location 1287
We stop thinking of changes as mistakes . We did our best with the information we had at the time , and it only became clear that we were wrong because the decisions we made along the way gave us the perspective to recognize the changes that we have to make today .
Highlight (pink) - Delivering the Project > Page 59 · Location 1301
The term “ command - and - control ” is borrowed from the military . In our 2010 book , Beautiful Teams , we interviewed Northrop Grumman chief engineer Neil Siegel ,
Highlight (pink) - Delivering the Project > Page 61 · Location 1320
The key to welcoming changes without introducing chaos lies in delivering working software frequently .
Highlight (yellow) - Delivering the Project > Page 61 · Location 1330
The project manager’s role starts to shift away from command - and - control , where she gave the team a daily battle plan and constantly adjusted to keep them on track . Instead , now she’s working with the team to make sure that each person is constantly looking at the big picture and working toward the same goals .
Highlight (blue) - Communicating and Working Together > Page 65 · Location 1389
So back to that question that teams have struggled with : how much documentation should they create ? The answer , for an agile team , is just enough to build the project . Exactly how much that is depends on the team , how well they communicate , and the problem that they’re solving . Think about all of the other kinds of documentation that software teams build : capturing all of the decisions made in every meeting by taking copious meeting notes ; creating cross - reference documents that describe every aspect of every data source or store ; complex matrices of detailed roles , responsibilities , and rules that each person needs to follow . A case can be made for all sorts of documentation . If it doesn’t actually help the team build the software , and if it’s not required for some other reason ( like for a regulator , investor , senior manager , or other stakeholder ) , an agile team doesn’t build it . But if , for example , a team finds that it really helps them to write a functional requirements document , then they can do it and still be agile . It all depends on what works best for the team , and that’s one of the freedoms that agile gives you .
Highlight (pink) - Communicating and Working Together > Page 66 · Location 1418
Principle # 4 : The Most Efficient and Effective Method of Conveying Information To and Within a Development Team Is Face - To - Face Conversation . Agile practitioners recognize that documentation is just another form of communication . 4 When I write a document and hand it to you , the goal is not to write documentation .
Highlight (pink) - Communicating and Working Together > Page 67 · Location 1435
Software engineers are notoriously practical . When they see how much work is involved in building up that comprehensive documentation , they end up having those face - to - face conversations anyway .
Note - Communicating and Working Together > Page 67 · Location 1436
Lived this!
Highlight (pink) - Communicating and Working Together > Page 68 · Location 1454
To build software well , teams need to have a lot of face - to - face discussion with businesspeople , because they need to tap into their knowledge of the company’s problems that are going to be solved with software .
Highlight (blue) - Communicating and Working Together > Page 68 · Location 1460
The longer they have to wait to get their questions answered , the slower their projects progress .
Highlight (pink) - Communicating and Working Together > Page 68 · Location 1463
The finished software is worth money to the company . If that value is more than the cost to build the software , it’s worth it for the company to invest in its development .
Highlight (pink) - Communicating and Working Together > Page 70 · Location 1492
Some common “ incentives ” that work against agile teams include : Giving programmers poor performance reviews when code reviews routinely turn up bugs , and rewarding them for “ clean ” code reviews . ( This just leads programmers to stop finding bugs in code reviews . )
Note - Communicating and Working Together > Page 70 · Location 1494
ehhh this is ??! weird!?!? but true I find this a a conflict of insterest
Highlight (pink) - Communicating and Working Together > Page 70 · Location 1494
Rewarding testers for the number of bugs that they report . ( This encourages nitpicking and poor reporting , and discourages them from partnering with the programmers , because it sets up an antagonistic relationship between them . )
Note - Communicating and Working Together > Page 70 · Location 1495
:( NO PLS THIS IS HORRIBLE THEN!!!
Highlight (pink) - Communicating and Working Together > Page 71 · Location 1496
Basing business analysts ’ performance reviews on the amount of documentation they produce ( rather than the amount of knowledge they’ve shared with the team ) .
Highlight (blue) - Communicating and Working Together > Page 71 · Location 1497
Ultimately , everyone’s performance should be based on what the team delivers , rather than the specific role that they played in it .
Note - Communicating and Working Together > Page 71 · Location 1498
Output - 20PR out with 3 demos
Amount of demos
Highlight (pink) - Communicating and Working Together > Page 71 · Location 1503
Comprehensive documentation and traceability matrices are a particularly insidious source of problems with a team’s environment and support . Instead of encouraging an environment of trust , they encourage a “ cover your ass ” ( CYA ) attitude in which teams move toward a “ contract negotiation ” approach ,
Note - Communicating and Working Together > Page 71 · Location 1506
This is TRUE
Highlight (pink) - Communicating and Working Together > Page 71 · Location 1518
The opposite of CYA is trust . A company that develops only the minimal documentation needed for the project has an environment where the team is trusted to do the right thing when a change happens . An agile team with a “ we’re all in this together ” attitude , where if the project fails everyone shares the blame , doesn’t need to CYA .
Highlight (pink) - Communicating and Working Together > Page 72 · Location 1523
— even if it causes the project to take longer .
Highlight (pink) - Project Execution—Moving the Project Along > Page 74 · Location 1558
Working Software Is the Primary Measure of Progress .
Highlight (pink) - Project Execution—Moving the Project Along > Page 75 · Location 1576
Figure 3 - 6 . Working software is better than progress reports for giving everyone the latest update on the project’s status , because it’s the most effective way for the team to communicate what they’ve accomplished .
Highlight (blue) - Project Execution—Moving the Project Along > Page 76 · Location 1583
Principle # 8 : Agile Processes Promote Sustainable Development . The Sponsors , Developers , and Users Should Be Able to Maintain a Constant Pace Indefinitely .
Highlight (pink) - Project Execution—Moving the Project Along > Page 76 · Location 1601
Principle # 9 : Continuous Attention to Technical Excellence and Good Design Enhances Agility . Poor estimates aren’t the only cause of late nights and weekends . Most developers recognize that sinking , pit - of - the - stomach feeling that comes with the realization that a seemingly simple bit of coding turned out to be a nightmare to design . There go the next three weekends , which will now be spent tracking down bugs and patching up code .
Highlight (pink) - Project Execution—Moving the Project Along > Page 77 · Location 1610
The last two decades or so have brought us a revolution in software design . Object - oriented design and analysis , design patterns , decoupled and service - oriented architecture , and other innovations have given developers patterns and tools to bring technical excellence to every project . But this doesn’t mean that agile teams spend a lot of time creating large - scale designs at the start of every software project . Agile developers build up great coding habits that help them create well - designed code . They’re constantly on the lookout for design and code problems , and take the time to fix those problems as soon as they’re discovered . By taking a little extra time during the project to write solid code and fix problems today , they create a codebase that’s easy to maintain tomorrow .
Note - Project Execution—Moving the Project Along > Page 77 · Location 1616
Good Design = Good Estimates where you can write CLEAN CODE --- BROTHER READ THE GOD THAM BOOK (clean architecture)
Highlight (pink) - Constantly Improving the Project and the Team > Page 78 · Location 1646
Principle # 10 : Simplicity — the Art of Maximizing the Amount of Work Not Done — Is Essential .
Highlight (pink) - Constantly Improving the Project and the Team > Page 79 · Location 1657
otherwise the team will write code today that they’ll need remove tomorrow when the design changes .
Highlight (pink) - Constantly Improving the Project and the Team > Page 79 · Location 1664
The most destructive thing you can do to your project is to build new code , and then build more code that depends on it , and then still more code that depends on that , leading to that painfully familiar domino effect of cascading changes . . . and eventually leaving you with an unmaintainable mess of spaghetti code .
Highlight (pink) - Constantly Improving the Project and the Team > Page 79 · Location 1666
by building systems that don’t have a lot of dependencies and unnecessary code .
Highlight (pink) - Constantly Improving the Project and the Team > Page 79 · Location 1670
If a feature is not valuable , it’s often cheaper for the company in the long run to not build it at all , because the cost of maintaining the additional code is actually higher than the value it delivers to the company .
Highlight (orange) - Constantly Improving the Project and the Team > Page 79 · Location 1675
Principle # 11 : The Best Architectures , Requirements , and Designs Emerge from Self - Organizing Teams .
Highlight (pink) - Constantly Improving the Project and the Team > Page 80 · Location 1686
A self - organizing team , on the other hand , does not have an explicit requirements or design phase . When a team is self - organizing , it means that they work together to plan the project ( instead of relying on a single person who “ owns ” the plan ) , and they continually come together as a team to revise that plan . A team that works like this typically breaks the project down into user stories or other small chunks , and starts working on the ones that deliver the most value to the company first . Only then do they start thinking about detailed requirements , design , and architecture .
Highlight (pink) - Constantly Improving the Project and the Team > Page 80 · Location 1696
interesting ) . Instead of creating one big design at the beginning of the project that covers all of the requirements , agile architects use incremental design , which involves techniques that allow them to design a system that is not just complete , but also easy for the team to modify as the project changes .
Note - Constantly Improving the Project and the Team > Page 80 · Location 1698
No detail design doc, more just an overview and a general plan. And people can tap into it
Highlight (pink) - Constantly Improving the Project and the Team > Page 80 · Location 1700
Principle # 12 : At Regular Intervals , the Team Reflects on How to Become More Effective , Then Tunes and Adjusts Its Behavior Accordingly .
Highlight (pink) - Constantly Improving the Project and the Team > Page 80 · Location 1708
You need to be comfortable being brutally honest with yourself and your teammates about what’s working and what isn’t .
Highlight (pink) - Constantly Improving the Project and the Team > Page 81 · Location 1711
This makes sense , and almost everyone agrees that it’s a good thing to do .
4. Scrum and Self-Organizing Teams
Highlight (pink) - Page 89 · Location 1882
the team becomes capable of self - organization and can quickly cut through complexity and produce actionable plans . The goal of this chapter is to help you “ get Scrum ” by building on the ideas from Chapters 2 and 3 to teach you the practices and patterns of Scrum .
Highlight (pink) - The Rules of Scrum > Page 89 · Location 1895
Each sprint starts with sprint planning done by the Scrum Master , Product Owner , and the rest of the team , consisting of a meeting divided into two parts , each timeboxed to four hours . The Product Owner’s homework prior to sprint planning is to come up with a prioritized backlog for the product that consists of a set of items that the users and stakeholders have bought into .
Highlight (pink) - The Rules of Scrum > Page 90 · Location 1907
The team holds a Daily Scrum meeting every day . All team members ( including the Scrum Master and Product Owner ) must attend , 2 and interested stakeholders may attend as well ( but must remain silent observers ) . The meeting is timeboxed to 15 minutes , so all team members must show up on time .
Highlight (pink) - The Rules of Scrum > Page 90 · Location 1912
Each sprint is timeboxed to a specific length decided during sprint planning : many teams use 30 calendar days , but this length can vary — some teams choose two - week sprints , some choose one month ( and again , the planning timebox should vary accordingly ) . During the sprint , the team builds the items in the sprint backlog into working software . They can get help from people who are not on the team , but people who are not on the team cannot tell the team how to do their jobs , and must trust the team to deliver .
Highlight (yellow) - The Rules of Scrum > Page 90 · Location 1916
If anyone on the team discovers partway through the sprint that they overcommitted or that they can add extra items , they need to make sure the Product Owner knows as soon as they realize the sprint is in danger .
Highlight (blue) - The Rules of Scrum > Page 90 · Location 1921
Product Owner can terminate the sprint early and initiate new sprint planning if the team discovers that they cannot deliver working software
Highlight (blue) - The Rules of Scrum > Page 90 · Location 1924
At the end of the sprint , the team holds a sprint review meeting where they demonstrate working software to users and stakeholders . The demo may only include items that are actually done done3
Highlight (pink) - The Rules of Scrum > Page 91 · Location 1934
After the sprint , the team holds a sprint retrospective meeting to find specific ways to improve how they work . The team and Scrum Master ( and optionally the Product Owner ) attend . Each person answers two questions : What went well during the sprint ? What can improve in the future ? The Scrum Master takes note of any improvements , and specific items
Highlight (blue) - The Whole Team Uses the Daily Scrum > Page 111 · Location 2316
The project manager needs to scope out the work , often in some sort of business requirements or scope and objectives document . Managers need to sign off on the scope . A business analyst needs to review the scope , then talk to the users and other stakeholders to understand their jobs . The business analyst comes up with use cases , functional requirements , etc . The programmer takes the requirements and generates an estimate . The project manager takes the requirements and estimates , builds out a schedule , and reviews it with stakeholders and managers .
Highlight (pink) - The Whole Team Uses the Daily Scrum > Page 115 · Location 2412
How to Hold an Effective Daily Scrum Act like a “ pig ” During this meeting , every team member is accountable to his or her teammates , and should explain what happened if a commitment that he or she made in the previous meeting wasn’t met . Imagine yourself on a self - organizing team , where you truly feel accountable for the project .
Highlight (pink) - The Whole Team Uses the Daily Scrum > Page 116 · Location 2420
column and choose the one that makes the most sense for you and for the project . If it’s not the right choice , someone else who’s also acting like a genuinely committed “ pig ” will speak up .
Highlight (blue) - The Whole Team Uses the Daily Scrum > Page 116 · Location 2422
Take detailed conversations offline The goal of the Daily Scrum is to identify problems , not solve them . If a problem hasn’t been resolved after a minute or two of discussion ,
Highlight (pink) - The Whole Team Uses the Daily Scrum > Page 116 · Location 2427
Take turns going first There’s no single person who’s the “ keeper ” of the schedule , and there’s no single person who’s more important to the project than anyone else . Obviously , some developers have more expertise than others . But good ideas can come from anyone , and if a junior person on the team has a good idea ,
Note - The Whole Team Uses the Daily Scrum > Page 116 · Location 2431
My current boss has a script that runs and chooses a random person
Highlight (pink) - The Whole Team Uses the Daily Scrum > Page 117 · Location 2442
Everyone participates This includes testers , business analysts , and anyone else on the team — and the Product Owner , too . They’re all genuinely committed . The Product Owner has an especially important job to do because he or she keeps everyone up to date on what tasks in the backlog are most valuable to the users and the company .
Highlight (blue) - The Whole Team Uses the Daily Scrum > Page 117 · Location 2451
Don’t treat it like a status meeting A typical status meeting is a great example of a “ ritual ” that we have to go through every week .
Highlight (yellow) - The Whole Team Uses the Daily Scrum > Page 117 · Location 2456
person in the Daily Scrum is really listening . ( This means not checking email or cell phones , or doing work ! )
Note - The Whole Team Uses the Daily Scrum > Page 117 · Location 2457
How do you make this work? camara.
Highlight (pink) - The Whole Team Uses the Daily Scrum > Page 117 · Location 2459
Inspect every task When you’re looking for roadblocks , don’t just look at what you’re currently doing . Look several moves ahead by examining every item in the “ to do ” column to figure out if any of those items could have an impact . If there’s a potential problem , it’s better to bring it up with the team now and have it dismissed than to keep quiet and get burned
Highlight (pink) - The Whole Team Uses the Daily Scrum > Page 117 · Location 2466
Change the plan if it needs to be changed This is the “ adapting ” part of the visibility - inspection - adaptation cycle , and it’s what puts the teeth in self - organization . Let’s say the team identifies a roadblock during the Daily Scrum ,
Highlight (pink) - The Whole Team Uses the Daily Scrum > Page 118 · Location 2473
Just remember , no matter how badly people will react to the change when they find out about it today , they’ll react even worse if you don’t tell them now , and they find out later .
Highlight (pink) - Sprints, Planning, and Retrospectives > Page 124 · Location 2600
Visibility and Value Think about what motivates you when you’re working . How often has something like this gone through your head at work : “ Working with this technology will look great on my résumé ” ( if you’re a developer ) “ If I prove myself on this project , I’ll get to grow my team ” ( if you’re a team lead ) “ Meeting this big deadline will get me that promotion ” ( if you’re a project manager ) “ If I land that big client , I’ll get a huge bonus ” ( if you’re an account manager , Product Owner , stakeholder , etc . )
Highlight (pink) - Sprints, Planning, and Retrospectives > Page 124 · Location 2609
Here’s a good example of how self - interest can damage a project : let’s say there’s a team member who can dump his uninteresting or irritating tasks on someone else , usually a more junior member of the team .
Highlight (pink) - Sprints, Planning, and Retrospectives > Page 124 · Location 2611
For example , senior developers are often so busy building new software that they put off fixing bugs .
Highlight (pink) - Sprints, Planning, and Retrospectives > Page 125 · Location 2626
Any team ( even non - agile ones ) can try to capture this productivity by setting up rules preventing senior team members from dumping “ boring ” maintenance tasks on junior team members .
Note - Sprints, Planning, and Retrospectives > Page 125 · Location 2627
To be effective Engieers need to fix the bugs that they create otherwise we become less effective.
Lets say we have something like
Authenticaton Module... Develop by X... Who needs to fix bugs? Jenior to take hours 10+ hours to figure out and then implement NO. Senior who would take 5min to do.
Highlight (pink) - Sprints, Planning, and Retrospectives > Page 125 · Location 2635
On an effective Scrum team , everyone feels a true sense of ownership , not just of the code they build , but of the backlog , and of the work that everyone is doing to deliver working software .
Highlight (pink) - Sprints, Planning, and Retrospectives > Page 126 · Location 2643
Elevating goals motivate everyone on the team Have you ever done volunteer work ? Contributed to an open source project ? Joined a club , or amateur sports team , or rock band , or church choir ? Think about the last time you joined a group outside of your work or your family . Why did you do it ?
Highlight (pink) - Sprints, Planning, and Retrospectives > Page 126 · Location 2665
If you’re out digging ditches , that’s not very elevating or inspiring . But if you’re digging ditches to protect your town that’s about to be attacked by an enemy , well , that’s more inspiring , even though it’s the same activity . And so the leader’s job , really , is to try to determine or frame the activity in such a way that people can understand what the value is . Almost all software is built by teams , not individuals . For a team to work effectively , they need to be motivated together , not just as individuals . Teams are motivated best by elevating goals , which bring them together for a higher purpose that they all care about .
Highlight (orange) - Sprints, Planning, and Retrospectives > Page 127 · Location 2669
Delivering value can be a very effective elevating goal , one that can motivate the whole team . When a team has an elevating goal that they truly believe in , and they’re given the room to decide for themselves how to accomplish it ( and the freedom to take risks ) they will work hard to use the tools they have available to solve any problem standing in the way of that goal .
Highlight (pink) - Sprints, Planning, and Retrospectives > Page 127 · Location 2672
an agile team , value has a very real and specific meaning : software is valuable if it makes your users ’ lives better . What happens if a senior vice president comes down to the team and says this : “ Because of all your hard work over the last few months , we added 0.024 % to our third quarter revenues . Great job , team ! ” That’s not particularly motivating for most developers , not even ones who are paid with stock options .
Highlight (blue) - Sprints, Planning, and Retrospectives > Page 127 · Location 2676
“ Wow , I used to spend three hours every day just sorting through these numbers . Your software is so easy to use and works so well that I can do it all in 10 minutes . Thank you ! ” That’s much more motivating to most developers . Developers — and by “ developers ” we mean all members of an agile team , even ones who don’t necessarily write code — are highly motivated by pride of workmanship .
Highlight (pink) - Sprints, Planning, and Retrospectives > Page 127 · Location 2686
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software .
Highlight (pink) - Sprints, Planning, and Retrospectives > Page 128 · Location 2710
Get everyone talking about value Effective Scrum teams tend to be full of people who understand what their users actually need , and what’s valuable to them . The only way this can happen is if every person on the team understands what it will do for people who use it . How does it make their lives easier ? What does it let them do that they couldn’t do before ? How much time and effort will it save them ? These things really matter to agile developers . The more that you talk about them and make sure that they matter ,
8. Lean, Eliminating Waste, and Seeing the Whole
Highlight (pink) - Gain a Deeper Understanding of the Product > Page 288 · Location 5909
Gain a Deeper Understanding of the Product Perceived integrity means that the totality of the product achieves a balance of function , usability , reliability , and economy that delights customers . Conceptual integrity means that the system’s central concepts work together as a smooth , cohesive whole . Mary and Tom Poppendieck , Lean Software Development : An Agile Toolkit
Highlight (pink) - Deliver As Fast As Possible > Page 295 · Location 6065
Deliver As Fast As Possible There’s one more Lean value : deliver as fast as possible . When you read that , what comes to mind ? Do you think of a pushy boss or project manager prodding the team to work late and get code out the door ? Does “ deliver as fast as possible ” mean cutting out tests , low - priority features , and anything else that is deemed “ extraneous ” or low - priority ? Maybe it makes you think of a heroic developer working late nights and weekends or putting in quick - and - dirty hacks to get an important feature out the door . This is where most managers ’ minds go when they hear the phrase , “ deliver as fast as possible , ” and many developers , testers , and other software engineers think the same thing .
Highlight (pink) - Deliver As Fast As Possible > Page 295 · Location 6079
The purpose of queuing theory is to make sure that people are not overloaded with work , so that they have time to do things the right way . A queue is a list of tasks , features , or to - do items for a team or for an individual developer .
Highlight (pink) - Deliver As Fast As Possible > Page 304 · Location 6158
Keep in mind that plenty of healthy teams usually have many tasks due at the same time but don’t call it “ multitasking ” ; people typically use the term “ multitasking ” in order to mask the fact that the team is simply overloaded . Splitting the work up and telling the team to multitask often keeps you from recognizing that you simply have more work than time , especially when you consider the extra time and cognitive effort required to switch between tasks . For example , a team that already has 100 % of their time already devoted to development work may have a boss with magical thinking who asks them to “ multitask ” and spend several hours a week that they don’t have
Highlight (pink) - Deliver As Fast As Possible > Page 304 · Location 6168
Pull Systems Help Teams Eliminate Constraints And I have a philosophy that I live by . Everybody that works with me knows this ; it’s on the wall : “ If stupid enters the room , you have a moral duty to shoot it , no matter who’s escorting it . ” Keoki Andrus , Beautiful Teams ( Chapter 6 )
Highlight (pink) - Deliver As Fast As Possible > Page 304 · Location 6171
A pull system is a way of running a project or a process that uses queues or buffers to eliminate constraints . This is another concept that originated with Japanese auto manufacturing , but has since found its place in software development .
Note - Deliver As Fast As Possible > Page 304 · Location 6173
best example is :
I am building XYZ componenet
but I need ethis library
- I can pull the library IN
Highlight (pink) - Deliver As Fast As Possible > Page 305 · Location 6182
At the heart of TPS is the idea that there are three types of waste that create constraints in the workflow and must be removed : Muda ( 無駄 ) , which means “ futility ; uselessness ; idleness ; superfluity ; waste ; wastage ; wastefulness ” Mura ( 斑 ) , which means “ unevenness ; irregularity ; lack of uniformity ; nonuniformity ; inequality ” Muri ( 無理 ) , which means “ unreasonableness ; impossible ; beyond one’s power ; too difficult ; by force ; perforce ; forcibly ; compulsorily ; excessiveness ; immoderation ”
Highlight (pink) - Deliver As Fast As Possible > Page 305 · Location 6190
Do any of these things feel familiar ? It takes a very long time to get everyone to sign off on a specification , and in the meantime developers are sitting around waiting for the project to start . Once it does start , they’re already late . It takes management forever to secure the budget . By the time the project is given the green light , it’s already late . Halfway through development , the team recognizes that an important part of the software design or architecture needs to be changed , but that will cause very large problems because so many other things depend on it . The QA team doesn’t start testing the software until every feature is complete . They find a major bug or a serious performance problem , and the team has to scramble to fix it . The analysis and design take so long that by the time coding begins , everyone needs to work nights and weekends to meet the deadline . A software architect designs a large , beautiful , complex system that’s impractical to implement . Even the smallest change to a specification , a document , or a plan needs to go through a burdensome change control process . People find ways to work around the process by putting even sweeping , large - scale changes into a ticketing or bug tracking system instead . The project is running late , so the boss adds extra people to the team for the last few weeks . Instead of making the project go faster , this move creates confusion and chaos .
Highlight (pink) - Deliver As Fast As Possible > Page 308 · Location 6230
Figure 8 - 10 . This value stream map shows the waste that happens when the team is waiting for a large specification to be created and approved .
Highlight (pink) - Deliver As Fast As Possible > Page 309 · Location 6246
Key Points A minimal marketable feature ( MMF ) is the smallest “ chunk ” of value or functionality that the team can deliver , such as a story or a user request — something that might end up on a Product Owner’s backlog ) .
Note - Deliver As Fast As Possible > Page 309 · Location 6248
High Level Design Docs or Doing BIG chunks results in HUGE del\eveloir waiting time.
So its better to do a MMF or MVP or whatever you want to call it. and start the high level desing doc as it goes.