I’ve been involved in enterprise software for two decades and while we’ve seen huge technological change during that time, the relational database has been a constant figure. Previous attempts to dethrone relational databases have failed, but some people think the new rise of NoSQL databases will finally consign relational databases to history. While I think relational databases are going to an important part of the landscape for a long time, I do think that there is a big change coming in the database field.
I’ve been collaborating with my colleague Pramod Sadalage, on exploring and explaining this shift. For a quick introduction into what is happening, take a look at our infodeck on why we think the future is not so much NoSQL but more that of Polyglot Persistence. For more depth take a look at our new book: NoSQL Distilled. On this site you can find more material by looking at the nosql guide.
Developing for Mobiles
Over the last couple of years, we’ve seen mobile development become an increasing part of our work at ThoughtWorks. A habitual question is how to deal with the many kinds of mobile devices that are out there. Recently I published an infodeck on developing software for multiple mobile devices. This explores the dangers of a naive cross-platform approach, explores the trade-offs between multiple native apps versus a web app, and looks into hybrid approaches.
In a complementary article Giles Alexander writes about how to allocate effort across different platforms . He outlines two opening gambits - laser focuses on doing a single platform really well while cover-your-bases maximizes the number of platforms to aim at. He talks about the choice between these openings and how to build on them. Giles is also the maintainer of Calatrava - an open-source framework to assist building hybrid mobile applications.
I discovered ThoughtWorks in 2000: then a small American company whose
philosphy of software development was remarkably similar to my
own. Now we’ve grown to around 1500 people world-wide, but kept the
values that make us special. My colleagues have built critical systems
for many clients in that time, and I’ve learned many lessons from
them. While doing this, we found we often didn’t have the tools we
needed, so we started to build them. This led to open-source tools
such as CruiseControl and Selenium, and to products. We have
Mingle for project collaboration and mangement, Go for Continuous
Delivery, and Twist for automated functional testing.
Despite the Great Recession, the last couple of years have been our
most successful - and we are always looking for more people to join
For a long time I’ve been a champion of Continuous Integration which
reduces the integration risk by integrating early and often. We’ve
found CI to be a core technique at ThoughtWorks and use it almost all
the time. While this is useful, there was still risk present from
software that works in the development environment to getting it to
work in production.
As a result we developed techniques to reduce this risk, moving closer
to our aim of building software in such a way that we confidently
deploy the latest builds into production whenever there is a business
need. We find this improves feedback, reduces risk, and increases the
visibility of project progress.