Alan Dean

Monday, May 11, 2009

2009 Alt.Net UK Conference Announced

We are pleased to announce the 2009 Alt.Net Conference. As Ian says, we tend to organise the Conference when the community feels ready for one and the time seems right again.

This time, we are settings our sights a little higher and making a weekend of it by bringing together the Alt.Net Beers which Seb runs, the Open Space Coding Day which I run and the Conference itself. Attendees will be able to register for one, two or all three events depending on availability. Registration will be open from 13:00 on Tuesday 12 May (tomorrow if you are reading this at the time of posting).

Our thanks go to EMC Conchango for agreeing to host both the Saturday and Sunday events and also to TEQUILA\ for hosting the Alt.Net Beers on Friday. We would also like to thank our sponsors for giving us support during a time of constrained budgets.

Please note: the website is in the process of shifting DNS entries, so if you don’t see the new version at http://altnetuk.com then try http://www.altnetuk.com instead.

Sunday, April 26, 2009

Golden Hours

I quite often talk about “Golden Hours”. I employ the practice both at work and at the Open Space Coding Days. However, I find that there are relatively few people who have heard of the practice – a fact that I find somewhat surprising given the huge amount of value that I find that it delivers. Although I can’t quite recall where I first heard of Golden Hours, I have been using the practice for about 6 years, on and off.

Background

There has been a great deal of research over the years into human concentration and productivity, much of which indicates that humans tend to concentrate in sprints. Furthermore, deep concentration seems to take time to achieve (typically at least 10 to 15 minutes) and is easily disrupted, especially by multiple stimuli. The optimum concentration period seems to be in the region of 100 minutes and few are able to maintain deep concentration beyond that.

In addition to the general research, there is a body of productivity studies (including a great deal on developer productivity). Much of this indicates that, regardless of the number of hours actually worked, the vast bulk of productive coding time amounts to about 4 hours a day.

When discussing this with developers, I find that this generally fits with their personal experience.

In Practice

Essentially, Golden Hours takes the observations made above and simply embraces them.

What does it look like in practice? I follow a regime as follows:

  • Golden Hours run from 10:00 to 12:00 and from 14:00 to 16:00.
  • All preparatory work must be carried out prior to the Golden Hours: all investigations and all communications must be complete. Preparation is regarded as ‘done’ when the pair who will work together are satisfied that they have sufficient knowledge to code for 2 hours without interruption.
  • During the assigned Golden Hours, the developers should close all communications: shut off IM, close their email application, mute their phones and so on.
  • During the assigned Golden Hours, nobody is allowed to interrupt the developers unless there is an emergency. Fire alarms count, the live systems failing catastrophically also count. Not much else counts as an emergency. This includes the CEO, other senior management and any other stakeholders. It isn’t negotiable. In reality, there is very little that can’t wait for a maximum of 2 hours.
  • Depending upon your environment, there may need to be a buffer to protect the developers. In some organisations, that may involve having 1st-line tech support. In others, you may need a assign the ‘bouncer’ role to someone.

I have found that 2 hours is an excellent unit of time to work with. You can thoroughly prepare for a 2 hour coding stint in a relatively short time (I find to 30 minutes preparation time is typically sufficient). It is a length of time that external stakeholders are usually happy to live with the developers going incommunicado. Just the need to thoroughly prepare is an excellent practice that minimises wheel-spinning. Once you have bedded-in Golden Hours, I have also found that it is a good unit of time for estimation purposes – along the lines of “Assuming that you know everything that you need to know, how many golden hours do you estimate that this task / feature / story will take?”.

You may find the response to the introduction of Golden Hours surprising. When I brought the practice into MoveMe, the product owner immediately asked “Does this mean that developers can’t interrupt me during this time either?” with a big smile of his face. An excellent reminder that being unprepared and disorganised is a disruption to others.

Monday, March 9, 2009

Turning 40

This evening I am off to Coventry to give my “Separating REST Facts from Fallacies” talk at the Coventry NxtGenUG, after which I will head up to Yorkshire as it is my 40th tomorrow. I don’t have anything in particular planned as I’m not big on birthdays, although I have treated myself to a new car (nothing fancy – just a Honda Jazz).

It’s odd, the prospect of turning 40, in that I really don’t feel like I am. Having never married nor had children, perhaps I haven’t been through the life events that make someone feel 40. It’s my working conjecture to explain it. In any event, I’ll only been sporadically connected in the next couple of days.

Sunday, March 1, 2009

Environment Preparation for Book

