Posted: February 3rd, 2011 | Author: jonny | Filed under: Agile, coding, computing, visualisation | 4 Comments »
The following article, written by myself and my colleague, Matt Simons, was published in the December 2010 issue of the Cutter IT Journal and is re-produced here with kind permission. It was also the subject of a talk we delivered in Santa Clara in September.
The landscape is changing
Since the dawn of the software era, systems have generally followed a lifecycle of develop/operate/replace. For the type of systems our company, ThoughtWorks, specializes in (typically built over the past 10-15 years), organizations expect as much as 5-10 years between significant investments in modernization. And some of the oldest core systems have now reached 40+ years — far longer than the average life-span of most companies today!
IT assets are relatively long-lived largely because modernization often represents a significant investment that doesn’t deliver new business value in a form that is very visible to managers or customers. Therefore organizations put off that investment until the case for change becomes overwhelming. Instead, they extend and modify their increasingly creaky platforms by adding features and making updates to (more or less) meet business needs.
For decades, this tension between investing in modernization versus making incremental enhancements has played out across technology-enabled businesses. Every year some companies take the plunge and modernize a core system or two, while others opt to put yet another layer of lipstick on the pig.
Read the rest of this entry »
Posted: February 1st, 2011 | Author: jonny | Filed under: Agile, computing, Project management | 1 Comment »
I was reminded today of a presentation I’d put together to help project managers who are new to Agile understand how to use the ubiquitous “burn-up” or “burn-down” chart. Since some people seemed to like it I thought I’d share it with a wider audience.
Posted: June 23rd, 2009 | Author: jonny | Filed under: computing, consulting, lean, productivity | 1 Comment »
Adopting a new development methodology is less about process change and more about attitude change. The binder is useful, but the mindset is vital.
Much of my work over the last few years has involved helping organizations “adopt” Agile. It is, after all, a poor, unloved orphan and needs to find a good home. The key to whether the new approach sticks doesn’t seem to be affected by how many checklists, process maps or charts of roles and responsibilities we provide; what matters is whether an organization can adjust their collective and individual attitudes.
There’s a great quote from the 14th Dalai Lama that says:
“If you don’t like what’s happening in your life, change your mind.”
Beyond the double meaning of “if you don’t like it, decide to like it” is the more important idea that to change your behaviors you need to change your thoughts.
Read the rest of this entry »
Posted: September 20th, 2008 | Author: jonny | Filed under: build, consulting, lean, philosophy, productivity | 1 Comment »
I always struggled to see how what Lean teaches us about pull systems can be applied to software development processes. That was until I had an “Aha!” moment a little while ago helping a client apply lean and agile principles to their delivery process.
The big fat lie
I understand how queuing theory can help identify and reduce bottlenecks in processes and have used finger-charts and kanban-boards to do this for a while, but I still find calling this a “pull system” to be slightly disingenuous. All that’s happening is that more “stuff” is being pushed based on a trigger when certain buckets get too low. This reminds me of my annoyance with early technologies on the web that were touted as being “push” but were really just “repetitive-pull” (but not in a good way). I’ve never seen a software organization where the developers have said to the business or product people “we’ve got nothing to do, can you think up some new projects or features for us please?”.
Read the rest of this entry »
Posted: August 12th, 2008 | Author: jonny | Filed under: coding, computing | 3 Comments »
Have you ever opened up a file of source code and flinched at the complexity that comes screaming out at you from the screen? Well I’m imagining an IDE plugin that could do the screaming for you.
There are many measures of code that are objective and metrics driven, but there are others that are more subjective and taste based. I can’t tell you from a quick glance how many afferent couplings there are in a given piece of code, but I do have an almost immediate sense of how elegant the code is. In my mind elegance is all about solving complex problems with simple solutions. That’s the art rather than the science of computer programming.
Read the rest of this entry »
Posted: June 12th, 2008 | Author: jonny | Filed under: computing, design, environment | No Comments »
My new favorite t-shirt says “design can change the world”. I got it from a cool little not-for-profit whose cunning designs have a disproportionate impact in solving problems in developing countries.
Their current flagship project, the hippo roller, though not much more than a tough plastic barrel and pulling handle, is beginning to have an immense impact on the role of women in developing societies.
Read the rest of this entry »
Posted: May 9th, 2008 | Author: jonny | Filed under: computing, design, UI | 2 Comments »
I think I first heard the phrase “the first bite is with the eye” from a TV chef, but it applies equally to the software creation process as it does to cookery.
A user’s interaction with a piece of software or web site is as much emotional as it is functional. Compare the soft, warm, fuzzy feeling you get when first interacting with a product from 37 Signals, say, to the stomach churning reaction you get when booting up Lotus Notes, for example.
This immediate emotional response will pervade the whole of a user’s long-term impression of a product, imbuing their relationship with whatever feeling was conjured up in those preliminary interactions. They say that in most job interviews the interviewer makes up their mind within the first 5 minutes. The same is equally true for software.
Read the rest of this entry »
Posted: April 17th, 2008 | Author: jonny | Filed under: build, computing, consulting, visualisation | No Comments »
My most recent project was helping a major online retailer to mature their build process as part of a wider effort to improve their IT effectiveness through the injection of development best practices.
When we came onboard manual intervention was needed for any of their builds or deployments to work and so it was rare for more than a couple of builds or deployments to be completed successfully in a day. Now we often have up to 1,000 builds running every day – what’s more the majority of them now pass!
This article looks at a few of the techniques we’ve had to put in place to enable this transformation and what we’ve learnt along the way.
Read the rest of this entry »
Posted: February 10th, 2008 | Author: jonny | Filed under: coding | 5 Comments »
Discussions have been flying around the ThoughtWorks communication channels on balancing the risk of dynamic languages against the pain of static languages. This got me thinking about the similarities between what makes teams work well and what makes for good code and object interactions.
Read the rest of this entry »
Posted: February 2nd, 2008 | Author: jonny | Filed under: build, computing, environment | 1 Comment »
With Google measuring the efficiency of their code in the amount of gigawatts required to serve it to millions of people, optimizing applications can actually have a positive impact on the world.
Logicalis have put together some advice on how to reduce the impact of IT on the environment. The suggestions range from reducing hardware requirements through virtualization and other consolidation techniques to old favorites like double-sided printing, video-conferencing, electronic forms and turning off your desktop at night.
Read the rest of this entry »