RSS feed

Linkedin Profile

Tags:
economy
programming
seattle
things that bug me
wall art

Posts by month: 12/08 (2)
10/08 (2)
08/08 (1)
06/08 (2)
05/08 (1)
03/08 (3)
02/08 (1)
01/08 (2)
12/07 (2)
11/07 (1)
07/07 (1)
05/07 (2)
02/07 (1)
01/07 (1)
12/06 (1)
11/06 (1)
10/06 (1)
08/06 (1)
07/06 (1)
06/06 (2)
05/06 (1)
04/06 (2)
02/06 (1)
01/06 (2)
12/05 (3)
11/05 (2)
09/05 (5)
08/05 (5)
07/05 (7)
06/05 (3)
05/05 (6)
04/05 (8)
03/05 (7)
02/05 (7)
01/05 (6)
12/04 (2)
11/04 (3)
10/04 (5)
09/04 (3)
08/04 (5)
07/04 (5)
06/04 (4)
05/04 (4)
04/04 (9)
03/04 (4)
02/04 (3)
01/04 (5)
12/03 (1)
11/03 (14)
10/03 (8)


Week #1
2005-08-01

I'm one week into my thesis. Brief summary of the last 7 days in numbers: thesis pages written 25, KM jogged 68, avg. coffee shots / day 4.5. So all-in-all progress is OK but not great. Only when confronted by writing documents do I recognise the unadulterated pleasure that is hacking on code. Hopefully I'll be back on that in a couple of weeks.

Here's a small taste of the thesis so far - a still rough introduction to the place where cross-cutting code, modelling and requirements traceability meet up:

The "divide and conquer" approach to problem solving allows people to build complex software systems. The de-composition of software code into modules is fundamental to software development. Benefits seen by [1] include manageability, flexibility and comprehensibility. The organisation of software development into a process also produces specialised activities, like project planning, requirements gathering, design and development. These in turn make specialised artefacts like test plans, requirements and design documents and source code.

This specialisation produces the following benefits:

  • A project or system can be de-composed into smaller items of work
  • Items of work can be completed by people with specialised skills
  • Items of work can be monitored separately

This decomposition optimises the ability of people to focus on one part of a problem at once. As noted in [1] one modularisation of source code will optimise one part of a system, usually de-optimising another. This tension is played out in the organisation of software into modules, projects into phases, and information into documents.

It is useful to consider this trade off using the idea of a concern – defined as any thing that must be considered separately and is a relatively well defined entity within software [2]. By dividing the software development process into stages (for example requirements, then design, then development, then implementation), the process optimises concerns like "the requirements" and "the design" over slices of related work, like "bank account withdrawal".

Looking at the de-composition of software into modules, it is also interesting to think about the kind of concerns that are optimised. Classes, components and services all optimise a particular concern – the unification of data and related functionality (class), the encapsulation of cohesive functionality (component) and the description and exposure of functionality through a coarse-grained distributed interface (service). This section examines the concerns that are de-optimised by process and software design so that they are not neatly modularised, called cross-cutting concerns.

1 Parnas, D.L., On The Criteria To Be Used in Decomposing Systems into Modules. Communications of the ACM, 1972. 15(12): p. 1053 - 1058.

2 Kiczales, G., Concern's Definition, aosd-discuss mailing list, Editor. 2003.


More Developers
2005-07-25

I'm continually impressed by brother Joseph's side projects, and never more so than by this Ballmer-themed t-shirt he has made. With the job and the kids, where does he find the time?


Taking a break
2005-07-24

I'm unemployed. I worked my last day at Tesco.com on Friday. It has been a great four years.

This gives me about nine weeks of notionally free time before I start in Redmond, although I'll be up to my ears in thesis work for most of that. Nonetheless, I'd like to take the opportunity to declare this The Summer of Patrick.


Interviews
2005-07-19

Just stumbled across this interview with Kieran Mockford, MSBuild PM, ex-Msft UK and all-around good guy. And if you've exhausted IT Conversations, there's more here, including a great intro to Software Factories by Steve Cook.


A Few Good Men, Mariani Style
2005-07-19

This is the world's funniest post containing the words "L2 cache replacement disciplines". A sample:

"I have a greater responsibility than you could possibly fathom. You weep for your feature, and you curse the performance team. You have that luxury. You have the luxury of not knowing what I know. That your feature's death, while tragic, probably saved bytes. And that my existence, while grotesque and incomprehensible to you, saves bytes. "

Kind of reminds me of QUOTES FROM THE MOVIE "JAWS" IN WHICH "SHARK" IS REPLACED BY "JIMMY PAGE".


Naming collision
2005-07-17

I'm currently working on some demonstration code for my thesis, contrasting my ConcernMaps project with other approaches to separation of concerns. I had planned to use the Feature Exploration and Analysis Tool (FEAT) as one of my comparisons, only to find that a new and improved version was released on Wednesday. It's called ConcernMapper. Argh.


Back from Poland, off to Seattle
2005-07-11

It has been very quiet on the blog front recently, for several reasons. Firstly, we are moving to Seattle in October so I can start work at Microsoft. I'm not absolutely certain what I will be doing yet, but the general idea is that it will i. involve developer tools and ii. be fun. It is great to have it all finally decided so I can concentrate on finishing my Concern Maps project over the next couple of months.

More recently I spent four days in deepest Poland, in a placed called Torun attending my cousin's wedding. As far as I can tell Polish weddings are endurance tests to see just how much vodka, coffee, meat and dancing the human body can take (the answer is about 12 hours). I won't go into too much detail, but the take home points are:

  1. The countryside, buildings and people were absolutely beautiful and I'd recommend a visit to Poland to anyone. Unless they didn't like vodka and/or meat.
  2. There is an Wild West themed restaurant in the town square where it is possible to order a meal "with clapping" for an extra 5 zloty - the waiter told us this was a 'suprise'. It turned out to be the entire restaurant staff yelling and clapping as they served the food. We were all suprised.
  3. Sample menu items at this restaurant: 'Tortured frenchman captured by Sioux' (some sort of drink), 'Jack London's mood with a glint of white fang in his eye' (meat?), 'Killed bison playing dice for his soul, so that his flesh remains in one piece' (not bison), 'Juicy manitou cult chopped with a tomahawk by Alan Pinkerton at high noon', 'Scumbags in Fort Knox uniforms'... I could go on, but you get the idea. Wacky.

We got back from Poland in time to show my family around London for a few days before the terrorist attack on Thursday. I was impressed at how Londoners remained calm in the face of such terrible events, particularly Ken Livingstone's speech.

On the uni front, I finally got my Whidbey beta 2 build finished at 1am last night. Tonight I'm playing around with the Class Diagram Power Toys with a view to using an API to create class diagrams (rather than just building the CD XML myself). This has presented some interesting challenges which I'll post on once I have them beaten.

Lastly, my latest Amazon shipment is the new Spolsky book and Paul Graham's Hackers and Painters, both look good.


Links
2005-07-11
I lost all my bookmarks recently so I'm trying out del.icio.us. I'm just building it as I go along, but you can keep track of my stuff here.
Back to weblog