Personally, I am a big fan of using Virtual PC for development as it makes changing between software versions so easy and allows easy switching between host machines. So, naturally, an important task in preparation for my book is to set up an image for the development. Here is my recipe:

  1. Windows Server 2008 (I could use Vista but I prefer to develop on a Server OS)
  2. Microsoft Visual Studio 2008 Team System, including SQL Express 2005
  3. Ancillary Software
  4. ASP.NET MVC 1.0 Release Candidate
  5. Microsoft Azure
    • Developer SDKs
      • Windows Azure Software Development Kit (January 2009 CTP)
      • Windows Azure Tools for Microsoft Visual Studio January 2009 CTP
      • Microsoft .NET Services SDK (Dec 2008 CTP)
      • SQL Data Services (SDS) SDK (CTP)
    • Training Kit

Saturday, February 28, 2009

Working out a writing schedule

This is the top-level view of my book:

  • Introduction (20 pages)
  • Chapter 1: Introducing the Project (10 pages)
  • Chapter 2: The Product Data Store (20 pages)
  • Chapter 3: User Authentication (50 pages)
  • Chapter 4: Product Management (80 pages)
  • Chapter 5: Product Pages (50 pages)
  • Chapter 6: The Shopping Cart (100 pages)
  • Chapter 7: Checkout (150 pages)
  • Chapter 8: Personalization (100 pages)
  • Chapter 9: Deployment, Monitoring and Management (50 pages)

My next task is to work out a writing schedule to accomplish these chapters. This is my first book, so I am on a steep learning curve.

Aside from community commitments, I will be devoting my weekends to writing and my weekday evenings to preparation, editorial and revisions.

I will backload the Introduction and Chapter 1. Luckily Chapters 2 to 4 form an ‘up ramp’ in terms of page count, which I hope will allow me to accelerate into the writing rather than needing to be at high velocity from the start (an objective I would be unlikely to achieve). Another piece of luck is that the UK Bank Holiday season falls right in the middle of the schedule, just at the point where I have the largest pieces of work to accomplish.

So, thinking in units of ‘weekend’ my initial plan is as follows:

  • Feb 28 = Environment Prep & Ancillary Tasks
  • Mar 07 = Chapter 2: The Product Data Store (20 pages)
  • Mar 14 = Chapter 3: User Authentication (50 pages)
  • Mar 21 = Chapter 4: Product Management (80 pages)
  • Mar 28 = Chapter 4: Product Management (80 pages) [Open Space Coding Day]
  • Apr 04 = Chapter 5: Product Pages (50 pages) [DDD Belfast]
  • Apr 11 = Chapter 6: The Shopping Cart (100 pages) [Easter Bank Holidays]
  • Apr 18 = Chapter 6: The Shopping Cart (100 pages)
  • Apr 25 = Chapter 6: The Shopping Cart (100 pages)
  • May 02 = Chapter 7: Checkout (150 pages) [DDD Scotland], [May Day Bank Holiday]
  • May 09 = Chapter 7: Checkout (150 pages)
  • May 16 = Chapter 7: Checkout (150 pages)
  • May 23 = Chapter 8: Personalization (100 pages) [Whitsun Bank Holiday]
  • May 30 = Chapter 8: Personalization (100 pages) [Open Space Coding Day]
  • Jun 06 = Chapter 9: Deployment, Monitoring and Management (50 pages)
  • Jun 13 = Introduction, Chapter 1
  • Jun 20 = (manuscript)

A tough schedule, I know, but I really want this book out on the shelves by the time that PDC ‘09 rolls around.

Preparation for Book Screenshots

Wiley have sent me a bunch of preparation guidelines in order to produce printable screenshots. They made it easy by providing theme files for Windows XP or Vista, However, I’m using a Server 2008 in Virtual PC because I’m developing for Azure so I had to step through their guide and carry out the configuration manually. The end result is not aesthetically pleasing on-screen but I am assured that it makes for good print stock:

Anyway, if any other Wiley authors want to skip the manual process on Server 2008 then just put the following into a .theme file and double-click it:

; Copyright © Microsoft Corp. 1995-2001

[Theme]

; My Computer
[CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\DefaultIcon]
DefaultValue=%SystemRoot%\System32\imageres.dll,-109

; My Documents
[CLSID\{450D8FBA-AD25-11D0-98A8-0800361B1103}\DefaultIcon]
DefaultValue=%WinDir%SYSTEM32\mydocs.dll,0

; My Network Places - SHIDI_MYNETWORK
[CLSID\{208D2C60-3AEA-1069-A2D7-08002B30309D}\DefaultIcon]
DefaultValue=%WinDir%SYSTEM32\imageres.dll,-25

; Recycle Bin
[CLSID\{645FF040-5081-101B-9F08-00AA002F954E}\DefaultIcon]
full=%SystemRoot%\System32\imageres.dll,-54
empty=%SystemRoot%\System32\imageres.dll,-55

