Ron Jeffries did tried XP Planning for his own life management. Here what is he does. He creates big story cards like that:
House. This includes cleaning the basement, putting in the new kitchen,
improving the master bath, getting more storage for books and impedimenta,
general cleaning, doing something with the broken grill, ...
Then breaks these big cards into several smaller and assigns some of them on short iterations. Pretty easy and similar with XP Planning practice.
I am reading excellent Stephen Covey's book Seven Habits Of Highly Effective People. There are some parallels between Covey's advises and Ron Jeffries' approach. Covey wrote, that you should determine the most important things in your life and focus on them. You can write down them and then split them on smaller parts (big and small user stories in fact).
Then Covey gives an interesting advice about planning. You'd better use one week as a basic planning unit (like an iteration in XP?) for all important tasks in your life and track progress every weekend. A single day is a bad planning unit, since you will plan very strict and feel yourself under pressure. And the pressure will increase in the course of time. Single week gives more freedom.
So Stephen's methodology for life management (the book was published in 1989!) is something like XP Planning for software development. It has three essential things:
- Focus on important things
- Small manageable chunks (features)
- Small (weekly) iterations for better progress tracking
The question is... Can we consider life as a Project? 🙂
I just read Roy Dictus post Iterative Development (Part II). One thing is very arguable on my opinion. Row writes:
Smart Development defines two basic iteration types:
New Features Iterations
A New Feature iteration is as its name suggests: an iteration during which new features are added to the project
Debugging and Optimization Iterations.
A Debugging and Optimization iteration is used to perform more functional testing (of the version delivered at the end of the previous iteration) and more thorough unit testing and debugging. Existing code can also be optimized and/or refactored during this period for performance or maintainability.
The iterations of different types follow one after another. So you develop new features, then debug and optimize, then develop new features again, etc.
This approach is very interesting, but arguable. For example, it contradicts Extreme Programming planning practice. In XP all business decisions are making by customer. And bug fixing sometimes is a business decisions. Yes, it is. Customer might think, that new feature has greater business value and just more important than old nasty-but-rare bug. And customer doesn't want spend money on bug fixing during month or two.
Otherwise, Debugging and Optimization Iterations help create more stable and robust software.
So should PM ignore customer's priorities and always plan these Optimization iterations? I think he/she shouldn't. But sometimes such an iteration can help. Especially in the beginning of the project.
Also one phrase really hit me:
Testing and Debugging: More unit tests are written, and code is debugged
accordingly [during this phase].
I always thought that unit testing is a part of development phase. There are programmers who writes unit tests, not testers.
Several weeks ago I had a look at Subversion (quite fresh freeware Version Control system, which announced to be replacement of CVS). My first impressions were very good and I decided to use Subversion for the new project.
So I can give you some impressions now. Yes, Subversion really has cool features like directory versioning and full version history (on all actions with files and directories). You can move project folder anywhere, and it still be under version control.
When you commit files, all unversioned files appear in a list, so you can easily add them into repository.
There is a useful ignore list (well, this is not a new feature, but I like it).
Plugin for VisualStudio (AnkhSVN) have some problems with stability. It crashed, and I did not try to re-install it. AnkhSVN is good in fact, maybe the problem is special for my PC configuration.
The only problem appears to be with folders renaming. I renamed two, and couldn't commit them into repository. I had to delete these old folders from repository and add renamed as new folders.