The session that made the biggest impression on me from Day 2 was an informal, impromptu talk that was arranged during lunch to demonstrate Test Driven Development (TDD). The premise was that several presenters or prominent developers from the conference were to start a simple, greenfield sample project and use TDD to write code from requirements.

The results were striking (and not in a good way).

The leaders took suggestions from the audience about what kind of app should be developed and simple requirements were gathered. As several volunteer developers took turns typing, there were arguments over difficulties with the environment, over naming guidelines, over Visual Studio add-ins, over testing frameworks, and over code templates. Some of the typists experienced with TDD jumped ahead of the general audience, writing code that they were accustomed to writing without properly explaining themselves. There were arguments from the audience that some of the code was being written without first writing tests and therefore was in violation of TDD.

All in all, it was eye opening for me (having little experience with Test Driven Development) to see several proponents of TDD fall apart in this simple demonstration.

Of course it was not a properly prepared talk. It did not have a focused vision, and there was a lot of informal distracting chatter between the audience and the group of people directing the talk. However, it was still discouraging to be denied the chance of seeing a cohesive demonstration of a practice I've heard quite a lot about.

Day 2

Web Testing


  • TestDriven.Net
  • MbUnit row tests (like data driven tests in MSTest).
  • The very precise .NET Stopwatch class used to performance test (dataset loading, etc).
  • Test for 0, 1... N. If things work with 0 and 1, and some N, then they should work for other values (but watch out for large values).
  • May need to run integration, web, slower tests at night because you want tests to run very quickly.
  • Even if your unit tests are hitting the db, that's still ok and at least you're doing testing.
  • Don't show me pictures of and talk about your dog - I don't care.
  • Very expensive. Visual Studio Team System (AKA "Left Kidney") Edition is $5000 for single developer.
  • Web tests, recorder tool
  • Load testing. Mercury tool, other load testing tools?
  • Test 56k connections for time outs, don't assume everyone has broadband.
  • Fiddler. Using to inspect payloads.
  • FireBug has some performance measuring tools, but it's not as comprehensive as Fiddler.
  • Watin (Ruby' Watir for .Net).
  • Watin test recorder. Updates fixed Ajax issues.
  • Setting up Cassini for testing.
  • Wcat (in resource kit for iis 6).
  • Go command line. It'll be cheaper and more powerful.
  • Profiling. Ants profiler.
  • Web testing, load testing, profiling. Understanding these things seems to be concentrated on more maybe, but there could even be more sessions done with it.
  • DotTrace.
  • It's good hearing about the various tools, but doesn't seem to be enough real-world experience behind it.
  • TDD by example, Kent Beck
  • Pragmatic Unit Test with C# and NUnit
  • Behavior Driven Development talk:
  • They keep saying to sneak practices into organizations, as if managers will suddenly notice that code is better and ask "Wow, things are great! What did you change?".
  • I'm getting fatigue from youthful enthusiasm.
  • SiteWalker.

Open Spaces - SOA

  • Kickoff, how to get enterprise to adopt SOA from existing communications code in place
  • Flex doesn't work well with SOAP, so Rest is a better fit?
  • Using SOA to tie disparite systems together.
  • What is SOA is a bad quesstion. More appropriately, what do you want from it. What does your company want from it.
  • It can be soap, rest, remoting. Whatever can work.
  • It's message passing. To create a big interface that will bridge large #s of gaps is not good to focus on.
  • Soa is very ambiguous I'm feeling. It's people dealing with interconnected systems.
  • It's a buzzword that non-technical people in companies can latch onto.
  • Woa - web oriented arch
  • Cloud computing sounds great, but we're still probably far away from having companies trust it.
  • Excel being able to pull data is impressive to business people. They could get this ,it's hard to grasp sharePoint, bam, sitefinity.
  • It's better to show than to tell about.
  • Bof
  • "I ducking hate sharepoint"
  • You can't put Esb in a box
  • Something that maintains a directory of services is valuable
  • Uddi
  • Couple of consultants expressing experience integrating services within companies.
  • Oslo? Does uddi fall away with it?
  • Msft has a roadmap, kinda private, and if they stop talking about something then maybe it's going away.
  • Thomas Erl books. Great resource, big books, but a quick read.
  • New patterns. Maybe driven by ego. But the value of a pattern is that it capitalizes on existing knowledge and experiences.
  • Scott Bellware is becoming House MD
  • Soa in a word
    • Reusability? been promised before
    • Reusability within the enterprise
    • Interop maybe?
    • Integration?
    • Loosely coupled integration?
  • We're not doing anything new, you could still just pass a flat file around, but this is a more open way where you maybe don't have to understand an opaque util that processes that flat file.
  • Noticed that laptops, slides didn't look near as refined and beautiful.
  • Soa has a steeper learning curve because you need to know about several pieces.
  • This is going to be a factor for me layer (integration), so should increase priority of Astoria, restful stuff ... Also, design patterns.
  • It's important to separate components where they can be service oriented.
  • With speaking and writing, even general conversation, explaining ideas elegantly is the key skill. I need to be able to think  clearly, and restrain myself. Can practice this is writing. Keep myself honest by proving my points. I don't think quickly though, so slow down to go  fast.
  • Open spaces help to flesh out ideas from various people. The speaker has to be very, very good to attend a strictly face-forward presentation.

Lunch - TDD demo

  • Start using TDD syntax for tests. Stop always calling things BlahTest.
  • Take out template code and comments (it's noise).
  • Lunch session on TDD was full. Seems to be interest in testing and tdd. Even though we're using statixally types languages, we still need tests (and it's a tool to develop business requirements)
  • Try doing TDD on a refactoring or new feature. Let the design drive me.
  • Was great to see speakers being engaged. Lots of stumbling, arguments over tooling. Good to see them in practice.
  • Are getters and setters evil?
  • The zealots have an aversion to MSTest.
  • Class WhenAllPeopleAreFed
  • Method Are_there_people_to_feed, for example.
  • It take discipline to take small steps and not skipping things.
  • Michael Feathers book was highly recommended.

Service Design


  • Best is the enemy of good. Good enough is by def good enough.
  • Soa is nothing but evolution.
  • Quotes a study that documents the most popular real world benefit of implementing SOA is agility.
  • You can't get it right.
  • WF and WCF go together well and Msft will continue to support them. It's a good idea to invest learning in these.
  • WSDL plus address
  • Are open spaces for people who like to talk. Is it more ego driven?
  • It's not RESTful
  • How do WCF and REST work together
  • Use XML namespaces. Many people neglect this.
  • Service methods are not code. Take one parameter that has all parameters bundle, then can add optional parameters.
  • What doesn't matter? New operations and new properties on existing types.
  • Orgs that are just starting to use or create services shouldn't need an ESB. Don't get treatment until you feel pain.
  • How will Astoria change this stuff? I haven't looked at it a lot, but I don't see this as the major problem.
  • Some asks, what if I need to return a million rows? If it's possible and you have enough bandwidth and power, do it. Or consider using an async technique, such as a return address (if doing programmatically) or provide an FTP address, username, and pass that a file will be present at.
  • Oslo.

Closing Keynote

Joe Stagner

  • Today's problems can't be solved with the same thinking that got us into those problems. Einstein.
  • The web is completely broken? No!!
  • Consumer IP traffic should surpass enterprise for the first time in 2008.
  • Last year, my parents did most of their Christmas shopping online.
  • Data centers are the fastest growing energy segment in the US.
  • This is bullshit. He's just talking with his friends in the audience and making stupid jokes. Guy next to me just said, this is awesome, which makes me depressed about the audience.
  • Develop habit of using time better. Pretending like I have less time and try to effectively work 4 days. Focus hardcore. Also, prepare this year for when I have to work in a real environment. Stricter.
  • Msft is the biggest SW company. 78k employees.
  • Question: What is Msft development division doing to reduce complexity and make adopting new techs that are rapidly being produced more palatable?
  • Answer: You don't have to do it, and Mvc
  • Although I don't think his talk was particularly innovative or inspirational, his attitude seems to generally be in the right place with regards to embracing future developments.
  • Makes a joke to not use UpdatePanel. They've apparently had bad experiences with it scaling.
  • When OSS for Msft? "Honestly, I think a lot of people don't get OSS in Msft."
  • A lot of people don't realize that Msft cannot accept legally contributions from OSS contributors. They can't take the risk. Is the risk perceived? Will Msft ever get over this? Not likely.