[Control Panel\Colors]
ActiveTitle=0 0 0
Background=128 128 128
Hilight=0 0 0
HilightText=255 255 255
TitleText=255 255 255
Window=255 255 255
WindowText=0 0 0
Scrollbar=224 224 224
InactiveTitle=128 128 128
Menu=192 192 192
WindowFrame=0 0 0
MenuText=0 0 0
ActiveBorder=192 192 192
InactiveBorder=192 192 192
AppWorkspace=128 128 128
ButtonFace=192 192 192
ButtonShadow=127 127 127
GrayText=127 127 127
ButtonText=0 0 0
InactiveTitleText=192 192 192
ButtonHilight=224 224 224
ButtonDkShadow=64 64 64
ButtonLight=192 192 192
InfoText=0 0 0
InfoWindow=192 192 192
GradientActiveTitle=0 0 0
GradientInactiveTitle=128 128 128
ButtonAlternateFace=181 181 181
HotTrackingColor=0 0 128
MenuHilight=10 36 106
MenuBar=212 208 200

[Control Panel\Desktop]
Wallpaper=
TileWallpaper=0
WallpaperStyle=2
Pattern=
ScreenSaveActive=0

[Control Panel\Desktop\WindowMetrics]

[Metrics]
IconMetrics=76 0 0 0 82 0 0 0 82 0 0 0 1 0 0 0 245 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 144 1 0 0 0 0 0 1 0 0 0 0 84 97 104 111 109 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
NonclientMetrics=84 1 0 0 1 0 0 0 16 0 0 0 16 0 0 0 18 0 0 0 18 0 0 0 243 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 188 2 0 0 0 0 0 0 0 0 0 0 65 114 105 97 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18 0 0 0 18 0 0 0 243 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 188 2 0 0 0 0 0 0 0 0 0 0 65 114 105 97 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18 0 0 0 18 0 0 0 243 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 188 2 0 0 0 0 0 0 0 0 0 0 65 114 105 97 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 188 2 0 0 0 0 0 0 0 0 0 0 65 114 105 97 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 243 255 255 255 0 0 0 0 0 0 0 0 0 0 0 0 188 2 0 0 0 0 0 0 0 0 0 0 65 114 105 97 108 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
PaddedBorderWidth=0

[MasterThemeSelector]
MTSM=DABJDKT
ThemeColorBPP=4

[VisualStyles]
Path=
ColorStyle=@themeui.dll,-855
Size=@themeui.dll,-2019

Book Cover Photoshoot

Now that I have a signed contract for my “RESTful Applications with Microsoft Azure” I went for my for my book cover photoshoot of the author portrait that is the Wrox ‘signature’.

This is the one that seems to be getting the most positive feedback:

These are the others that have been sent to the publisher:

Thursday, February 12, 2009

REST goes travelling

I am taking my “Separating REST Facts from Fallacies” on the road next week:

NxtGenUG at Microsoft Research Cambridge

Tuesday 17th February 2009 (map)

 

LondonDotNet User Group at Conchango

Thursday 19th February 2009 (map)

Tuesday, February 3, 2009

Community Code Spike

After the Open Space Coding Day last Saturday there were a number of discussions about how the event format might be improved. One of those discussions got me thinking about how you might combine the extreme programming practice of Code Spiking along with the collaborative style of Open Spaces.

So I decided that I would try out another experimental format, which I am going to call “Community Code Spike”. The recipe is as follows:

  • Get 6 to 8 developers together.
  • Pre-define a topic (fairly specific rather than generic).
  • One day to spike code

I was inspired by a conversation with Jamie Thomson to propose “working out what is the best way to abstract the DAL in a web application to make the business logic agnostic to being self-hosted or Azure hosted.” as the first spike topic – to be held at the MoveMe.com offices on 14th March at Buckingham Gate, London.

All notes and code will be checked-in to Google Code under the MIT license in order that the community has access to the output of the spike.

At the moment, I have 6 developers lined up:

  1. Alan Dean
  2. James Enock
  3. Jamie Thomson
  4. Simon Evans
  5. David de Florinier
  6. Yucel Evrimer

I suspect that 6 will be a good number for the event – I also think that it is the appropriate number for our offices (any more and we would need to find a bigger place to host it).

Like the Open Space Coding Day, this will not be a one-off event. On the other hand, it is a format that suits ad-hoc arrangements so I won’t be hosting it on a schedule. Instead, I will put together groups of people according to the topic ‘at hand’ based on what I know of their interest and work out what is the right date for that group.

If you like the idea – why not try it out yourself?

About Me