during: 2012

tags

API design · academia · agile · agile adoption · agile history · analysis patterns · application architecture · application integration · bad things · build scripting · certification · clean code · collaboration · conference panels · conferences · continuous integration · database · delivery · design · dictionary · distributed computing magazine · diversions · diversity · documentation · domain driven design · domain specific language · domestic · encapsulation · enterprise architecture · evolutionary design · extreme programming · gadgets · ieeeSoftware · internet culture · interviews · language feature · languageWorkbench · lean · legacy rehab · metrics · microsoft · mobile · model-view-controller · noSQL · object collaboration design · parser generators · photography · podcast · popular · presentations · process theory · productivity · programming platforms · project planning · projects · recruiting · refactoring · refactoring boundary · requirements analysis · retrospective · ruby · scrum · software craftsmanship · talk videos · team environment · team organization · technical debt · technical leadership · testing · thoughtworks · tools · travel · uml · version control · web · web services · website · writing

2012 · 2011 · 2010 · 2009 · 2008 · 2007 · 2006 · 2005 · 2004 · 2003 · 2002 · 2001 · 2000 · 1999 · 1998 · 1997 · 1996

All Content

Selecting a Mobile Implementation Strategy

by Giles Alexander

The sudden and rapid explosion of mobile technology in the past five years offers huge opportunities. While it seems likely that a number of mobile platforms will continue to thrive, mobile customers are demanding a very high quality of user experience from their applications. This article presents two strategies for implementing a mobile channel that will assist in balancing user experience and platform coverage while also providing a path forwards for your apps.

21 May 2012

article


TestPyramid

The test pyramid is a concept developed by Mike Cohn, described in his book Succeeding with Agile. Its essential point is that you should have many more low-level unit tests than high level end-to-end tests running through a GUI.

1 May 2012

bliki


The Evolving Panorama of Data

Rebecca Parsons and Martin Fowler

Our keynote at QCon London 2012 looks at the role data is playing in our lives (and that it's doing more than just getting bigger). We start by looking at how the world of data is changing: its growing, becoming more distributed and connected. We then move to the industry's response: the rise of NoSQL, the shift to service integration, the appearance of event sourcing, the impact of clouds and new analytics with a greater role for visualization. We take a quick look at how data is being used now, with a particular emphasis from Rebecca on data in the developing world. Finally we consider what does all this mean to our personal responsibilities as software professionals.

18 April 2012

video


NosqlDistilled

Over the last few months I've been helping my colleague Pramod Sadalage work on a book on NoSQL technologies to be titled NoSQL Distilled. (You may know of Pramod's work on refactoring databases and evolutionary database design.) In the last year we've been doing a few projects that have used NoSQL technology, and we think it's going to play an important role in the next few years of software development.

17 April 2012

bliki


The Future is not NoSQL but Polyglot Persistence

Martin Fowler and Pramod Sadalage

An infodeck on the future of data storage in the enterprise, written primarily for those involved in the management of application development. Explains why relational databases have been the dominant, why NoSQL is challenging this assumption and sketches out the future of Polyglot Persistence, where multiple data storage technologies will be used for applications depending on their varied needs.

7 February 2012

pdf


CharityCodeJam

Over the last couple of years several of my colleagues have been organizing code jam events where developers get together to write software for charitable causes. A good example is a regular code-jam in New York that works on RapidFTR. Chris George, a ThoughtWorker based in New York, helped organize a one-off event in New York in August 2010. The group didn't get as much done on the day as they had hoped, but in a bar afterwards decided to try to get together more regularly. Since then they've been meeting every week. It's a small group, still mostly ThoughtWorkers and friends, with a core of 3-4 people rising to a dozen when we've had a big project in town.. (Chris is happy to have more people join the group, so if you are interested drop him an email.)

Many people have found these events to an enjoyable way to use our skills for purposes that we find rather more fulfilling than many day jobs, and a way both to learn new skills and learn from a different group of people. So I thought I should share our thoughts on how to set one up.

25 January 2012

bliki


DiversityImbalance

Although it's easy to become accustomed to it, it's pretty obvious the software development world has some serious issues in diversity. By this I mean that we have some notable differences in proportions of people compared to the general population. One of the most obvious differences is the low proportion of women, which is true all over the world (albeit noticeably less so in China). In the US, where I spend a good chunk of my time, the lack of African-Americans is also obvious. There's a lot been written on why such imbalances might exist, and what might be done about it. But here I want to concentrate on a more fundamental question - does it matter?

11 January 2012

bliki


An Open Letter to Pearson about SOPA/PIPA

When we leared that Pearson, our publisher, was a supporter of the controversial SOPA legislation, Jez Humble and I wrote an open letter of protest. A hundred other Pearson authors co-signed the letter after it was published.

5 January 2012

OrmHate

While I was at the QCon conference in London a couple of months ago, it seemed that every talk included some snarky remarks about Object/Relational mapping (ORM) tools. I guess I should read the conference emails sent to speakers more carefully, doubtless there was something in there telling us all to heap scorn upon ORMs at least once every 45 minutes. But as you can tell, I want to push back a bit against this ORM hate - because I think a lot of it is unwarranted.

8 May 2012

bliki


EditingPublishingSeparation

In my conversations with ThoughtWorks project teams over the last year or so, a regular theme has been the growing impact of content management systems (CMS). They aren't usually seen as helpful, indeed there is a clear sign that they are becoming a worryingly invasive tool - used for more than their core purpose in such a manner that they hinder overall development.

Amongst the other irritations, a common failing is that they keep one copy of each article. This single copy is edited as part of creating the content and published to readers (usually on some kind of state-change flag).

24 April 2012

bliki


TestCoverage

From time to time I hear people asking what value of test coverage (also called code coverage) they should aim for, or stating their coverage levels with pride. Such statements miss the point. Test coverage is a useful tool for finding untested parts of a codebase. Test coverage is of little use as a numeric statement of how good your tests are.

17 April 2012

bliki


PresentationSmells

I've given lots of presentations, and since I go to a lot of conferences I see a lot too. This means I see a lot of problems, where people are doing things that reduce the efficacy of their talks. I've not tried to come up with a comprehensive list, so the ones I'm raising here are just a few things off the top of my head. Like most smells, these aren't always wrong, but should always make you think.

9 February 2012

bliki


SE Radio Podcast with Rebecca Parsons on DSLs

I'm joined by ThoughtWorks CTO Rebecca Parsons, who was a contributer to the DSL book, to talk with Markus Völter about DSLs. We talk about what DSLs are, the differences between internal and external DSLs, and when you should (and shouldn't use DSLs).

26 January 2012


AggregateOrientedDatabase

One of the first topics to spring to mind as we worked on NosqlDistilled was that NoSQL databases use different data models than the relational model. Most sources I've looked at mention at least four groups of data model: key-value, document, column-family, and graph. Looking at this list, there's a big similarity between the first three - all have a fundamental unit of storage which is a rich structure of closely related data: for key-value stores it's the value, for document stores it's the document, and for column-family stores it's the column family. In DDD terms, this group of data is an aggregate.

19 January 2012

bliki


NosqlDefinition

As soon as we started work on NosqlDistilled we were faced with a tricky conundrum - what are we writing about? What exactly is a NoSQL database? There's no strong definition of the concept out there, no trademarks, no standard group, not even a manifesto.

9 January 2012

bliki