So a Rational Unified Process Group started up here in Edmonton in October. I have no knowledge of RUP so I thought I should go check it out and Scott Ambler was the first presenter. Although by the end I did not have a real feel for what RUP entirely was I got loads of good information from Scott about the realities of software. It was also interesting to have about five people from Calgary join the presentation via a phone conference.
Software Development, Agile, and RUP
- In the U.S. the Department of Defense funds 60% of Computer Science projects. So the providers of waterfall still fund a lot of things and continue to perpetuate some bad methodologies.
- Documentation is the worst way to communicate. Documents age and die and you can not ask questions of a document.
- If you have a methodology to prevent scope creep you are failing to meet the clients needs. Why should we say that a client can not get a feature because it is not in a document from 2 years ago? Granted we need to charge for these changes but to just say no makes no sense.
- 69% of developers have adopted at least one agile technique. They may not know it is an agile technique though.
- 43% of companies are offshoring work.
- The success rate from a recent survey says that 63% of traditional projects succeed and 71.5% of agile projects succeed.
- RUP actually spawned a lot of agile techniques from it.
- "Defects are requirements". If something needs to be done then it is REQUIRED to be done.
Modeling
- Modeling something is not a taboo in Agile. Most people do it but don't tell our friends. Look down the iteration stack for potential problems and do up a model of something ahead of time. There is no harm in planning ahead as long as you allow that plan to change and evolve.
- models/diagrams/documents in agile should be just barely good enough. They should convey what they need to convey and that is it. Otherwise it is documentation for the sake of documentation.
- TDD is good at small details but modeling is good at the big picture. Know when to use each.
- 77% of agilists are doing up front modeling on software projects
Database Testing
- We need to be better about testing the database.
- Data is a corporate asset we should test it
- We can test things like constraints, triggers, defaults, stored procs. What if it gets dropped or changed? Testing should catch that and protect us while doing database refactoring.
- It is irresponsible not to test this.
Quotes From Scott
- "There are those that are agile and those that are offshored"
- "Why make decisions when you have the least amount of knowledge" (in reference to big design up front)
- agilist: "what if it is easy?"
non-agilist: "I think it is hard, so it probably is." - "Oh well to heck with Calgary" (when our phone conference to Calgary got disconnected)
- "[For end users] testing to a spec is a waste of time".
- "RUP done right is agile"
- "Friends don't let friends use MS project"
- "If a client is smart enough to earn money they are smart enough to spend it"