When helping companies adopt Agile, the first instinct is to start wiring in tools and processes. Ironically, some mentors tend to teach a highly prescriptive form of Agile. As an llustration, reflecting back on Kent Beck’s Extreme Programming, critics complained that it was prescriptive, inflexible, and full of “must do this”, “must never do that”. Having met and learned from Kent Beck years ago when I was a Smalltalk developer, I know that prescribing a process was far from the spirit of what he was trying to do. Perhaps he was pushing an extremist view, expecting rational people to bounce back a bit.
Changing the behavior of individuals, teams, and organizations is a tough row to hoe. At its core, the Agile Manifesto conveys principles that rational people would have a hard time disputing. Look at the picture posted with this article. The obvious elements of the picture are the four colored triangles. A Gestaltist perspective indicates that the cross can be seen too, even though it isn’t emphasized.
Similarly, the core elements of Agile: Collaboration, behaviors, teams, accountability, progress transparency, focus, efficiency, etc., are all concepts that few would dispute. So the real challenge for an Agile mentor is not to teach what these concepts are, rather it’s to help remove organizational and sociological blocks that prevent teams from employing them.
Oh the Irony!
My previous post was about brevity in communication by choosing models over narrative requirements. That's not necessarily an endorsement of writing/drawing over talking.
Most writing is a unidirectional activity, with varying latency. Responses to IM messages can take seconds or minutes, responses to emails can take minutes or hours, and responses to published documentation can take hours to days...and what is the meaning of no response at all? Was my brilliant writing not seen? Ignored? Acknowledged and put aside? Conversations can unlock the mystery of what others think, and more important, collaboration allows good ideas to blossom into great ideas.
I ran across a well written post that emphasizes this point: http://edgehopper.com/did-we-forget-how-to-talk-to-each-other/
Now having said (written) all that, an intuitive colleague at Improving, Jef, pointed out the sheer irony of commenting on this very subject via blog. Touche'
Most writing is a unidirectional activity, with varying latency. Responses to IM messages can take seconds or minutes, responses to emails can take minutes or hours, and responses to published documentation can take hours to days...and what is the meaning of no response at all? Was my brilliant writing not seen? Ignored? Acknowledged and put aside? Conversations can unlock the mystery of what others think, and more important, collaboration allows good ideas to blossom into great ideas.
I ran across a well written post that emphasizes this point: http://edgehopper.com/did-we-forget-how-to-talk-to-each-other/
Now having said (written) all that, an intuitive colleague at Improving, Jef, pointed out the sheer irony of commenting on this very subject via blog. Touche'
Comprehensive Brevity
When requirements analysts are thorough, those who read and use the requirements can easily get lost in the muck and mire of the details. I have found that diagrams can add much more specificity to requirements than lengthy narratives describing business rules. This diagram depicts a small excerpt from a requirements model of a financial system.
This tiny drawing eliminates the need to write out all of the following business rules, because they are all clearly shown in the model:
This tiny drawing eliminates the need to write out all of the following business rules, because they are all clearly shown in the model:
- Every account must be associated to one customer.
- An account cannot be associated to more than one customer.
- An account cannot exist if it does not have a corresponding customer.
- A customer must have at least one account.
- A customer may have more than one account.
- An account must be either an individual account or a corporate account.
Some restrict the use of drawings like this for design, others argue that domain models are old school. I have had great success using this approach for describing business rules. The economy of words eliminates ambiguity, is much more thorough, and can be easier for a designer/developer to use when designing a solution.
Yin and Yang Go to Work
Many software projects seem to me to have inherent opposing forces present at all times. Analysts wrestle with business folks about what’s needed, developers wrestle with analysts about too much / too little documentation, QA folks wrestle with developers about the sufficiency of unit testing, management wrestles with development about cost and schedule, and on and on.
Many of us are naturally repelled by conflict. We try to prevent it from happening, and when it does happen, we try to get away from it as soon as possible. (With the sole exception of people from New York.) On a software project, the easiest way to avoid conflict is to burrow in a cave and do work. Unfortunately this is totally contradictory to the collaborative best practices that make Agile projects work, and rather than avoid conflict, it just defers it.
Agile projects tend to expose conflict early and attack it head on. Since this is unnatural and uncomfortable for many people, it can slow the adoption of Agile practices. Embracing Yin-Yang and cultivating opposing forces on a project into an efficient process with quality results is the very first hill to climb when starting your first Agile project.
Many of us are naturally repelled by conflict. We try to prevent it from happening, and when it does happen, we try to get away from it as soon as possible. (With the sole exception of people from New York.) On a software project, the easiest way to avoid conflict is to burrow in a cave and do work. Unfortunately this is totally contradictory to the collaborative best practices that make Agile projects work, and rather than avoid conflict, it just defers it.
Agile projects tend to expose conflict early and attack it head on. Since this is unnatural and uncomfortable for many people, it can slow the adoption of Agile practices. Embracing Yin-Yang and cultivating opposing forces on a project into an efficient process with quality results is the very first hill to climb when starting your first Agile project.
Avoid Doh! with "Intentional Delay"
C'mon, admit it. At some point you have experienced email regret - you sent an email and then slapped your head and said, "Oh no!" Disciplined emailers proof before they send, and one person once told me he counts to 10 before sending emotionally charged emails. Instead, consider building in a preventive measure - set up intentional delay.
If you follow these instructions (for Outlook users) every message you send will remain unsent in the Outbox for one minute before being sent. If you have second thoughts, just go to the Outbox and delete the unsent message, sending the embarrassing or career ending email straight to the bit bucket.
To set this up in Outlook,
- Click the Tools, Rules & Alerts menu option.
- Click Start from a blank rule
- Tick Check message after sending, and click Next
- Choose on this machine only, and click Next
- Tick Defer delivery by a number of minutes.
- Click a number of and enter 1.
- Click ok, then click Finish.
The one minute delay is a small price to pay to avoid the burden of "What was I thinking!"
Are You Kidding Me? Pres O' and CollegeFootball
I'm pretty guarded when it comes to sharing my political views, but I heard a news story this morning that caught my attention. President-elect O' is using his new pulpit to profess the need for a college football playoff system to replace the BCS (details here.) You may be suprised to know that his opinions and comments aren't what irk me. He is a (albeit powerful) citizen stating his opinions, which we are all entitled to do. I trust our governmental system to prevent this from becoming a distraction that mustn't consume time of those we have hired to run our country.
What irks me were the reactions of citizens I heard on NPR. Individuals commenting to the effect of "It's about time we elected a President to deal with this important issue." C'mon, gimme a break. Those people who believe that our newly elected President is going to change everything they don't like about their lives are in for a rude awakening. When I was listening to these interviews, I honestly thought I was hearing a parody (The Onion style.) Alas no, it was real.
So maybe I should just jump on the bandwagon. Maybe there's now hope that Pres O' can get those writers of Lost to start giving us some explanations instead of twisting in more puzzles.
Best Free Imaging Software Program - Ever!
Ok, maybe I'm overstating - "best" is subjective, and everyone's software needs are different. If you work with graphics, images, or photos, you probably have the need to do editing or touch up work. At work, I frequently edit graphics for use in presentations. At home, I have been scanning hundreds of old photos that need to be cleaned up.
I used to use Photoshop Elements, which was great, but the version I bought stopped working when I upgraded to Vista. I have also had the chance to play with the full version of Photoshop in the past - it's a wonderful tool, but I can't spend the hundreds of dollars it costs.
Picasa is a terrific tool for very light editing - cropping, rotating, color correction, and red-eye and blemish removal. However, it lacks comprehensive color and light correction tools, and has limited support for filters. It also lacks my favorite Photoshop tool, the clone stamp.
Then I found the best Photoshop'ish tool available, and it's completely free of charge - It's called GIMP, which stands for the "GNU Image Manipulation Program". It has all the features I used in Photoshop, and is completely spyware free. You can find it here.
Even better, if you need to take GIMP with you to use at work or on somebody else's computer, it's also available in a portable version. Just install it on your thumb drive and run it from there without having to install it on the PC. The portable version is available here.
The Top 10 Things I Hate About Agile Projects
10. The Product Owner keeps dropping by to see what we’re doing.
9. I have to prove that I got work done every single day.
8. I have to work with other people, constantly.
7. I am expected to demonstrate imperfect, unfinished software.
6. Senior management looks at our burn-down chart every day.
5. Developers keep bugging me with questions.
4. There’s hardly any down time.
3. Everybody else gets an opinion about my task estimates.
2. I am expected to work on tasks that aren’t in my job description.
1. My project could end before the target date!
What's on your top ten?
9. I have to prove that I got work done every single day.
8. I have to work with other people, constantly.
7. I am expected to demonstrate imperfect, unfinished software.
6. Senior management looks at our burn-down chart every day.
5. Developers keep bugging me with questions.
4. There’s hardly any down time.
3. Everybody else gets an opinion about my task estimates.
2. I am expected to work on tasks that aren’t in my job description.
1. My project could end before the target date!
What's on your top ten?
So You Want to Build a Better Mousetrap?
The first mousetrap was invented over 100 years ago. To this day, many have pursued the perfect mousetrap. Ralph Waldo Emerson added fuel to the fire when he said, “Build a better mousetrap and the world will beat a path to your door.” So what is “better”, anyway?
The de facto mousetrap choice is the “two for a dollar” Victor snap trap (pictured.) It’s easy to use and has a nearly 90% success rate in achieving its intended goal. So if that’s the case, why have over 4400 mousetrap patents been issued by the US Patent Office? What are we looking for in a mousetrap anyway?
In surveying the market, I found everything from mouse electric chairs to mouse gas chambers . (The latter actually sends you a text message when the deed is done.)
The de facto mousetrap choice is the “two for a dollar” Victor snap trap (pictured.) It’s easy to use and has a nearly 90% success rate in achieving its intended goal. So if that’s the case, why have over 4400 mousetrap patents been issued by the US Patent Office? What are we looking for in a mousetrap anyway?
In surveying the market, I found everything from mouse electric chairs to mouse gas chambers . (The latter actually sends you a text message when the deed is done.)
If building a better mousetrap were a software development project, I’d be fascinated to learn what the world really wants in a mousetrap. My guess is that some want cheap, some want exotic, and still others want humane. If I were assigned to the "build a better mousetrap" project, there may truly be 4400 viable (and vastly different) solutions. Therein lies the problem for requirements analysts - The primary functional requirement of all mousetraps is the same (don't make me say it.) Nailing the surrounding requirements, the values of the stakeholder, the attributes of the target solution -- it's all this stuff that can turn a simple project into a huge project. In my many consulting assignments around the world have encountered very few requirements analysts who truly know how to manage these requirements very well...and it's these surrounding requirements that can make the difference between project success and project failure.
Agile Dot Net
For folks in Texas and the surrounding area, don't miss out on a great free learning opportunity about Agile development with .NET. The event is on Friday November 14 at the Microsoft office in Irving. Improving Enterprises is proud to sponsor this event with Microsoft. Again, it's free of charge, but you must register ahead of time if you would like to attend. To see more details about the event, and to register, click here.
Subscribe to:
Posts (Atom)