The Art of Agile Development: Pragmatic Guide to Agile Software Development
Rate it:
21%
Flag icon
If people won’t take responsibility, perhaps you’re being too controlling.
21%
Flag icon
weekly status meeting,
21%
Flag icon
Unfortunately, this response ignores the reality of Murphy’s Law. If something can go wrong, it will. People are, well, people. Everybody makes mistakes. I certainly do. Aggressively laying blame might cause people to hide their mistakes, or to try to pin them on others, but this dysfunctional behavior won’t actually prevent mistakes.
21%
Flag icon
Rather than blaming people, I blame the process. What is it about the way we work that allowed this mistake to happen?
22%
Flag icon
I like to chip away at the biggest problem while simultaneously picking off low-hanging fruit.
22%
Flag icon
Before changing the process, ask yourself whether the problem is common enough to warrant the overhead.
22%
Flag icon
Keep in mind that lectures and punitive approaches are usually ineffective. It’s better to make it difficult for people to make mistakes than to expect them always to do the right thing.
22%
Flag icon
How to Conduct an Iteration Retrospective
Ignacio Raguet
para esfera
22%
Flag icon
Mute mapping
23%
Flag icon
Sometimes I like to imagine software development as a pulsing web of light, with blips of information flowing along lines from far-flung points. The information races toward the development team, which is a brilliant, complex tangle of lines, then funnels into a glowing core of software too bright to look at.
24%
Flag icon
Trust is essential for the team to perform this well. You need to trust that taking time to help others won’t make you look unproductive. You need to trust that you’ll be treated with respect when you ask for help or disagree with someone.
24%
Flag icon
Don’t wait for them to realize how your work can help them. Show them.
24%
Flag icon
Show Some Hustle
25%
Flag icon
Even scrupulously honest teams can run into this problem. In a desire to look good, teams sometimes sign up for more stories than they can implement well. They get the work done, but they take shortcuts and don’t do enough design and refactoring. The design suffers, defects creep in, and the team finds itself suddenly going much slower while struggling to improve code quality.
26%
Flag icon
“Forming, Storming, Norming, and Performing.”
26%
Flag icon
“Past studies have indicated that less than 30 percent of a programmer’s time is spent on traditional programming tasks and less than 20 percent of the time is spent on coding. The rest of the time is spent on meetings, problem resolution with the team, resolving issues with customers, product testing, etc.”
28%
Flag icon
Be careful about sitting together if programmers don’t pair program. Solitary programming requires a quiet workspace. Pair programming, on the other hand, enables programmers to ignore the noise.
28%
Flag icon
Outsourced Custom Development
29%
Flag icon
This is more than learning the domain to write the software; this is reflecting in code how the users of the software think and speak about their work. By encoding your understanding of the domain, you refine your knowledge and — due to code’s uncompromising need for precision — expose gaps in your knowledge that would otherwise result in bugs.
29%
Flag icon
This will probably require a conversation to resolve any conflicts. Embrace that!
29%
Flag icon
Keep out programmer jargon — you can help domain experts refine their understanding of complicated corner cases, but don’t replace their language with your own.
30%
Flag icon
Combine brevity with an unhurried calm.
31%
Flag icon
Don’t get me wrong: a consistent formatting standard is good. If you can agree on one, do! However, when you’re putting together your coding standard, don’t fall into the trap of arguing about formatting. There are more important issues.
31%
Flag icon
Coding standards are, in many ways, an aesthetic choice: it doesn’t really matter what the standard is, as long as it’s consistent and thoughtful. One of the marks of a professional is the willingness to put aside personal aesthetics for a team aesthetic.
31%
Flag icon
Dealing with Disagreement
31%
Flag icon
No coding standard can substitute for professional judgment. Try not to get too upset when you see people deviating from the standard.
31%
Flag icon
ask yourself whether the coding standard was really a team effort.
32%
Flag icon
Programmers need discipline to keep the code clean so they can continue to make progress. Customers need discipline to fully understand and communicate one set of features before starting another.
32%
Flag icon
When schedule problems occur (they always do),
33%
Flag icon
The problem may be as simple as trying to do too much work.
36%
Flag icon
If a story isn’t “done done,” don’t count it toward your velocity.
36%
Flag icon
Next, add extra bugs by mixing in concurrent programming.
36%
Flag icon
They supplied the Java multithreading library with bugs for years!
36%
Flag icon
Take your ingredients — C, real-time embedded systems, multitasking, and don’t forget the novices — add a little assembly for seasoning, shake well, and bake for three years. (I do love me a bug pie.)
41%
Flag icon
What configuration issue springs up to waste a few hours every week?
43%
Flag icon
truck number.
Ignacio Raguet
Necesitamos que Marian T. haga programación en pareja
43%
Flag icon
You don’t need to know exactly what’s happening in every line of code. In a well-designed system, all you need to know is what each package (or namespace) is responsible for.
47%
Flag icon
Task-switching has a substantial cost: “[T]he minimum penalty is 15 percent... Fragmented knowledge workers may look busy, but a lot of their busyness is just thrashing” [DeMarco 2002]
47%
Flag icon
How to Release Frequently
47%
Flag icon
Releasing frequently doesn’t mean setting aggressive deadlines. In fact, aggressive deadlines extend schedules rather than reducing them [McConnell 1996] (p. 220).
48%
Flag icon
Don’t worry too much if you have trouble making your stories perfectly releasable. It takes practice. Releasable stories give you more flexibility in planning, but a few story clumps in your plan won’t hurt much. With experience, you’ll learn to make your plans less lumpy.
48%
Flag icon
Some people try to fix the release date and features. This can only end in tears; given the uncertainty and risk of software development, making this work requires adding a huge amount of padding to your schedule, sacrificing quality, working disastrous amounts of overtime, or all of the above.
48%
Flag icon
“Done done” applies to release planning as well as to stories. Just as you shouldn’t postpone tasks until the end of an iteration, don’t postpone stories until the end of a release.
48%
Flag icon
In practice, this means that the further away a particular event is, the less detail your release plan needs to contain.
51%
Flag icon
in a “Risky” approach, you have a 10 percent chance of finishing according to your estimated schedule. Doubling your estimates gives you a 50 percent chance of on-time completion, and to be virtually certain of meeting your schedule, you have to quadruple your estimates.
52%
Flag icon
Many organizations have acclimated to slipping delivery dates. Managers in these organizations intuitively apply an informal risk multiplier in their head when they hear a date. In this sort of organization, applying a large risk multiplier might make the schedule seem ridiculously long.
52%
Flag icon
Most importantly, iterations counter a common risk in software projects: the tendency for work to take longer than expected.
52%
Flag icon
The Iteration Schedule
Ignacio Raguet
La agenda de la iteración
52%
Flag icon
I prefer iterations that start on Wednesday morning. This allows people to leave early on Friday or take Monday off without missing important events. It also allows the team to conduct releases before the weekend.
52%
Flag icon
How to Plan an Iteration