my agile approach to weekend projects

Media_httpwwwalthough_xxbbi

Four years of designing user interfaces in an agile software development environment and some things just sink in, inherently forming work habits that affect your personal projects.

Recently I decided to seriously learn CSS and perhaps a smidgen of JavaScript. My personal domain at www.although.net.au is the playground for web and user interface design experiments. The usual focus for my experiments is the display of my personal projects or commercial folio.

My goal for this project was to arrive at a design that uses CSS for all layouts on the page. However I digress as the learning continues and the subject of this post is my agile approach to weekend projects.

Previous projects involved numerous pages of sketched ideas that steadily increased in fidelity until 80-90% of the design was resolved. Sketching would be done over a period of days and a large volume would end up as recycled paper. Satisfied with the design, another large chunk of time was spent refining interaction and visual design in my favourite vector program. Once the design period was complete I would: construct my HTML (to the best of the visual editor’s ability); rigorously proof read and test links; and upload the completed files.

We now have a little baby (6 months old of last week – happy birthday sweetheart) in the house and the scope to spend a whole weekend and a majority of weeknights entrenched in my home office is no longer an option. My work needs to be done in short chunks of time – call each chunk of time a sprint if you will.

So I have a goal and I have a clear-ish idea of my content and very little idea of the final look and feel. With these ideas in hand I set about thinking how to apportion tasks into sprints that would vary in length depending on fatherly responsibilities. As a rough guide the longest sprint duration would be measured on time between naps where Mum could take baby for the whole period; approximately 4 hours. The shortest sprint would be about 15 minutes.

In the first few sprints I skipped the conceptual sketching phase and dove straight into visual and interaction design on the computer. The aim was to create a design I could live with and that could easily scale with visual and interaction updates.

With a suitable design plan I used a few sprints to organise and prepare image-based content; this was a massive task and I had to be smart about developing assets for re-use and for a design that would change. These early sprints formed my first iteration and while I didn’t have a shippable product, I had a clear path and a really good plan for the next weekend iteration.

So you get the idea that I am breaking up time between fatherly responsibilities into sprints and each collection of weekend sprints into iterations. Through three iterations I have evolved the interface design through three versions; I have written two versions of copy and reproduced image-based content once. All the changes were planned so each evolution of the design took less time.

Throughout iterations the initial goal remains and while I have implemented funky CSS rollovers on the main navigation, I still need to develop the CSS layout. I am reasonably confident I need a further two iterations to complete the initial goal. I have spiked the home page layout using CSS and have built a working prototype of coloured boxes that behave appropriately.

CSS is pretty darn logical and with time and practice, quite easy to understand; quietly I regret not having learnt CSS sooner. CSS is now evolving in a manner that defies my reliance on HTML tables to achieve a layout. Where design techniques required Photoshop and complex interactions required Flash or JavaScript; CSS is a much better option.

Anyway, back to agile. Working solo on a personal project I think I’ve maintained some semblance to the tenets described in the Agile Manifesto and its principles. As far as an index-carded kanban-ish view of the world, they live entirely in my head. Thinking about agile and reflecting on the outcomes has helped to illuminate my approach to design. While agile is a great approach to software development and as a user interface designer is integral to my professional design process; I find my life and work as a designer much more akin to kaizen.

In the spirit of kaizen (and agile) there’s a bunch of things I want to improve and my backlog lengthens with every viewing. Let me know what you think: www.although.net.au.

The unexamined life is not worth living.
Socrates, in Plato, Dialogues, Apology
Greek philosopher in Athens (469 BC – 399 BC)

Standard