Composite Application Guidance for WPF released

July 7, 2008 – 9:11 am

The p&p Composite Applications team has just released Composite Application Guidance for WPF. In a nutshell…

The Composite Application Guidance for WPF is designed to help you more easily build enterprise-level Windows Presentation Foundation (WPF) client applications. This guidance will help you design and build flexible composite WPF client applications—composite applications use loosely coupled, independently evolvable pieces that work together in the overall application.

Using the guidance streamlines the WPF team development experience. You can build solutions that take advantage of the full power of WPF and that are highly maintainable, testable, and whose pieces can be developed by separate teams.

You can also discuss this release on the CodePlex community site.

New Developer on the p&p Team

July 3, 2008 – 5:00 am

Erwin just started with the patterns & practices Dev Team. He already has a blog and will be joining the Composite Application Library (CAL) team as they start work on their next project. His blog already includes a post on module loading for CAL.

We’ve had quite a few new people join us in building five recently; David Hill, Ajoy Krishnamoorthy and John DeVadoss. Finding desks for everyone has been a bit of a challenge!

ALT.NET Seattle Gathering

July 2, 2008 – 5:00 am

I was able to show up for the first half of the ALT.NET Seattle on Saturday and managed to attend two of the open spaces. It was a great group of people and I learnt a lot from the two talks I went to on agile without management buy in and dynamic languages and came away with some things to follow up on after the day was over.

What did I find out? Don’t feel like you have to read it all. Skip to the sections that interest you.

Read the rest of this entry »

Planning is a Waste of Time?

June 30, 2008 – 5:00 am

A couple of weeks back I spoke at the Seattle XP Users Group. The other speaker was Dr Neil who’s talk was a discussion around ”Planning is a waste of time”. The were lots of interesting viewpoints, some of the ideas that came up during the discussion:

  • The longer you spend planning the more that’s vested in the plan making it less easy to throw away. For example really large projects have dedicated planners - people vested in the plan.
  • You need less planning on shorter iterations. If you force people to do less planning maybe this will lead to shorter iterations?
  • Planning and planning meetings are about relationship building with the customer. It’s a reason to have a conversation.

Having worked on some really large teams and projects (Visual Studio) I’m definitely not in the all planning is a waste of time camp. On smaller projects sometimes we have a natural tendency to plan when we’d be better off doing (or practicing as Dr Neil called it). It all goes back to the mentality of getting it right first time, rather than getting something that you can show the customer and have a conversation about.

Tools for Agility

June 27, 2008 – 4:00 am

This paper was just published on MSDN; Tools for Agility - A White paper by Kent Beck, Three Rivers Institute

Microsoft has invited me to share my thoughts on the relationship between tools and agile software development. Agile development seeks to increase the value of software development by increasing the feedback available to customers and developers.

My biggest takeaway from this was the emphasis on reducing the cost of context switching from one activity/tool to another. This goes a long way to explaining why some tools become popular and others less so. Even a very small increase in latency can make the tools significantly less useful.

Another observation is that without tooling we wouldn’t have agile development at all. Agile relies on the ability to rapidly change the codebase to meet the changing business requirements. This means continual refactoring of the code to ensure loose coupling, open/closed etc. This requires modern languages and tools to make this possible. That’s not to say that tools are more important than people but it does mean that without a certain level of tooling agile development practices are much harder to follow.

Currently listening to:
Nine Inch Nails - With Teeth

November-Six-Niner-Four-Tango-Whiskey

June 26, 2008 – 10:11 am

The Susan's first solo flightThis has nothing, and I mean nothing, to do with software…

The Susan and I have been watching a lot of Battlestar Galactica (BsG) season three recently. She bought it for my birthday and we’ve been working our way through it. In BsG the pilots call each other by their callsigns; Boomer, Starbuck, Apollo… yadda yadda yadda. That’s all fine and dandy, Val Kilmer and Tom Cruise had the same thing going on in Top Gun.

Read the rest of this entry »

An xUnit.net Assert.Throws() Code Snippet

June 24, 2008 – 3:51 pm

Choose the 'throws' snippetI was mucking around with code snippets over the weekend - it killed the time in between feeling sick. As my unit testing framework of choice is XUnit I thought I’ve have a go at adding a snippet or two around that.

xUnit already comes with a nice code snippet for creating a method decorated with the Fact attribute. The only other piece of code I find myself (re)writing a lot is code around testing correct exception behavior.

Read the rest of this entry »

Visual Studio Startup Script

June 22, 2008 – 8:35 am

Given that occasionally I’m prone to playing the odd game on my home computer I didn’t want a lot of the services that are only used for development running all the time. Solution… use the Services tab in the Computer Management console and configure them to start manually. Then use a PowerShell script to start them all along with DEVENV.EXE when you want to use VS.

Read the rest of this entry »

Core Wars

June 19, 2008 – 10:41 pm

So Chris just sent me a link to CoreWars.org. It was sort of a spin off from tonight’s ALT.NET Seattle dinner. This includes some scans of the original Scientific American article from ‘84. I remember my father bringing a copy of the article home and he and I talking about writing an implementation. Core Wars is an interesting game, a bit like Life where competitors build programs using a relatively simple assembly like language. The programs inhabit a memory code and move through it hunting for other programs and attempting to destroy them. The last program still running is considered the winner.

I wrote one for my BBC Micro in 6502 8 bit assembler when I was about 16. Not sure I ever actually finished it, I suspect women and beer got in the way, although I do remember it had some sort of UI in Teletext (250×240) mode so you could actually see your warrior code moving through memory. I had no knowledge of compilers or interpreters at the time so my implementation was very buggy and probably quite ugly.

Core Wars was one of three big hobby projects I had at the time, the other’s being calculating Mandelbrot set boundaries and N-body models (star and planetary systems).  I’m sort of tempted to go back and write an implementation of one of these today. I could probably run an N body simulation with thousands of stars in real time when back in the day doing half a dozen seemed a stretch. But then my cell phone is better spec’ed than the BBC Micro.

The Architectural Magic Eight Ball

June 17, 2008 – 7:13 pm

eight_ballEver been faced with one of those tricky design or architectural questions? Maybe the team is divided or a key decision maker is a seagull. But you need to move forward quickly.

Ladies and gentlemen… I give you the Architectural Magic Eight Ball, beloved by senior developers and architects everywhere. Solve those tricky religious debates instantly. ASP.NET MVC or WebForms? Solved. Which O/RM? Chosen in seconds. How should I distribute my application layers across tiers? Done!

This came up as part of a random hallway discussion today at p&p. Of course if it were this easy then we’d be out of a job. Might make good marketing swag though.

You could even build your own magic eight ball for your team.

Addendum: So I’m starting an (internal) campaign to get these made. Maybe as swag for the p&p Summit or something. If you think they’d be cool and have any ideas for good eight ball answers then post a comment here.