Clean Agile: Back to Basics
By Robert C. Martin
Use it for all it’s worth, evangelize it to the others in your sphere of influence, and reclaim the original goal, the goal you and practically everyone you’ve ever worked with have longed for, talked about, and probably given up on.
~ Clean Agile: Back to Basics, Robert C. Martin
—
Say what you will about religion, but the best adherents to it are those who make the effort to understand what they believe, beyond just believing what they are told.
~ Clean Agile: Back to Basics, Robert C. Martin
—
So while we await the Next Big Thing that the next generation will reveal to us, let’s take a minute to reassess where we are and what we have to work with at present.
~ Clean Agile: Back to Basics, Robert C. Martin
—
Ask the developers in an “Agile organization” what Agile is, and you’ll likely get a very different answer than if you ask anyone beyond the level of a software development manager
~ Clean Agile: Back to Basics, Robert C. Martin
—
There is a difference between having a job and having a profession
~ Clean Agile: Back to Basics, Robert C. Martin
—
Every time developers volunteer details of how they work, they are inviting managers to micromanage them.
~ Clean Agile: Back to Basics, Robert C. Martin
—
The problem here is that we are offering a solution before agreeing on the problem
~ Clean Agile: Back to Basics, Robert C. Martin
—
FOCUS ON THE VALUE, NOT THE PRACTICE
~ Clean Agile: Back to Basics, Robert C. Martin
—
The goal is to teach a child to ride a bicycle, not to adopt the training wheels.
~ Clean Agile: Back to Basics, Robert C. Martin
—
SOFTWARE CRAFTSMANSHIP
~ Clean Agile: Back to Basics, Robert C. Martin
—
Over the years, developers started seeing Agile coaches as another layer of management: people telling them what to do instead of helping them to get better at what they do.
~ Clean Agile: Back to Basics, Robert C. Martin
—
balancing flexibility and robustness with the need to deploy software to production continuously is extremely hard and cannot be done without the necessary engineering skills.
~ Clean Agile: Back to Basics, Robert C. Martin
—
Good collaboration removes some of the blocks people have to do their jobs but does not necessarily make them more skilled.
There is a
~ Clean Agile: Back to Basics, Robert C. Martin
—
Daily standup meetings become meetings where developers must report progress to product owners and Agile coaches, detailing what they are working on and when they will be done
~ Clean Agile: Back to Basics, Robert C. Martin
—
Agile coaches with neither business nor technical experience are coaching managers and telling development teams what to do. Roadmaps and milestones are being defined by managers and forced upon development teams—developers can estimate the work, but they are pushed hard to fit their estimates into the imposed milestones.
~ Clean Agile: Back to Basics, Robert C. Martin
—
But as in a Chinese whispers game, the original Agile ideas got distorted and simplified, arriving at companies as the promise of a process to deliver software faster
~ Clean Agile: Back to Basics, Robert C. Martin
—
Here are some of the practices that are generally associated with team-level Agile that do double duty as enablers of multiteam coordination.
~ Clean Agile: Back to Basics, Robert C. Martin
Solid, small stories, small iterations, simple design
—
Agility in the large is very high levels of Agility at the team level and very low levels of complexity everywhere.
~ Clean Agile: Back to Basics, Robert C. Martin
!
—
Portfolio Kanban sets work in progress limits at the initiative level in order to ensure that the organization is focused on the highest-value work at all times
~ Clean Agile: Back to Basics, Robert C. Martin
—
aligning iteration start and stop times as well as iteration length. Teams that don’t use iterations and are able to release on demand can align with any other cadence.
~ Clean Agile: Back to Basics, Robert C. Martin
For teams that don't work the same processes
—
making the work visible (via a card wall), limiting work in progress, and pulling work through the system.
~ Clean Agile: Back to Basics, Robert C. Martin
Practices of kanban
—
short daily team meetings, a product owner, a process facilitator (aka Scrum Master), retrospectives, a cross-functional team, user stories, small releases, refactoring, writing tests first, and pair programming
~ Clean Agile: Back to Basics, Robert C. Martin
Practices of scrum
—
For instance, rather than adopting Scrum, Kanban, XP, or one of the scaling frameworks, consider which single practice from the list below is most relevant to a current need for a defined group or team, and adopt that.
~ Clean Agile: Back to Basics, Robert C. Martin
—
Coaching alone is not enough; teaching and mentoring will also come into play so that people will be able to make informed decisions.
~ Clean Agile: Back to Basics, Robert C. Martin
—
at the team and organizational levels means helping teams achieve their goals on their own
~ Clean Agile: Back to Basics, Robert C. Martin
—
Unfortunately, a common pattern of Agile adoption in large organizations is to treat the adoption like a traditional project. That is, a top-down command and control rollout of a huge number of changes decided on as part of an up-front design
~ Clean Agile: Back to Basics, Robert C. Martin
—
There is a growing body of coaching tools. Many of them can be found at tastycupcakes.org, retromat.org, and liberatingstructures.com.
~ Clean Agile: Back to Basics, Robert C. Martin
—
Coaching Agile Teams
~ Clean Agile: Back to Basics, Robert C. Martin
Book
—
Coaching helps people discover the blind spots and surface the underlying beliefs that keep them from moving forward.
~ Clean Agile: Back to Basics, Robert C. Martin
—
Becoming Agile involves revisiting entrenched beliefs, culture, process, thinking, and ways of working
~ Clean Agile: Back to Basics, Robert C. Martin
—
Ironically, executives are also often driven by the risk-taking, direct, communicative values of Agile. This is one of the reasons they try to transition their organizations.
The barrier is the management layer in the middle. These folks were hired to not take risks, to avoid directness
~ Clean Agile: Back to Basics, Robert C. Martin
—
Agile as an algorithm for finding the highest-value-producing features in the market and then turning them into revenue faster.
~ Clean Agile: Back to Basics, Robert C. Martin
—
Given the current state of most ALM tools, it may be safer and smarter to begin with physical tools
~ Clean Agile: Back to Basics, Robert C. Martin
—
tool has replaced interactions of individuals with automated status reporting
~ Clean Agile: Back to Basics, Robert C. Martin
—
ALM tools utterly fail at being grea
~ Clean Agile: Back to Basics, Robert C. Martin
—
You don’t want to get locked into other people’s process flows
~ Clean Agile: Back to Basics, Robert C. Martin
—
Workers use and control tools; tools don’t control and use people.
~ Clean Agile: Back to Basics, Robert C. Martin
—
Once you own a tool, the path of least resistance is to do whatever the tool provides regardless of whether it meets the team’s needs.
~ Clean Agile: Back to Basics, Robert C. Martin
—
physical tools is that they’re not very effective for distributed teams, o
~ Clean Agile: Back to Basics, Robert C. Martin
—
information radiators
~ Clean Agile: Back to Basics, Robert C. Martin
—
exapted (used effectively in ways the originators hadn’t intended).
~ Clean Agile: Back to Basics, Robert C. Martin
—
A good tool should feel comfortable in your hands and not make you queasy with the dread of having to use it
~ Clean Agile: Back to Basics, Robert C. Martin
!
—
Git is its ability to make you feel safe
~ Clean Agile: Back to Basics, Robert C. Martin
—
Software Tools
~ Clean Agile: Back to Basics, Robert C. Martin
Hand tools
—
This mastery allows them to focus on the craft itself—the delicate shaping of a high-quality piece of furniture, for example—rather than the tool. Without mastery, a tool becomes an impediment to delivery, and a poorly used tool can even cause harm to the project and its operator.
~ Clean Agile: Back to Basics, Robert C. Martin
—
you just read is my opinion
~ Clean Agile: Back to Basics, Robert C. Martin
—
use standard management and operations research techniques to manage those teams
~ Clean Agile: Back to Basics, Robert C. Martin
—
ng. Organizing large teams is a matter of organizing them into small teams
~ Clean Agile: Back to Basics, Robert C. Martin
—
I am always frustrated when people ask me how to apply Agile to hardware, construction, or some other task. My answer has always been that I don’t know, because Agile is about software
~ Clean Agile: Back to Basics, Robert C. Martin
—
Software is like mathematics, except that nothing can be proven.
~ Clean Agile: Back to Basics, Robert C. Martin
Uh
—
Large teams are a solved problem.
~ Clean Agile: Back to Basics, Robert C. Martin
—
The Agile certifications that exist are a complete joke and an utter absurdity.
~ Clean Agile: Back to Basics, Robert C. Martin
—
see Scrum Masters who are not coaches at all but are simply project manage
~ Clean Agile: Back to Basics, Robert C. Martin
—
led to the role of the coach to be conflated with the role of the project manager
~ Clean Agile: Back to Basics, Robert C. Martin
—
Agile coaches are not trainers. They are members of the team whose role is to defend the process within the team
~ Clean Agile: Back to Basics, Robert C. Martin
—
Their goal is to inculcate the Agile values and teach the Agile disciplines. Their tenure should be short. Eac
~ Clean Agile: Back to Basics, Robert C. Martin
—
Does an Agile team need a coach? The short answer is “No.” The longer answer is “Sometimes.”
First, we need to
~ Clean Agile: Back to Basics, Robert C. Martin
—
Rather than fighting a futile battle with the middle managers, these teams put a layer on top of Agile that makes Agile look safe and conformant to the middle managers.
~ Clean Agile: Back to Basics, Robert C. Martin
—
TRANSFORMATION
~ Clean Agile: Back to Basics, Robert C. Martin
—
The value structures are just too different for the middle-management layer to accept
~ Clean Agile: Back to Basics, Robert C. Martin
—
risk-taking, rapid-feedback, intense, high-bandwidth communication between people that ignores barriers and command structures. They also focus on moving in straight and direct lines rather than mapping out and negotiating the landscape. These values are diametrically opposed to the values of large organizations who have invested heavily in middle-management structures
~ Clean Agile: Back to Basics, Robert C. Martin
!
—
adopted the outer business ring and have found themselves in the trap that Martin Fowler has labeled “Flaccid Scrum.”
~ Clean Agile: Back to Basics, Robert C. Martin
—
adopt the full Circle of Life, including, and most especially, the technical practices
~ Clean Agile: Back to Basics, Robert C. Martin
—
Simplicity is directness—directness in the code, and directness in communication and behavior
~ Clean Agile: Back to Basics, Robert C. Martin
—
you recognize a problem but silently allow it to pass to someone else, you are engaging in indirection
~ Clean Agile: Back to Basics, Robert C. Martin
—
provide massive education about the consequences of earlier decisions.
~ Clean Agile: Back to Basics, Robert C. Martin
—
The programmers, customers, testers, and managers want to sit near each other and interact with each other frequently, and not just in the context of meetings. Not just through emails, chat, and memos. Rather, they value face-to-face, informal, interpersonal conversation
~ Clean Agile: Back to Basics, Robert C. Martin
—
Kent Beck named the four values of Agile long ago. They are courage, communication, feedback, and simplicity.
~ Clean Agile: Back to Basics, Robert C. Martin
—
—or, in other words, a reasonable degree of risk-taking
~ Clean Agile: Back to Basics, Robert C. Martin
—
studies have indicated that the direct cost might be about 15%
~ Clean Agile: Back to Basics, Robert C. Martin
—
We pair so that we behave like a team. The members of a team do not work in isolation from each other
~ Clean Agile: Back to Basics, Robert C. Martin
—
Over the course of a week, each programmer will spend about half of their pairing time on their own tasks, recruiting the help of several others. The other half of their pairing time will be spent helping others with their tasks.
~ Clean Agile: Back to Basics, Robert C. Martin
—
Kent Beck’s rules of Simple Design are as follows:
Pass all the tests.
Reveal the intent.
Remove duplication.
Decrease elements.
~ Clean Agile: Back to Basics, Robert C. Martin
—
Red/Green/Refactor
~ Clean Agile: Back to Basics, Robert C. Martin
—
Sometimes the requirements change in such a way that you realize the current design and architecture of the system is suboptimal, and you need to make a significant change to the structure of the system. Such changes are made within the Red/Green/Refactor cycle. We do not create a project specifically to change the design. We do not reserve time in the schedule for such large refactorings. Instead, we migrate the code one small step at a time, while continuing to add new features during the normal Agile cycle
~ Clean Agile: Back to Basics, Robert C. Martin
!
—
Bigger Refactorings
~ Clean Agile: Back to Basics, Robert C. Martin
—
This makes it clear that refactoring is a continuous process, and not one that is performed on a scheduled basis. We don’t make a huge mess for days and days, and then try to clean it up. Rather, we make a very small mess, over a period of a minute or two, and then we clean up that small mess.
~ Clean Agile: Back to Basics, Robert C. Martin
—
The word Refactoring should never appear on a schedule. Refactoring is not the kind of activity that appears on a plan. We do not reserve time for refactoring. Refactoring is simply part of our minute-by-minute, hour-by-hour approach to writing software
~ Clean Agile: Back to Basics, Robert C. Martin
—
Courage
~ Clean Agile: Back to Basics, Robert C. Martin
—
the whole system will be decoupled.
~ Clean Agile: Back to Basics, Robert C. Martin
—
Don’t let it become a management metric.
~ Clean Agile: Back to Basics, Robert C. Martin
—
have created test suites that are so complete that they allow the deployment decision to be made.
~ Clean Agile: Back to Basics, Robert C. Martin
—
And since you have left holes in the test suite, you suspect everyone else has, too.
~ Clean Agile: Back to Basics, Robert C. Martin
—
Completeness
~ Clean Agile: Back to Basics, Robert C. Martin
—
Debugging
~ Clean Agile: Back to Basics, Robert C. Martin
—
Do not write any production code until you have first written a test that fails due to the lack of that code.
Do not write more of a test than is sufficient to fail—and failing to compile counts as a failure.
Do not write more production code than is sufficient to pass the currently failing test.
~ Clean Agile: Back to Basics, Robert C. Martin
—
Test-Driven Development is the corresponding practice for programmers. Every required behavior is entered twice: once as a test, and then again as production code that makes the test pass. The two entries are complementary, just as assets are complementary to liabilities and equities.
~ Clean Agile: Back to Basics, Robert C. Martin
—
This practice is so essential to the proper accounting of monies that it has become law in virtually all parts of the world
~ Clean Agile: Back to Basics, Robert C. Martin
—
Without TDD, Refactoring, Simple Design, and yes, even Pair Programming, Agile becomes an ineffective flaccid shell of what it was intended to be.
~ Clean Agile: Back to Basics, Robert C. Martin
—
gist is that only developers should speak at the standup. Managers and other folks may listen in but should not interject.
~ Clean Agile: Back to Basics, Robert C. Martin
—
A broken build is a Stop the Presses event.
~ Clean Agile: Back to Basics, Robert C. Martin
—
No one owns the code in an Agile project. The code is owned by the team as a whole.
~ Clean Agile: Back to Basics, Robert C. Martin
—
first hour of insufficient sleep costs me two hours of daytime wor
~ Clean Agile: Back to Basics, Robert C. Martin
—
Working overtime is not a way to show your dedication to your employer. What it shows is that you are a bad planner, that you agree to deadlines to which you shouldn’t agree, that you make promises you shouldn’t make, that you are a manipulable laborer and not a professional
~ Clean Agile: Back to Basics, Robert C. Martin
—
Managers may ask you to run faster than you should. You must not comply. It is your job to husband your resources to ensure that you endure to the end.
~ Clean Agile: Back to Basics, Robert C. Martin
—
software project is a marathon, not a sprint, nor a sequence of sprints. In order to win, you must pace yourself.
~ Clean Agile: Back to Basics, Robert C. Martin
—
On the seventh day, God rested. God later made it a commandment to rest on the seventh day. Apparently even God needs to run at a Sustainable Pace.
~ Clean Agile: Back to Basics, Robert C. Martin
—
Ubiquitous Language, which is the name that should have been given to the Metaphor
~ Clean Agile: Back to Basics, Robert C. Martin
—
metaphor can provide a vocabulary that allows the team to communicate efficiently. On the other hand, some metaphors are silly to the point of being offensive to the customer.
~ Clean Agile: Back to Basics, Robert C. Martin
—
Ownership, and Continuous Integration.
~ Clean Agile: Back to Basics, Robert C. Martin
—
The practices we will discuss are Metaphor, Sustainable Pace, Collective
~ Clean Agile: Back to Basics, Robert C. Martin
—
team composed of people who work almost entirely from home will never work as well as a team that is co-located.
~ Clean Agile: Back to Basics, Robert C. Martin
—
Can an Agile team work this way? I’ve heard that it is possible. I’ve never seen it done successfully. Perhaps you have.
~ Clean Agile: Back to Basics, Robert C. Martin
Distributed
—
Whole Team in order to make it clear that a development team was not simply a customer/programmer dyad. Instead, a development team is composed of many roles including managers, testers, technical writers, etc.
~ Clean Agile: Back to Basics, Robert C. Martin
—
In Scrum, the customer is called the Product Owner
~ Clean Agile: Back to Basics, Robert C. Martin
—
Moving QA to the beginning and automating the tests solves another huge problem. When QA operates manually at the end, they are the bottleneck.
~ Clean Agile: Back to Basics, Robert C. Martin
—
QA’s role is to write the unhappy paths. There are a lot more of them than there are of the former. QA folks are hired for their ability to figure out how to break the system
~ Clean Agile: Back to Basics, Robert C. Martin
—
So what is a specification? A specification is, by its very nature, a test
~ Clean Agile: Back to Basics, Robert C. Martin
—
To do this, the organization will need to break the coupling between release and deployment
~ Clean Agile: Back to Basics, Robert C. Martin
—
velocity chart shows a consistent negative slope, then the most likely cause is the quality of the code.
~ Clean Agile: Back to Basics, Robert C. Martin
—
The lesson here is that velocity is a measurement not an objective. It’s control theory 101: don’t put pressure on the thing you are measuring.
~ Clean Agile: Back to Basics, Robert C. Martin
!
—
we don’t want to end the iteration with two half-done stories when we could have sacrificed one story in order to get the other one done.
~ Clean Agile: Back to Basics, Robert C. Martin
—
The definition of “done” is this: acceptance tests pass.
~ Clean Agile: Back to Basics, Robert C. Martin
—
you write a new story called Estimate Print PDF.
~ Clean Agile: Back to Basics, Robert C. Martin
—
cleanup is never a story.
~ Clean Agile: Back to Basics, Robert C. Martin
—
The story must have clear and quantifiable value to the business.
~ Clean Agile: Back to Basics, Robert C. Martin
—
The project is over when there are no more stories in the deck worth implementing
~ Clean Agile: Back to Basics, Robert C. Martin
—
Think of the iteration cycle as a pump that pumps the ROI out of that deck.
~ Clean Agile: Back to Basics, Robert C. Martin
—
Iterations do not fail. The purpose of an iteration is to generate data for managers.
~ Clean Agile: Back to Basics, Robert C. Martin
—
the completed stories only add up to 10 points. With only a week left, it’s not likely that they are going to get 20 more points done. So the stakeholders remove enough stories from the plan to reduce the remaining points to 10.
~ Clean Agile: Back to Basics, Robert C. Martin
—
velocity is not a commitment. The team is not making a promise to get 30 points done during the iteration. Th
~ Clean Agile: Back to Basics, Robert C. Martin
—
the Law of Large Numbers
~ Clean Agile: Back to Basics, Robert C. Martin
—
These numbers are vague, fuzzy, imprecise things that do not relate directly to real time.
~ Clean Agile: Back to Basics, Robert C. Martin
—
This rejection of detail is a discipline.
~ Clean Agile: Back to Basics, Robert C. Martin
—
story point technique deals with accuracy and precision by using a very tight feedback loop that iteratively calibra
~ Clean Agile: Back to Basics, Robert C. Martin
—
(PERT).1
~ Clean Agile: Back to Basics, Robert C. Martin
—
The imprecision of an accurate estimate denotes a range of time within which the estimated event will almost certainly occur.
~ Clean Agile: Back to Basics, Robert C. Martin
Precision and accuracy
—
The more imprecision, the less time the estimate will take
~ Clean Agile: Back to Basics, Robert C. Martin
—
Therefore an estimate is, by definition, imprecise.
~ Clean Agile: Back to Basics, Robert C. Martin
—
Planning, Small Releases, Acceptance Tests, and Whole Team
~ Clean Agile: Back to Basics, Robert C. Martin
—
Agile is not a process. Agile is not a fad. Agile is not merely a set of rules. Rather, Agile is a set of rights, expectations, and disciplines of the kind that form the basis of an ethical profession.
~ Clean Agile: Back to Basics, Robert C. Martin
—
Developers have the right to make and update their own estimates.
~ Clean Agile: Back to Basics, Robert C. Martin
—
Developers have the right to do good work. The business has no right to tell developers to cut corners or do low-quality work
~ Clean Agile: Back to Basics, Robert C. Martin
—
that the schedule is in jeopardy
~ Clean Agile: Back to Basics, Robert C. Martin
—
customers do not have the right to demand conformance to the schedule. Their right is limited to managing the schedule by changing the scope.
~ Clean Agile: Back to Basics, Robert C. Martin
—
probability-based plan becaus
~ Clean Agile: Back to Basics, Robert C. Martin
—
Many people have claimed that up-front planning is not part of Agile development. The very first customer right belies that claim.
~ Clean Agile: Back to Basics, Robert C. Martin
—
THE BILL OF RIGHTS
~ Clean Agile: Back to Basics, Robert C. Martin
—
I expect you to keep learnin
~ Clean Agile: Back to Basics, Robert C. Martin
—
I expect that, no matter how much schedule pressure you feel, no matter how many managers are demanding results, you will say “no” when the answer really is “no.”
~ Clean Agile: Back to Basics, Robert C. Martin
—
So I expect you to provide estimates based on what you do and don’t know.
~ Clean Agile: Back to Basics, Robert C. Martin
—
I expect that the members of each software team will cover for each other
~ Clean Agile: Back to Basics, Robert C. Martin
—
manual tests are expensive and so are always a target for reduction.
However, there is a mo
~ Clean Agile: Back to Basics, Robert C. Martin
—
Customers, users, and managers expect fearless competence. They expect that if you see something wrong or dirty, you will fix and clean it.
~ Clean Agile: Back to Basics, Robert C. Martin
—
The design and architecture of a software system should get better with time.
~ Clean Agile: Back to Basics, Robert C. Martin
—
a change to the requirements breaks your architecture, then your architecture sucks.
~ Clean Agile: Back to Basics, Robert C. Martin
—
they expect that a feature similar to one that took two weeks at the start of a project will take two weeks a year later. They expect productivity to be stable over time.
~ Clean Agile: Back to Basics, Robert C. Martin
—
From the point of view of the business and the customers, continuous technical readiness is simply expected
~ Clean Agile: Back to Basics, Robert C. Martin
—
If the system is technically ready to deploy at the end of every iteration, then deployment is a business decision, not a technical decision
~ Clean Agile: Back to Basics, Robert C. Martin
—
It is perfectly reasonable for our managers, customers, and users to expect that we will provide systems for them that are high in quality and low in defect
~ Clean Agile: Back to Basics, Robert C. Martin
—
Meeting these expectations is one of the primary goals of Agile development
~ Clean Agile: Back to Basics, Robert C. Martin
—
hoped then, as I hope today, that the disciplines of Agile software development would be our first step toward turning computer programming into a true and honorable profession.
~ Clean Agile: Back to Basics, Robert C. Martin
—
virtually nothing of significance can be done without interacting with a software system
~ Clean Agile: Back to Basics, Robert C. Martin
—
We in this industry sorely need to increase our professionalism
~ Clean Agile: Back to Basics, Robert C. Martin
—
professionalism and the reasonable expectations of our customers.
~ Clean Agile: Back to Basics, Robert C. Martin
—
Agile is a process wherein a project is subdivided into iterations. The output of each iteration is measured and used to continuously evaluate the schedule. Features are implemented in the order of business value so that the most valuable things are implemented first. Quality is kept as high as possible. The schedule is primarily managed by manipulating scope.
That’s Agile.
~ Clean Agile: Back to Basics, Robert C. Martin
Definition of agile
—
at the beginning of each iteration, we are going to ask the stakeholders which features to implement next
~ Clean Agile: Back to Basics, Robert C. Martin
—
although the stakeholders have the moral high ground in this argument, the programmers have the data. And in any rational organization, the data will win.
~ Clean Agile: Back to Basics, Robert C. Martin
—
Producing crap does not make you go faster, it makes you go slower. This is the lesson you learn after you’ve been a programmer for 20 or 30 years. There is no such thing as quick and dirty. Anything dirty is slow.
~ Clean Agile: Back to Basics, Robert C. Martin
—
let’s assume that staff can’t be increased.
~ Clean Agile: Back to Basics, Robert C. Martin
—
Managers do this by making changes to the scope, the schedule, the staff, and the quality.
~ Clean Agile: Back to Basics, Robert C. Martin
—
Iron Cross of project management: good, fast, cheap, done.
~ Clean Agile: Back to Basics, Robert C. Martin
—
data to drive the project to the best possible outcome.
~ Clean Agile: Back to Basics, Robert C. Martin
—
Agile produces lots of data. Managers use that
~ Clean Agile: Back to Basics, Robert C. Martin
—
Some folks think that Agile is about going fast. It’s not. It’s never been about going fast. Agile is about knowing, as early as possible, just how screwed we are
~ Clean Agile: Back to Basics, Robert C. Martin
—
And Agile is a way to provide an early and continuous dose of cold, hard reality as a replacement for hope.
~ Clean Agile: Back to Basics, Robert C. Martin
—
Hope is a very bad way to manage a software project
~ Clean Agile: Back to Basics, Robert C. Martin
—
new date is based upon real data, so it should not be ignored. It also can’t be taken too seriously yet
~ Clean Agile: Back to Basics, Robert C. Martin
—
. In an Agile project, we are always analyzing and designing.
~ Clean Agile: Back to Basics, Robert C. Martin
—
We’re going to do the thing that didn’t work, and do a lot more of it.
~ Clean Agile: Back to Basics, Robert C. Martin
—
If only we could just say we were done with implementation. But we can’t, because the thing about implementation is that is actually has to be done. Analysis and design are not binary deliverables
~ Clean Agile: Back to Basics, Robert C. Martin
—
we just sort of hack these changes into the design
~ Clean Agile: Back to Basics, Robert C. Martin
—
It’s September 1, and we are done with the design.
~ Clean Agile: Back to Basics, Robert C. Martin
—
The best definition of analysis is: It’s what analysts do
~ Clean Agile: Back to Basics, Robert C. Martin
—
We’ve got a new project,” the big boss says. “It’s got to be done November first. We don’t have any requirements yet. We’ll get them to you in the next couple of weeks.”
~ Clean Agile: Back to Basics, Robert C. Martin
—
Without data, the project cannot be managed.19
~ Clean Agile: Back to Basics, Robert C. Martin
—
not actually the charts that matter. What matters is the data.
~ Clean Agile: Back to Basics, Robert C. Martin
—
Agile provides data
~ Clean Agile: Back to Basics, Robert C. Martin
—
Pick any three you like. You can’t have the fourth. You can have a project that is good, fast, and cheap, but it won’t get done. You can have a project that is done, cheap, and fast, but it won’t be any good
~ Clean Agile: Back to Basics, Robert C. Martin
—
Iron Cross of project management. Good, fast, cheap, done
~ Clean Agile: Back to Basics, Robert C. Martin
—
Hope and prayer are popular among those managers who believe that there are gods who govern the fate of software projects. Those who don’t have such faith often fall back on motivational techniques such as enforcing dates with whips, chains, boiling oil, and pictures of people climbing rocks and seagulls flying over the ocean.
~ Clean Agile: Back to Basics, Robert C. Martin
—
the time was ripe, and that if the 17 of us hadn’t met on that mountain in Utah, some other group would have
~ Clean Agile: Back to Basics, Robert C. Martin
—
This is the central idea of the Agile Manifesto, and no one seems to remember clearly who first put it on the board. I seem to recall that it was Ward Cunningham. But Ward believes it was Martin Fowler.
~ Clean Agile: Back to Basics, Robert C. Martin
—
that was my sole contribution to the meeting
~ Clean Agile: Back to Basics, Robert C. Martin
—
Martin and I met in the fall of 2000 at a coffee shop near the ThoughtWorks office where he worked. I described to him my idea to get all the competing lightweight process advocates together to form a manifesto of unity.
~ Clean Agile: Back to Basics, Robert C. Martin
—
The more I read about XP, the more fascinated I was.
~ Clean Agile: Back to Basics, Robert C. Martin
—
We simply could not conceive of a different way to work
~ Clean Agile: Back to Basics, Robert C. Martin
—
It was inconceivable6 that the problem lay in that strategy. The problem had to lie with us. Somehow, we were doing it wrong.
~ Clean Agile: Back to Basics, Robert C. Martin
—
increased changeability for APIs doesn’t come for free.
~ Clean Agile: Back to Basics, Robert C. Martin
—
it’s usually a bad idea to use the same model for your interface, code, and data
~ Clean Agile: Back to Basics, Robert C. Martin
—
The best API products have interface models that are consistent across the entire surface.
~ Clean Agile: Back to Basics, Robert C. Martin
DDD
—
API change management isn’t easy, but it is necessary. It’s also liberating. If you weren’t allowed to change your deployed API, your initial release would be much more difficult.
~ Clean Agile: Back to Basics, Robert C. Martin
—
Using design thinking to make sure you know your audience and understand their problems
Focusing on customer onboarding as a way to quickly show customers how they can succeed with your product
Investing in providing a developer experience for managing the post-release lifecycle of your product and gaining insights for future modifications
~ Clean Agile: Back to Basics, Robert C. Martin
—
viable business strategy for your API product. It doesn’t make sense to invest a lot of time and money in an API product that has little to no return value.
~ Clean Agile: Back to Basics, Robert C. Martin
—
Design thinking in order to make sure you know your audience and understand their problems
Customer onboarding as a way to quickly show customers how they can succeed with your product
Developer experience for managing the post-release lifecycle of your product and to gain insights for future modifications.
~ Clean Agile: Back to Basics, Robert C. Martin
—
Keep in mind that governance always has a cost. Constraints need to be communicated, enforced, and maintained. Rewards that shape decision-making behavior need to be kept valuable and attractive to your audience. Standards, policies, and processes need to be documented, taught, and kept up to date.
~ Clean Agile: Back to Basics, Robert C. Martin