Blog Views
Categories
Archives
- August 2010 (4)
- July 2010 (5)
- June 2010 (4)
- May 2010 (1)
- February 2010 (2)
- January 2010 (4)
- June 2009 (1)
- April 2009 (1)
- March 2009 (1)
- November 2008 (1)
- July 2008 (2)
- June 2008 (1)
- January 2008 (1)
- July 2007 (2)
- June 2007 (1)
- April 2007 (2)
- October 2006 (1)
- June 2006 (1)
- May 2006 (2)
- March 2006 (1)
- January 2006 (3)
- August 2005 (4)
- July 2005 (5)
- June 2005 (4)
- May 2005 (5)
- March 2005 (7)
- February 2005 (5)
- June 2004 (1)
- December 2003 (1)
- September 2003 (1)
- August 2003 (1)
- July 2003 (3)
- June 2003 (1)
- March 2003 (2)
- September 2001 (1)
Feeds
Thoughts on the World
(main feed)
Feedburner XML
iGoogle
My Yahoo
My MSN
Bloglines
XML (direct) Other Feeds
Professional Blog 
Photo Blog 
Photo Album 
Review Pages 
Google Blog Search
21st Century Schizoid Man
My good friend and sometime manager, Mike Rawlins, has just started a new blog ruminating on leadership. In his first post, he discusses the question of how to decide what to do, to “do the right thing”.
Now I’m not sure whether his guidance on decision making process is generic, or whether that process depends on your organisational position and role in determining “the right thing”. I don’t know whether the key difference in our perspectives is between leadership as a manager versus leadership as an influencer, or the difference between managerial and technical leadership, or the difference between synthesising solutions and deciding which to adopt, but Mike’s article portrays a very different perspective to mine.
Mike portrays as key the ability to focus on key issues, and exclude those which are “not relevant”.
In my experience as an architect and technical leader, I spend a lot of time understanding and analysing the different forces on a problem. These design forces may be technical, or human: financial, commercial or political. The challenge is to find a solution which best balances all the design forces, which if possible satisfies the requirements of all stakeholders. It is usually wrong and ultimately counter-productive to simply ignore some of the stakeholders or requirements as “less important” – any stakeholder (and by stakeholders I mean all those involved, not just senior managers) can derail a project if not happy.
Where design forces are either aligned or orthogonal, there is usually a “sweet spot” which strikes an acceptable balance. The problem effectively becomes one of performing a multi-dimensional linear analysis, and then articulating the solution.
However, sometimes the forces act in direct opposition. A good example, currently personally relevant, is system security, where requirements for broad, easy access directly conflict with those for high security. In these cases the architect has to invest heavily in his skills in diplomacy – to invest a lot of time understanding stakeholder positions. One common problem is “requirements” expressed as solutions, which usually hide an underlying concern which can be met many ways, once understood.
In cases of diametrically opposed requirements, there are usually three options:
- Compromise – find an intermediate position acceptable to both. This may work, but it may be unacceptable to both, or it may fatally compromise the architecture.
- Allow one requirement to dominate. This has to be a senior level business decision. As an architect, you then have to be sensitive to whether the outcome is genuinely accepted and viable, or whether suppressing the other requirements will cause the solution to fail.
- Reformulate the problem to remove or reduce the conflict. In the security example the architect may come up with a cunning partitioning of the system which allows access to different elements under different security rules.
Of course, you can’t resolve all the problems at once – that way lies madness. An architect uses techniques like layered or modular structures, and multiple views of the architecture to “separate concerns”. These are powerful tools to manage the problem’s complexity.
It’s also important to remember that the architecture, and its resolution of the various design forces (i.e. how it meets various stakeholder needs) have to be communicated to many who are not technical experts. The technical leader must take much of this responsibility. I have had great success with single-topic briefing papers, which describe aspects like security in business terms, and which are short and focused enough to encourage the readers to also consider their concerns separately.
One area where I do agree with Mike is the need to listen to the voice inside, and carry decisions through with integrity. For an architect, the question is whether the architecture is elegant, and will deliver an adequately efficient, reliable and flexible solution. If your internal answer to this is not an honest “yes”, you need to understand why not, and decide whether you and your users can live with the compromises.
And finally, the architect must protect the integrity of the solution against the slings and arrows of outrageous projects. Monitor in particular those design aspects which reflect compromises between design forces, because they will inevitably come under renewed pressure over time. You have to not only do the right thing, but ensure it is done right.
Non-Sequiteur
About the weird title: Mike is attempting to create his blog based largely on 1970s Prog Rock references. As a tribute to such an excellent idea, I feel compelled to join in (at least on this occasion)!
Integrating External Content with WordPress
I’ve been developing andrewj.com for about 15 years, and although I’m not that prolific I’ve built up quite a lot of content.
I recently converted my blog from an old bespoke (= “custom”, for my American friends) solution to one based on WordPress. However, this created a problem, in that the WordPress model is to hold all content in the database, and that wasn’t the right model for me.
Firstly, I have a number of articles which are very long for a blog post, and I had no interest in restructuring them. I also didn’t want to break external links to the existing articles.
Next, I decided that I wanted the freedom to continue to write in that style. Some of my writing takes several weeks, and it works for me to draft it as separate HTML pages. I also sometimes want to include active content or multiple images, and I don’t want to create a large and unwieldy WordPress database full of such stuff.
Finally, my online photo galleries are managed and generated using Jalbum, and I wanted to find a way of neatly integrating single images into my blog, complete with the watermarks and metadata extraction which Jalbum manages so well, without duplicating that functionality in WordPress.
This is probably typical of many older web sites, but WordPress doesn’t really embrace the integration of external content. This article describes how I solved this problem, and a WordPress plugin I have developed to make my solution reusable.
Posted in code, publications, website and blog
Leave a comment
The Big Blog Split
Well, maybe not exactly a split as such, but a new structure. “Thoughts on the World” is a pretty eclectic mix of professional, personal, humour and photography-related content. However, one reader who follows mainly my “professional” content expressed a wish to see this separate from the more personal stuff. Given that I’m about to add more photography and review content to the blog, it seemed reasonable to try and meet that request.
I have therefore now created a number of new “views” of my blog, and a number of specialist feeds, as follows:
- Thoughts on the World. This is the original and complete blog and feed, and will give you access to all my content, in chronological order. Expect a mix of articles including my observations of the world of software development and architecture, humorous observations, photography and personal announcements.
- The blog address is www.andrewj.com/blog
- The feed is http://feeds.feedburner.com/ThoughtsFromAndrewJohnston

