Aug 30, 2006
Every conference has to open with a Keynote Address otherwise it's not a conference, right. Normally keynote addresses involve product announcements and how wonderful life will be in the brave new world using this, that, and the other. Tech.Ed took a different angle to their keynote and had an anthropologist come and speak.
An anthropologist? Yep, someone who studies human behaviour. Employed by Microsoft. Go figure. If I recall correctly, Anne Kirah was the first anthropologist hired by MS and was responsible for some very "enlightening" revelations around windows and it's usability.
The beta process in particular was really interesting and explains why Microsoft has improved so much in this regard. Older versions of windows went through beta testing to figure out what was usable and what wasn't and one of the things that MS had determined in their beta testing was that the average person could get a brand new PC out of the box and up and running, connected to the internet in about 3 hours. And this was in the days of 28.8 K modems, wierd ISP configurations, slow install processes, and the like.
Upon hearing this Anne was a little suspicious so she thought she'd go check things out for herself and got a few test subjects (people in their own homes) to go through the process. As it turned out, these people couldn't even get Windows installed, let alone connected to a modem, load up a device driver, set the correct PAP/CHAP settings for their ISP (whatever the hell that was) and connect to this mysterious thing called the internet. She didn't try to helpthese people but rather asked the people how they were feeling and what they were thinking as they were trying to get things working. She video taped the whole process and showed a small snippet in the keynote - the frustration and anger seething from one of test subjects was clearly obvious and when Microsoft saw this they were staggered. They asked the obvious quesion - Why do beta testers have relatively little hassle and why do Anne's subjects struggle so much?
The answer turned out to be the segment of the population participating in the beta tests. All the past beta testers had an IT passion, they enjoyed getting through the complexities of installing, connecting, configuring and tweaking PC's and rarely reported problems once they sorted them out. Anne's subjects were normal people and didn't do this. They didn't understand I.T., technical terms or computers in general and they definitely wouldn't know what to do when faced with a default windows installation (anyone ever wondered where the idea for the Windows Start button came from?).
Ever since this revelation, Windows has been beta tested by average non-IT people and Vista is a great example of what happens when the feedback from these people is fed back into the product.
On the flip side, there was a rather ironic moment in the presentation. For whatever reason the power point used to back up the message was awful - the classic bullet pointed, multi-lined, ill-conceived presenter-prompter style of powerpoint. The funniest/saddest slide was the one talking about information overload. The idea that we have too much information on screen, and that we need to remove clutter is great - it makes for more usable applications, better presentations, etc.
The slide that talked about it had 28 lines of text broken into 2 columns (because there was too much to fit into one), it had small text, nested bullet points, a mix of normal and italicised text and all of it squashed under 3 rather small and somewhat irrelevant pictures of people. Absolutely awful and not something that should be done when talking about "information overload".
Here are a few images from the keynote. Some of my team who attended Tech.Ed (Right to left: Sausage Dog, Fish & Aladdin)
And the presentation itself (sorry for the image quality - it was taken on a mobile phone), but you can get the idea about the powerpoint.
Oh, I should also mention that the welcoming party was a fairly tame affair, but there's always some one who will do anything to get a girl to rub their leg, even if it involves standing near a guy in a blue lycra outfit...
Aug 29, 2006
Last night I rigged my laptop to dualboot both Vista and XP and so far so almost good.
The steps to get it running were pretty simple and borrowed from the lifehacker blog. Basically you do the following
1. Make an empty primary partition on your disk (use Partition Magic so you don't trash anything else on the disk). I made a 24 Gb partition.
2. Boot XP
3. Stick in the Vista disk and choose to install a new copy of Vista (don't upgrade).
4. Follow the bouncing ball through the initial steps (5 minutes) then go away and watch TV for a while.
5. Follow the next bouncing ball, enter a little bit of basic information and you're done.
All too easy :-)
The office 2007 beta install was also a piece of cake - took a little while to get done.
By the way, the only problem I've run into now is that the hibernate under XP crashes the machine - but then I think that might be a hardware problem since it used to fail to resume from hibernate fairly regularly.
Oh, one other thing - the Vista dualboot screen gives you the option of doing a memory diagnostic which is pretty cool since it eliminates RAM issues as the cause of driver problems.
The speed of Vista is great when running straight on the hardware and no virtualisation is involved. I'm really pleased with how it performs and now i've just got to get used to where everything lives now since Vista is remarkably different to XP.
Aug 28, 2006
Time to download it and get testing :-)
Aug 26, 2006
Well, Tech.Ed 2006 has just concluded and it was really quite good. Better than expected actually.
There were a few things that really clicked with me. One was the Guidance Automation Toolkit and software factories in general. From what I'd read in the press and various web sites, I had the impression that a software factory was a bit of a silly name invented my marketers for code generation.
In reality it's a lot more than that. It's the processes, practices, standards and everything else that sits around the code, as well as automation of the actual code being generated (although that's probably a bit too simplistic an explanation). It's about assisting developers through the whole software development process in your organisation, and is especially useful for large developments, complex projects or places where there is developer churn. I'm actually quite excited about this - especially when I saw a demo of a guidance package in which NHibernate business classes were generated visually (class designer style), the column/property mappings done and then the hbm files built, all in about 5 minutes with no code and working perfectly. Given that this process can take hours by hand it's a real productivity enhancer.
The other thing that got me really excited was LINQ. This thing is awesome! It's very similar to NHibernate in both syntax and usage, but it offers much more than NHibernate, it's built into the compiler and works across not only databases, but object collections, disconnected datasets, XML data sources and can be extended to cover a whole bunch of other things as well. For example there's even an Amazon LINQ provider that works off the Amazon.com API's so that you could, for example, write LINQ queries for tech books less than $10.00 for example.
Unfortunately LINQ is still probably 12 months away from a 1.0 release, but I'll be grabbing the CTP and giving it a run through very soon.
I'll post some more detailed session summaries in the coming days.
Aug 24, 2006
I've just downloaded and installed the Windows Live Writer beta from Microsoft.
I've gotta say - it's a nice piece of work. It analysed my blog, figured out I've got a blogger account and downloaded all my style sheets, etc so that I edit posts in the actual format they'll be shown on the blog.
This is so much better than doing it via the blogger tool, which is just a web based rich text editor, that gives some basic formatting, but not a genuine live preview of the post you're writing.
I'll have to spend some more time playing, but this is so cool - I think I'm sold :-)
Aug 21, 2006
Follow up posts will come after the event (and after I've digested it all).
Daiv Hayden blogs about it in his post
NDoc to Sandcastle - Generate MSDN Style Documentation and Help Files Based on XML Comments in your .NET Code
Aug 14, 2006
I kicked if off today with one team and their reception to it was very positive and the team worked well at it during the day. Obviously we'll see what issues pop up during the next few weeks and then assess where we go from there, but the rest of the department are keen to see how it works out and so is the rest of the management team.
Further updates in the coming weeks.
Aug 13, 2006
It was Fathers day in Canada, which was a bit of a surprise since it's in September in Australia. A big day today.
We got up reasonably early, jumped in the car and drove to Surrey where we went to church at Victory Christian Centre, where Jon and Helen Burns are from (we've seen them in Australia before). It was a great morning. The guys were very welcoming and it felt just like being among friends we haven't seen in a while.
Afterwards we then drove down to Ladner and went to the Reifel Bird Sanctuary. Great name for a bird sanctuary! Anyway it was a beautiful place and a great way to spend a few hours. There weren't a great variety of birds around but we did see our first bald eagle in the wild, and a number of waterfowl.
We had a late lunch in Ladner and then drove up through Vancouver, across the Lions Gate Bridge to the Capilano Suspension Bridge. As it was later in the day, we avoided the tour busses and got to spend some leisurely time wandering through the treetop walk on the far side as well as being able to get some shots when no-one else was on the bridge.
All in all it was a great day and the bird sanctuary was excellent.
Aug 12, 2006
I saw a google ad appear on my blog for a company called Sprint IT. They have a bunch of tools and services that supposedly help in the scrum process when, in reality, all you actually need is a pen and paper or, at most, an excel spreadsheet (which is what I use).
These guys even have the following on their front page
"Interactions and people over processes and tools."
In order to realize agile software development process in your company or project we provide the tools, trainings and consulting in order to help you reaching your goals.The quote is from the agile manifesto, but the company statement directly below it seems to subvert that immediately and favour the tools and processes over the interactions and people. I mean, really, when does a "standardised scrum checklist" do anything but encourage process over interactions?
If the effort to commercialise scrum and other agile methods continues like this it will be very hard to differentiate "commercial agile" from waterfall based methods. It will also be very hard to clearly explain to the masses the difference between "commercial agile" and "open source agile" (for want of a better term).
My suggestion is you boycott the tool vendors and stick to the basics. Hopefully a lack of commercial success will stop this sort of nonsense continuing.
A description of what the software should do is put on the wiki, including test scenarios (in tables). When a wiki page is written that includes tests a "Test" link becomes available and anyone can click on the link to execute the tests.
If the tests pass, the result columns of the test table(s) turns green. If it fails the result columns turn red and show both the expected and actual return values.
All good in theory but how does it actually work?
I decided to play with a simple VS2005 project and do something basic to acceptance test a simple business class (set a few property values and check the results).
Getting fitnesse running was a piece of cake, and then it took me about 5-10 minutes to setup a page for my tests. I then discovered that in order to test anything you need to create a test harness. Much in the same way that you create a test harness for unit testing in NUnit, you need to create a TestFixture for Fitnesse that inherits from one of the predefined fixture types. These fixtures are what are referenced by the test tables, and give meaning to the various column headings in the tables.
It didn't take long to knock one up, and then I tried to run the page. This is where it got confusing.
The Fitnesse documentation is somewhat, um, sparse if you are trying to test anything other than Java code. After a bit of hunting around I found that I needed to tell Fitnesse to use the .NET server (which makes sense).
However when I ran the tests it told me it couldn't find my assemblies. I scratched my head for a while before eventually realising that the .NET fit server uses the 1.1 framework and it won't know how to load 2.0 assemblies.
Unfortunately the binary distribution doesn't contain the .NET 2.0 version, so I had to go and download the source version. The source version for some reason includes the .NET 2.0 version of the fit server and when I ran with that everything worked as expected.
In summary, it looks like it will do a good job and fills a gap that NUnit doesn't cover. Also, the fact that you can use it as a documentation repository (eg tech specs/use cases with tests built in) is a boon. So now that I've gotten through the pain of setting it up in the first place it's time to try it out on something a bit more complex and realistic.
Aug 10, 2006
So today this candidate turns up and explains how he's done this, that and the other and how he gets on really well with people, listens to their ideas and so forth. I chat to him for a bit and then get him to do the debugging exercise. He gets through it in about 10 minutes which is pleased me however one of the fixes he did was overly complex. Being a fan of minimal code I ask him to do the fix in one line instead of the 6 lines he used and he got a bit annoyed with me, telling me that his code was superior because it handled all situations. Not a good sign so I simply hmmmed and made a mental note of it.
I then switched subjects and did a bit more of Q&A and with him, and a few minutes later asked him how he handles doing work he doesn't agree with. "Hypothetically," says I, "if we were to disagree on how to do something and we both thought we were correct, and I said to you that you had to do it my way, what would you do?"
The candidate gives me with a thoughtful look considering the situation and says "Well, if I thought you were going to check my code I'd do it your way, but if I thought you wouldn't check I'd do it my way and not tell you."
What a great response, and at least he's honest! Suffice to say, however, the candidate is not being progressed to the next stage.
Aug 5, 2006
We ended up at Vancouver Aquarium and spent hours there - it's a great place. We watched the beluga's, sea otters, dolphins (pacific white-sided), and all the other animals they had on display (even butterflies). It's a great aquarium!
After spending a long day there and Anne trying to single handedly empty the gift shop we headed back to the apartment for some much needed rest.
Aug 4, 2006
And now I feel kinda guilty as well. I used NDoc to generate the reference guide for the AtomsFramework, and for other non-O/S projects as well.
I really feel for Kevin. I know personally how much time I spent getting the AtomsFramework up and running, supporting others who used it, and so forth. Of the almost 13,000+ downloads and with it being used in a number of live projects around the world I recieved a total of 1 donation. That's a pretty poor hit rate.
Yet at the same time I ask myself how many contributions have I made to open source? I can think of none. I know I've paid for shareware, but not for O/S. Why? Probably because it didn't really occur to me at the time. I download something to see if it works. If it doesn't I ingore it, if it does I just use it - forgetting to go back to the creators and give them a tip.
Having said that I guess that I did feel a little let down by the lack of financial thankyou's. And I can empathise with Kevin deeply. NDoc has been downloaded 13,000,000 times. If Kevin recieved 1 donation for every 13,000 downloads (which is my ratio) that would have been 1,000 donations. At an average of say $10 per donation it's still a pretty poor return. $10,000 for something used by well over 1,000,000 developers and extremely well known world wide is laughable.
Imagine if he charged $25 per seat and sold _only_ 130,000 copies (1%). He would have made over $3 million dollars!!
We really do need to support open source financially. I'm using NHibernate now for a project so I guess it's time to pull out the wallet and cough up some cash.
Aug 3, 2006
The problem as I see it is to do with the fundamental differences in the principles underlying both waterfall and agile development. It's the difference between management and leadership - both of which are terms bandied about interchangeably by people who don't often understand the difference.
Management is directing & controlling a process (ie having control)
Leadership is influencing & trusting people (ie releasing control)
There's an Agile Manifesto describing the principles behind agile projects. I think a "Waterfall Manifesto" would be something like
- Process & tools over individuals & interactions
- Following a plan over responding to change
- Contract negotiation & self-protection over collaboration & trust
- Comprehensive documentation over useful software
Waterfall = Management
Agile = Leadership
Leadership is a helluva lot harder than management, especially for techies-turned-bosses. Let's face it soft skills are hard to teach and people are such unpredictable things! ;-)
Aug 2, 2006
Go there today and have a look. P.S. On the left you'll see a little web widget of some of the books in my collection.