The Art of Agile Development: Pragmatic Guide to Agile Software Development
Rate it:
53%
Flag icon
(This translates into about two to six hours of estimated effort.)
53%
Flag icon
Estimate the tasks in ideal hours. How long would the task take if you had perfect focus on the task, suffered no interruptions, and could have the help of anybody on the team? Estimate in person-hours as well: a task that takes a pair two hours is a four-hour estimate.
54%
Flag icon
Dealing with Long Planning Sessions
Ignacio Raguet
Planificaciones largas
54%
Flag icon
“With true timeboxing, the software is either accepted or thrown away at the timebox deadline. That makes it clear that the quality level must be acceptable at all times. The success of timeboxing depends on being able to meet tight schedules by limiting the product’s scope, not its quality”
55%
Flag icon
Rather than doing the bare minimum necessary to keep your head above water, be generous in refactoring and cleaning up technical debt in existing code.
56%
Flag icon
I notice technical debt most when I navigate during pair programming. When a problem slows us down and I find myself feeling irritated, that inspires me to suggest that we fix it.
56%
Flag icon
A good rule of thumb is to spend 10 percent of the iteration on technical debt.
56%
Flag icon
Research Time
56%
Flag icon
Dedicated research time is an excellent way to encourage learning and add additional slack into your iterations.
56%
Flag icon
Reducing the Need for Slack In my experience, there are two big sources of randomness on XP teams: customer unavailability and technical debt. Both lead to an unpredictable environment, make estimating difficult, and require you to have more slack in order to meet your commitments.
57%
Flag icon
never incur technical debt in the name of slack.
57%
Flag icon
Everything that stakeholders want the team to produce should have a story,
Ignacio Raguet
¿qué es una story?
57%
Flag icon
Although stories are short, they still have two important characteristics:
Ignacio Raguet
Stories
59%
Flag icon
Make your estimates in terms of ideal engineering days (often called story points), which are the number of days a task would take if you focused on it entirely and experienced no interruptions.
59%
Flag icon
Remember that velocity is for predicting schedules, not judging productivity.
59%
Flag icon
How long will the story take if you experience no interruptions, can pair with anyone else on the team, and everything goes well?
59%
Flag icon
An expert is just a beginner with lots of experience.
60%
Flag icon
To help address these issues during the estimation phase, ask leading questions. For example: Do we need a customer huddle on this issue? Should we mark this “??” and come back to it later? Should we make a spike for this story? Do we have enough information to estimate this story? Will that information change your estimate? We’ve spent five minutes on this story. Should we come back to it later?
Ignacio Raguet
Preguntas para estimar
61%
Flag icon
How do we deal with technical dependencies in our stories?
Ignacio Raguet
Dependencias entre stories
61%
Flag icon
Imagine you’ve given up the world of software to become a master chef. After years of study and practice, you’ve reached the top of your profession. One day you receive the ultimate invitation: to cook for 500 attendees at a $10,000-a-plate fundraiser. A limo takes you from your chartered plane to the venue, and you and your cooks walk confidently into a kitchen... only to stop in shock. The kitchen is a mess: rotting food, unwashed cooking implements, standing water in the sinks. It’s the morning of the event. You have 12 hours. What do you do? You roll up your sleeves and start cleaning. As ...more
62%
Flag icon
Figure out what a story means to you and how you’ll know it’s finished slightly before you ask programmers to estimate it.
65%
Flag icon
You can start using TDD today. It’s one of those things that takes moments to learn and a lifetime to master.
66%
Flag icon
Programmers new to TDD are often surprised at how small each increment can be. Although you might think that only beginners need to work in small steps, my experience is the reverse: the more TDD experience you have, the smaller steps you take and the faster you go.
Ignacio Raguet
La clave para TDD
67%
Flag icon
The RuntimeException was worse; it’s better to throw a custom exception. In this case, though, the Java convention is to return null rather than throw an exception. I already had a note that I should test the case where name isn’t found; I revised it to say that the correct behavior was to return null.
Ignacio Raguet
Qué? The java convention es devolver null?
68%
Flag icon
Speed Matters
71%
Flag icon
It’s possible to spend too much time refactoring. You don’t need to refactor code that’s unrelated to your present work. Similarly, balance your need to deliver stories with the need to have good code. As long as the code is better than it was when you started, you’re doing enough. In particular, if you think the code could be better, but you’re not sure how to improve it, it’s OK to leave it for someone else to improve later.
74%
Flag icon
are there similarities between the code you’re implementing and other code in the system? Are class responsibilities clearly defined and concepts clearly represented? How well does this class interact with other classes?
74%
Flag icon
Note Avoid creating TODO comments or story/task cards for postponed refactorings. If the problem is common enough for you or others to notice it again, it will get fixed eventually. If not, then it probably isn’t worth fixing. There are always more opportunities to refactor than time to do it all; TODOs or refactoring cards add undue stress to the team without adding much value.
Ignacio Raguet
Tremenda nota!!
74%
Flag icon
if you eliminate duplication and embrace simplicity.
76%
Flag icon
For stories that you can’t estimate accurately, an alternative to scheduling a spike story is to provide a high estimate. This is risky because some stories will take longer than your highest estimate, and some may not be possible at all.
Ignacio Raguet
Historias que aún no ser pueden estimar
80%
Flag icon
Improve the Process, Rely on People, Eliminate Waste, Deliver Value, and Seek Technical Excellence.
80%
Flag icon
Simplicity To discard the things we want but don’t actually need
81%
Flag icon
One of the seemingly inviolate rules of XP is that you always keep code quality high.
81%
Flag icon
Almost every challenge in building great software is, in some way, a people problem.
81%
Flag icon
Let the Right People Do the Right Things
81%
Flag icon
taking the interrupter to the board, move their current in-progress card back to the todo area of the cork board. Only then would they go and solve the new problem.
83%
Flag icon
If you could predict to the hour how long your project would take, know what risks would and wouldn’t happen, and completely eliminate all surprises, you wouldn’t need agility — you would succeed with any development method.
84%
Flag icon
It’s doing what the customer needs when the customer needs it.
85%
Flag icon
This clever name for a well-known principle comes from Dave Thomas and Andy Hunt. Don’t Repeat Yourself is more than just avoiding cut-and-paste coding. It’s having one cohesive location and canonical representation for every concept in the final design — anything from “the way we interface with a database” to “the business rule for dealing with weekends and holidays.”
86%
Flag icon
Delaying optimization can be scary. It feels unprofessional to let obviously slow designs slide by. Still, it’s usually the right choice.
86%
Flag icon
Despite our best intentions, technical debt creeps into our systems. A lot of it — perhaps most of it — is in our designs. This bit rot slowly saps the quality of even the best designs. Eliminating technical debt through continuous code maintenance and refactoring has only recently been recognized as a design principle, and some people still question it. It’s no less essential for the controversy. In fact, it may be the most important of all the design principles. By focusing on removing technical debt, a team can overcome any number of poor design decisions.
1 3 Next »