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"