I'm a fan of Eurogames - a style of approachable, yet thoughtful board games. I like them because you can usually learn and play one in an evening, yet they provide enough strategic interest to play many times. I sometimes get asked more about them and what and what my favorites are. So here is a short article explaining them and an interactive list of the board games on my shelf. I also have a bl
For the past two years, I've been working on a second edition of my book "Refactoring". Here I have details about the new edition and some memos describing my thoughts in the last months of this project. The book is now available and you can buy it from informit (the web presence of the publisher), Amazon, or your favorite book seller. Purchasing the book gives you access to the canonical web edit
What to decouple and when As monolithic systems become too large to deal with, many enterprises are drawn to breaking them down into the microservices architectural style. It is a worthwhile journey, but not an easy one. We've learned that to do this well, we need to start with a simple service, but then draw out services that are based on vertical capabilities that are important to the business a
A Brief Guide to Success with Agile Agile methods are solidly in the mainstream, but that popularity hasn't been without its problems. Organizational leaders are complaining that they’re not getting the benefits they expected. This article presents a fluency model that will help you get the most out of agile ideas. Fluency evolves through four distinct zones, each with its own benefits, required p
Integration tests determine if independently developed units of software work correctly when they are connected to each other. The term has become blurred even by the diffuse standards of the software industry, so I've been wary of using it in my writing. In particular, many people assume integration tests are necessarily broad in scope, while they can be more effectively done with a narrower scop
Thoughtworks, my employer, had some big news to share today. Our founder and owner, Roy Singham, has decided to sell Thoughtworks to Apax Funds - a private equity firm based in London. Apax wishes the current management team to continue running and growing Thoughtworks, using the same model that's driven our growth and success for the last twenty-odd years. Why Roy is selling Thoughtworks Roy Sing
Rhine Valley, Germany 04 Jul 2016 10:19 f/7.1 at 1/125, ISO 100, Sony a6000 with 16-70mm, 55mm-e ©Martin Fowler
Videos of My Talks Most of what you’ll find on this site is writing, but I know that many people enjoy a video experience. I haven’t got into video production, it’s difficult work and not something I find worthwhile. But I do give talks, and often these talks are now captured on video. So I’ve put together this page to pull together all the talks and other video material I’ve been involved in. I d
The dangers of a simplistic session secret A session secret is a key used for encrypting cookies. Application developers often set it to a weak key during development, and don't fix it during production. This article explains how such a weak key can be cracked, and how that cracked key can be used to gain control of the server that hosts the application. We can prevent this by using strong keys an
The User Journey describes a sequence of steps a user follows in order to reach a goal. Some of these steps represent points of contact with a product, demonstrating how the user interacts with it. As we build the journey, the team raises questions and alternative opinions about the user's desires and the product's capabilities. Select a persona. Identify a goal for this persona. Write the persona
An inception is an activity done at the start of a project to gather together the people involved and set a common direction and working style for the on-going work. The lean inception is a focused form of inception, which can be done in a single week. During this time we understand the key features and customers for the product, and build a canvas to formulate the characteristics of a Minimum Via
Data encapsulation is a central tenet in object-oriented style. This says that the fields of an object should not be exposed publicly, instead all access from outside the object should be via accessor methods (getters and setters). There are languages that allow publicly accessible fields, but we usually caution programmers not to do this. Self-encapsulation goes a step further, indicating that al
In programming, the fundamental notion of an object is the bundling of data and behavior. This provides a common data context when writing a set of related functions. It also provides an interface to manipulating the data that allows the object to control access to that data, making it easy to support derived data and prevent invalid modifications of data. Many languages provide explicit syntax to
Towards the end of last year I attended a workshop with my colleagues in Thoughtworks to discuss the nature of “event-driven” applications. Over the last few years we've been building lots of systems that make a lot of use of events, and they've been often praised, and often damned. Our North American office organized a summit, and Thoughtworks senior developers from all over the world showed up t
Synthetic monitoring (also called semantic monitoring 1) runs a subset of an application's automated tests against the live production system on a regular basis. The results are pushed into the monitoring service, which triggers alerts in case of failures. This technique combines automated testing with monitoring in order to detect failing business requirements in production. 1: Ryan Murray coined
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く