Today was dedicated to Agile practices and Methodologies. Here's a rundown of the talks.
Keynote - Steve McConnell
Steve provided a wonderful overview of the Agile methodology. He went into a lot of detail about the agile practices and relied on his companies experiences to rate them based on how they work in the real world. For example, short release cycle tend to work very well, while pair programming tends to be problematic. The jet lag hit me pretty hard this morning and Steve is a soft speaker, but it was really interesting.
Agile is more than monkey-see-monkey-do - Peter Provost
First off, Peter Provost is very engaging speaker that highly encourages audience participation. I highly recommend watching one of his presentations. This one started as a comparison of two fictitious companies and how they implemented Agile methodology. One with great success and one with terrible tragedy. It then moved onto how teams can figure out how to implement agile practices. He also spent a good amount of time discussing how to get a team that has strayed back to the agile path.
Empirical Evidence of Agile Methods - Grigori Melnick
Grigori tried to show that there are actually people out there using agile methods. Apparently, there isn't must documented evidence. The topic by its very definition is pretty dry. That's all I have to say about that.
What's new in Rosario process templates? - Alan Riddlhoover
Alan gave an informative, but extremely slow paced presentation on the new features found in the next version of Visual Studio Team System.
It looks like they have a replacement for Caliber that integrates with MS Project. Our team doesn't have VSTS, so a lot of the stuff that was demo'd won't really matter.
Lessons Learned in Unit Testing - Jim Newkirk
Now this was a good talk. Jim is one of the original authors of NUnit and has now moved on to run Codeplex. In his talk, Jim relays 7 lessons that he has learned over his 8+ years of doing unit testing. The lessons are listed below.
Lesson #1 - Just Do It
Lesson #2 - Write Tests using the 3A Pattern(Arrange, Act, Assert)
Lesson #3 - Keep your tests close
Lesson #4 - Use Alternatives to ExpectedException
Lesson #5 - Small Fixtures
Lesson #6 - Don't use Setup and TearDown
Lesson #7 - Improve Testability with Inversion of Control
Some of the stuff he was talking about seems to go against what I've been learning from the internet and architecture. I'm hoping to talk with Jim tomorrow to get some more insight. Expect more in the future.
The Agile Security Development Lifecycle - David LeBlanc
David stressed the importance of considering security from the beginning of a project's SDLC. He stressed that developers on an agile team need to be educated about security. "If they understand what a security mistake looks like, they are less likely to put it into the code." He also pointed out how some of the agile practices enhance security. For example, Peer Programming is not only effective for finding bugs but also for finding security issues.
"Yet Another Agile Talk on Agility" - Peter Provost
Peter ran this talk like an agile project. There were 4, fifteen minute iterations where the first five minutes where used to gather issues about Agile that the audience was interested in and prioritize them. The next ten minutes where dedicated to tackling the issues/questions based on their priority. When the next iteration came around, we were given the ability to add new questions and re-prioritize them with the rest of the open questions. Peter kept a count down timer running on the big screen to make sure that we stuck to the schedule. It really drew you into the conversation and was a lot of fun.
Tomorrow looks like a good day. It will be dedicated to development and the keynote speaker will be John Lam of IronPython fame. Night, night for now kiddies.