- The Professional Blog. This will focus on professional articles based around my observations of the world of software development and architecture. Articles for AgileArchitect.org will appear here, as will updates on my products and publications, and I may cross-post relevant reviews. You’ll also see any practical announcements relating to my websites and feeds.
- The blog address is www.andrewj.com/blog/pro
- The feed is http://feeds.feedburner.com/StructureOfTheWorld

- The Photo Blog. This will focus on my photos, and photography-related articles and reviews. You’ll also see any practical announcements relating to my websites and feeds. There’s also a separate feed for updates to my gallery.
- The blog address is www.andrewj.com/blog/photo
- The feed is http://feeds.feedburner.com/ImagesOfTheWorld

- The feed for my gallery is http://feeds.feedburner.com/GalleryOfTheWorld

- The Review Pages. This presents my reviews of books, films and music. You’ll also see any practical announcements relating to my websites and feeds.
- The blog address is www.andrewj.com/blog/reviews
- The feed is http://feeds.feedburner.com/ReviewsOfTheWorld

For more details, visit my Blog Views and Feeds page.
Posted in website and blog
Leave a comment
New Blog Now Live – Please Update Your Feed
Hi,
My new blog is now live. This allows a lot more flexibility, including commenting etc.
Please can you make sure you are taking your RSS feed from one of the following:
http://feeds.feedburner.com/ThoughtsFromAndrewJohnston (preferred)
http://www.andrewj.com/blog/index.php/feed/ (straight from my site)
I still need to update some of the links to longer old articles, so please bear with me if these are a bit odd over the next few days. Also you may see some duplicate items in the Feedburner feed – if so, please ignore these, and they should clear shortly.
Thanks, and enjoy the new blog.
Andrew
Posted in website and blog
Leave a comment
Lots of News
Quite a lot of news…
Migration of our web sites and email to the new hosting server is almost
complete. See previous article/rant for some of my findings. After some initial
frustration with my hosting provider (WebFusion) when I discovered the
limitations of their new Linux shared hosting services compared with the old
one, I have to say a big “Thank You” for their efficiency in finding a better
solution for me, and providing me with effective technical support to get it up
and running.
If you do have any problems with our sites or email, let me know…
I’m currently developing a new blog, based on WordPress. This will make it
easier to post “on the fly” than with the current solution, hand-carved from XML
and ASP (now PHP).
When the new blog is running, I’m going to have a regular post for fans of my
photography, so you can see what I’ve been working on. In the meantime, I’ve
updated my gallery pages so they are a bit easier to navigate, bookmark and
search.
And talking about my photography, I’ve recently been accepted by the Alamy
stock agency. So please all rush at once and spend lots of money licensing my
pictures for all those uses you’ve dreamed of but were too polite to mention
See you soon,
Andrew
Posted in personal, photography, publications, thoughts, website and blog
Leave a comment
In Damnation of PHP
<rant>Apologies if the title is a bit strong, but I think it’s the
nearest I can get to the opposite of “In Praise of PHP”
I’ve just spent a week-end migrating my website to a new hosting server. As
part of that process, I had to rewrite all my old ASP code using PHP. Here’s
what I learned:
- The Apache/Linux community have misleadingly changed the meaning of “ASP”.
If you bought a Linux-based hosting service 5+ years ago with “ASP”, it meant
a *nix port of Active Server Pages. That worked for me, as I could develop it
on Windows. Now, if you buy a Linux hosting service with “ASP” it means
“Apache Server Pages”, and the embedded language is Perl. Useless! - PHP has positively the worst combination of features for a language:
- A c-based language’s sensitivity to case, ending semicolons and curly
bracket counts, - None of the protections against errors in the latter that a C++/Java (or
VB) language gives you, like strong typing and forced variable
declaration, - No single-step debugging. Now I accept that this may not be 100% true,
so don’t all write in with the names of all the debuggers I didn’t find in a
quick search for tools on Sunday morning, but certainly I don’t have one at
the moment, - It runs differently on Windows and Linux, and in a way I haven’t yet
understood 100%, so I can only test by uploading to my live
website.
- A c-based language’s sensitivity to case, ending semicolons and curly
That said, I’ve still got it! I’ve managed to convert my blog and my book
reviews, and I’ve actually improved on my old code for the latter. Just please
let me have VB.NET back for my next major project.
OK. </rant>
Posted in code, thoughts
Leave a comment
A Shortage of Analysts?
I’ve just spent two days at the 2008 Enterprise Architecture Conference in London. It was a very high quality event, with a range of speakers covering topics from pragmatic analysis techniques to how to manage knowledge through the life of NASA’s Mars programme, more than any single working lifetime.
Overall there was much less focus on technology (read SOA and modelling tools) this year, and a vigorous and renewed focus on business alignment and business architecture, which, if we can deliver, potentially places architecture where it should be, as the business’s agent.
But there’s a problem. Good business analysis is fundamental to this, yet several delegates bemoaned the current lack of good business analysts. User organisations often struggle to articulate and abstract their needs, and this feeds into all downstream processes. Modelled requirements are an increasing rarity, poorly substituted by imprecise verbal statements in Word or PowerPoint.
The problem is, of course, not unique to analysts, and may have common cause with the equal lack of architects. Senior architects and analysts both tend to have several big birthdays under the belt, and many learned their trade as developers, gaining both practical method skills and the experience of turning ideas into working code. (The majority of exceptions have other “making it work” experience, such as building networks or running data centres.)
But in the current world of ERP packages and large-scale outsourcing, many organisations no longer build anything themselves. The live classroom has been thrown away.
I have worked with a number of good, keen young analysts, but most work for large supplier companies who still have both well-funded training programmes and the breadth of work to build experience and a broad skill set. These guys and girls can do a good job, but at the risk of higher costs and potential conflicts of interest.
We already know that this may reduce organisations’ ability to ensure the right solution to their needs, or assure its quality. Recent observations suggest that organisations who forgoe getting their hands dirty in IT will also suffer an increasing difficulty in creating a clear, concise and structured statement of those needs themselves.
Posted in agile, thoughts
Leave a comment
My Grand Circle Tour
I’ve just added a new section to my photo gallery, and an article describing my recent “Grand Circle” tour of the Southwestern USA: what worked, what didn’t, and how to avoid sleep deprivation and scurvy!
Posted in personal, photography, publications
4 Comments
Using Volume Shadowing with Ntbackup Under Vista
The brain-dead backup function of Windows Vista is enormously annoying. There are known ways to get good old ntbackup working, but they have their limitations. Read this article about my attempts to get round some of those limitations.
Posted in code, thoughts
Leave a comment
Paradigm Shift – Clear Memory Now!
I’ve been musing lately on why we in IT insist on forgetting so much valuable knowledge. I don’t know whether it’s because of our youth-obsessed culture and our focus on the newest and best, because of our tendency to prioritise on-the-job over traditional learning, or whether there’s simply too much in the “architect’s book of knowledge” (ABOK), and we all have to focus on the new to
keep up.
I explore two very different examples: the value of understanding RS232 in this 3G+ world, and some recent discussions on service
reliability, both of which can be resolved using some quite old
knowledge…. (Read More…)
Posted in agile, thoughts
2 Comments

