Scaling With Agility
December 01, 2016
It’s fifteen years since the Manifesto for Agile Software Development was published. Since then it seems most large companies have made some attempt to make themselves more agile. Either by adding ‘agile’ as another methodology alongside waterfall in their process framework, or embarking on a Transformation Programme, involving plenty of highly-paid consultants who come with a certificate that says they can recite an agile process framework word for word. Of the companies that have had a go at ...
Is Agile Killing the Architect?
July 01, 2016
The formally recognised discipline of software architecture is 20 years old but it’s also a bit of a conundrum: opinions about the questionable value architects add to projects are strongly held and yet job vacancies for architects are as abundant as ever. So which is it? Is architecture in the enterprise misunderstood? or is it living on borrowed time? On 19th May, La Fosse Associates hosted an event at Runway East in London centred on a contentious question: Is the adoption of agile meth ...
The Freemarket Freelancer
June 08, 2015
Movie making, like software development, is a strangely ephemeral business. We debate a series of abstract ideas and then, suddenly, one of them gets the green light and many people are swiftly mobilised, shifting the entire focus of their daily existence to realising the idea. And then it’s done. And all that remains is a kind of multi-media memorial to all that effort. This transience is the reason why both the film and software industries rely heavily on freelance staff. It would be simply im ...
April 26, 2015
Here’s a common scenario: you are out with some former co-workers and one of them asks if you know someone you could recommend for a project they are starting. Beyond the obvious technology or skill matching, what’s the main basis on which you would recommend someone? For most of us it will be something about their attitude, specifically having a positive one, making them good to work with. People who are positive and enthusiastic make dealing with the inevitable vicissitudes of project life bear ...
December 03, 2013
Software projects cost a lot of money. Some of them stretch to sums that would have made Howard Hughes cry like a two-year-old being babysat by Marilyn Manson. It’s lucky that so many are funded by big companies and government institutions with deep, continuously-filled, pockets because otherwise nothing would ever get finished. Yet a lot of very good software is also cheap, even free. Part of the reason projects are expensive is because businesses view software in all the wrong ways and part of ...
No More Rock Stars
October 29, 2013
When I was seventeen I bought a stack of Lou Reed records. I didn’t really know that much about Lou Reed but there was this girl. And she really liked him. And I really liked her. So I needed to get into Lou Reed quickly. I started where everyone starts with Lou reed - the 1972 classic Transformer - by any standards an impeccable piece of work with its heady mix of brash sexual metaphors and delicate vocals. Then I explored forwards through his catalogue and backwards into Velvet Underground terr ...
The Grand High Order of the Easter Bunny
September 01, 2012
I ‘ve talked, rather a lot, about my views on the use of open source software in the big fat corporate enterprise. Because these rambles have been at conferences or in occasional blog posts, the pitch has been aimed at enterprise developers: Use open-source where you can, but do not think of it simply as a “free” resource; give something back to community through promoting it, patching it, extending it and paying for support. Everyone wins. The argument is partly idealistic (make softwar ...
NoSQL in the Enterprise
July 30, 2011
Welcome to part two. Last time we looked at the experience of getting a NoSQL product accepted in an enterprise environment. Assuming you got through that, the next step is to do something useful with it. Like any tool, you will only get good stuff out if you know how make the best of it. In this case that means not treating it too much like a relational database and understanding the internal nuances. Is this a schema I see before me? For our particular set of requirements we chose MongoDB. We ...
The Secret Sauce
May 29, 2011
Last time, I was talking about what I consider to be the general lack of a crisis in software development. And it got me thinking - if there is no crisis in software development, no inherent flaws in our tools or our methods, then there must somehow be a way to convey the appropriate use of these tools and methods in order that everybody could get it right every time. If the Enterprise Architectcriticised the sauce this time,it was going over his head Ah ha, I thought. A book. A book entitled “ ...
January 30, 2011
So I have a question, or at least I think I do, because maybe the answer is obvious and any sense of there being a question is redundant. Why do so many articles on software development these days (and for some time) start with outlining how truly awful, and late, and expensive it always is? I’ve said it too, often. But it’s getting boring. Statistically, if you were to parachute into a randomly selected IT development project today, the odds that it’s building the wrong thing, or the right t ...
Ungoverning the Business
November 13, 2010
If there’s one aspect of enterprise IT guaranteed to get the dander up it’s Standards and Governance. Some time ago I wrote a short piece on governance called The Governance Apparition making the point that governance should never really be seen as separate and distinct from ‘doing things’. If a company has a process for ‘doing things’ and an internal body (usually architecture) tries to ‘govern’ the outputs of that process the governance will fail. It will fail because it’s almost impossible ...
May 17, 2010
Whenever anyone gets caught up with, or overly excited about, a software product, design pattern, or piece of technology, the phrase most often used to warn us over-using it is: To a man1 with a hammer, everything looks like a nail It’s a tired and worn out phrase but, on the surface at least, it seems like good advice. One tool cannot do all jobs, there are no silver bullets. It’s not wise to artificially constrain your effort by starting out with an inappropriate implement. But how can ...
November 03, 2009
About four years ago I sat in a meeting that had finished early. We were chatting away and the subject turned, as it always does, to the lamentable state of IT. In the preceding weeks I’d asked finance to run me off a number of reports showing just what we were spending on various aspects of our integration architecture. They made pretty scary reading. Wherever we had invested significant funds to improve and mature our infrastructure we were now spending significantly more and taking longer per- ...
Gangstas Don't Scale
June 19, 2009
A common anti-pattern in distributed systems design comes about because of the belief that scale is easily achieved by making all communication asynchronous. And to be fair, there is some logic to why this misconception occurs. If you take the real-life analogy of making a phone call as a synchronous option for communication, with sending a letter as its asynchronous counterpart, then you can more efficiently increase a team’s workload (assuming the team performs simple, repetitive, tasks), in pr ...
Was that Tactegic or Stractical?
March 08, 2009
You’ve been assigned to a project. The requirements are well understood and they make sense. The team is capable and the project manager reasonable. The one thing you don’t have, because we never do, is time. This is a project with a David Beckham date. The David Beckham date is a term I use for an immoveable launch target. I once worked on a project where David Beckham had been booked to do the release publicity. That pretty much fixes when you need to be done. Firstly, he isn’t going to be abl ...
Make room for Functional Programming (2)
October 12, 2008
This is part two, of a two part look at functional programming (FP). The first article examined some of the concepts and terms used. This piece puts them into practice in a worked example. Proponents of FP focus largely on its mathematical purity and its promise of reducing the bottlenecks inherent in the stored-program model of logic/memory proposed by John Von Neumann (AKA “how computers work now”) and moving more towards models put forward by people like Alonzo Church and John Backus. I say t ...
Make room for Functional Programming (1)
August 25, 2008
I’ve spilt this post into two so I can cover one concept from a couple of different angles. What I want to do first is explain the major elements of Functional Programming (FP) to those who, like me, might struggle with a lot of mathematical hoopla, Haskell and Lisp code, and second show by simple example where all this stuff is useful in the real world. Meaning I have struggled through the hoopla to write this so you don’t have to - you’re welcome. Why Functional Programming? Why should you b ...
Dancing with the Reuse Fairy
August 13, 2008
Not long after graduating from college I went on my first skiing holiday with a large group of work colleagues. I managed to get a couple of lessons on a dry slope beforehand and turned up at the resort just about able to put my boots on, do a fairly hopeless snow plough, and carry my skis without thwacking anyone in the head every time I turned around. We were all new to the sport and so block-booked lessons for every morning of our ten-day stay, but after two days of tuition I cancelled mine an ...
Embracing the Third Way
August 04, 2008
I had the honour recently to be invited to sit on the judging panel of the OpenSpaces Developer Challenge, an international competition to encourage the creation and open-source sharing of innovative ideas in grid, cloud computing and next-generation middleware, based around the GigaSpaces eXtreme Application Platform. If the objective of the organisers was to illustrate just how diverse the uses are for this kind of technology it certainly succeeded in that respect. Unfortunately, for the judge ...
Strategy for the Irretrievably Pragmatic
July 05, 2008
My Dad used to say that the reason many politicians are so totally ineffectual is because of the ironic and paradoxical fact that to be a good politician you need to be able to wield power wisely, and yet those who are drawn to power are often, by that fact alone, the worst people to be given it. He still says it, but these days I might counter with the thought that it’s just possible some of them go into politics to make the world a better place and get corrupted along the way, having to deal wi ...
April 28, 2008
Of all the system qualities debated by architects and developers, scalability is perhaps the one that has the greatest reputation for being mysterious and poorly understood. And if you want to avoid unnecessary work in the future, it’s also one of the most important. Except for adding new, or modifying existing, functionality I’d suggest meeting the growth demands of a scaling business ranks highest amongst the work-creating aspects of corporate enterprises. A clue to the mystery (he somewhat ob ...
The Fallacies of Agile
April 26, 2008
Update of original essay from April 15, 2007 A Project Management Office I used to work with recently put out some statistics on the current portfolio of active business change initiatives. Eighty-one percent of them are being delivered using an “agile” methodology. If you’re an agile proponent this could be taken as a measure of some success - clearly this is a culture that embraces a responsive and intimate relationship with its business. And yet, on closer inspection, not one of these project ...
Dijkstra's Shortest Path
January 15, 2008
By any measures, Edsgar Wybe Dijkstra was a remarkable man - one of the worlds undisputed leading computer scientist at the end of the 20th century, inventor of an operating system called “THE”, that could have come straight from the script of one of the Airplane movies (“does it run on THE? The what? The THE.”), long term chairman of his own fictional company that he described as the “most miserable business ever conceived” and originator of the meme-phrase “[insert pet hate here] considered har ...
A Loose Coupling Strategy
October 18, 2007
When tactical or political pressures mean you can’t rewrite or restructure your applications in line with a best-practice architecture, or apply strategic measures with much effectiveness, then you don’t have many options to make an architecture function meaningful. One approach that I have employed with some success is to apply a refactoring strategy to legacy applications with the aim of creating a situation that supports the ‘right’ kind of change later. The majority of refactoring affects th ...
Enterprise Design Debt
October 08, 2007
I think the question I get asked most often is how to manage the constant struggle between IT trying to deliver something to quality and budget, and the business wanting everything yesterday. When a project is late, I have yet to see a business representative say that they want the good version next week, over the not-so-good version today. In fact the conversation tends to go along the lines of we’ll take the tactical version and launch that today, and install the strategic version later. Except ...
SOA Myth and Mystery
September 19, 2007
Update of original essay from May 14, 2007. Service-orientation is a good, but old, idea and the benefits it heralds are great indeed. Like all bandwagons that have come before, it’s attracted more than its fair share of misinformation, consultant-speak, and myth. Search for the one true definition on Google and you’ll find plenty, walk into any corporate strategy meeting and they’ll be working themselves up into a frenzy over it, ask a consultant for advice on it and they’ll look surprised that ...
Fractal Amplification (1)
August 31, 2007
My favourite definition of technical architecture is simply that it’s the software delivery discipline that attempts to ensure the non-functional and strategic requirements are met. And further, I see the strategic and non-functional requirements as essentially the same thing. Whenever we talk about strategic requirements we’re really talking about future capability - a description of support for future needs, whilst behaving in future-compatible ways, that are generally appropriate for the kind ...
August 07, 2007
One of the serious dilemmas you face after working in software for a bit is the management/technical career choice. On the one hand you want a big salary, fancy car, funds for your particular vice/hobby, etc. but on the other hand it’s hard to let go of actually cutting the code and seeing things happen. As an ex-manager of mine once said - you don’t see many fifty year old programmers. Personally I think that’s a shame, because hackers that have been around the block a few times are so much more ...
Hold on a tick
July 18, 2007
This week I’ve been re-reading John Maeda’s book The Laws of Simplicity. It’s a handy size to read on the train and contains a number of useful mnemonics for adding a sense of elegance to your design. The section that I often quote to others relates to how to deal with delays, as they may be perceived by users and customers. The themes are important enough that I feel the need to restate my own version of them as they apply to software architecture. Let’s say you are building a web shop. Potenti ...
June 27, 2007
This is the third of three articles on the space-based architecture. The first was a general introduction, and description of a commercially deployed example, the second looked at how the SBA supports Agile because of its complimentary nature to how businesses think and work, and this final episode looks at some of the subtle technicalities of the SBA. Before I start, let me make clear my relationship with the SBA - I am not connected in any way with Gigaspaces (the originators of the formalised ...
June 06, 2007
This is the short version of the story of my experience with Space-based Architecture. Being the instigator for one of the most often referred-to commercial implementations of an SBA and unusually an implementation outside of the financial trading sector, where the approach is more mainstream, it’s appropriate that I cover not just its implementation, but why it seemed like a good idea in the first place. I was Head of Architecture & Design at Virgin Mobile in the UK until shortly after it w ...
The Little Language
May 28, 2007
I’ve talked quite a bit about domain-specific languages (DSL) in other articles, and I freely admit that I am very excited about the concept at the moment, but I’ve not found much on the web that really gets to the nub of why they might be important to the future of software development. There’s a pretty good article in the Linux Journal and Martin Fowler’s post covers the basics, but nearly all the others whiz through the subject, saying little more than Yacc and VBA in Excel, are good enough e ...
Doing it right can mean doing it wrong
May 23, 2007
I’ve found that one of the best ways to describe how it feels to be doing software development properly is that it’s like a continuous unclenching of the buttocks. There’s a wondrous sense of sphincter-release when you realise that doing it well means mostly doing all the things that got you to fall in love with it in the first place. In essence, you are free to kick back and get on with the job of making good, working, extensible, lovely-looking code - as long as you constantly carry a syringe ...
May 01, 2007
Anyone who has been in the software industry for a decent period of time is bound to have come across at least one Lisp fanatic, or Lispian. They are rare beasts, for sure, but what they lack in numbers they more than make up for in dedication to the object of their fanaticism. Unlike Java or C# hackers Lispians have a real air of self-satisfaction about them; they aren’t just passionate about the prospect of using a neat tool for cutting code, they’ve been to the top of the mountain and they’ve ...
The engineer that wasn't there
April 10, 2007
I’ve never been that easy with term software engineer. I use it, and have been proud to have been one in my career, but it’s the connotations that come with the word engineer. Real engineers work, for the most part, with physical, mathematically predictable issues. They build roads, design machines, bridges, skyscrapers, operate lathes. Like software projects, engineering projects overrun in time and cost, but that’s because human beings, with their posturing, politics, aspirations and games are ...