After a brief family break, I’m back on with Brimham. The first task is to configure a new virtual machine for development – I like a separate Virtual PC install for every project so I can guarantee no version conflicts between third party stuff.
Windows 2003 Enterprise
SQL Server 2008 with all the options
MVC Contrib Release and Extras
Castle Project 1.0 RC3
My next project will be a first for me, being a 100% web, stand-alone portal/application. Here’s my current thinking on its makeup
- SQL Server back-end. This project will go live prior to Azure web services going live so SQL Server 2008 it is.
- ActiveRecord with ActiveWriter. I’ve used these two extensively for the last five months on a client project. Both me and the client have loved the rapid development on offer for such a small investment in learning time. ActiveWriter isn’t flexible enough to support the attributing I’ll need so I’m going to have to do some work on its codebase to allow arbitrary attributes. Man, those classes and properties are going to be attribute-heavy!
- IIS7 and .NET 3.5. My hosting provider provides this and I’ve been building web services on this platform for a while.
- ASP.NET MVC for the ‘web application’ side of things. I’m test driven, can write reasonable HTML and haven’t spent two years (Hi Ollie Venn) learning all the gotchas inherent in WebForms.
- JQuery- you know it makes sense given the above.
- Umbraco – the only content management system I’ve wished I had designed.
- UnFuddle – I’ve been using this as a bug tracking system for a while, and the Agile side of it looks agile enough for me.
Maybe I’m putting the tech before the requirements here, but I control both to a large extent so I can do as I please.
The project kicks off when I get back from the MVP Summit (2nd week of March IOW), and I’ll be blogging here about how I get on, starting with the ActiveWriter modifications.
How about: Guiding a diverse group of people through the conception, creation and deployment of complex systems.
Learning how to do this is not really something that can be obtained by study alone – learning to be a software architect comes about from making practical choices, often against a changing political and technology scene.
After years of designing systems, using a mixture of methods –
- Spec – > Design -> Code and Fix
- Rational Unified Process
- Agile methods
I’ve come to a few conclusions, which I call Marks Philosophy of Software Architecture:
- Listen to what other people have already learned,
- Always listen carefully to alternatives to your own proposal,
- let the technically superior alternative win, even if it’s not your own,
- Manage risks!