menu

Blogs

Lots of our people have lots of opinions. Here are just a few of them

ThoughtWorks embraces the individuality of the people in the organization and hence the opinions expressed in the blogs may contradict each other and also may not represent the opinions of ThoughtWorks.

photostream 80

Wakefield, MA

Martin Fowler
20 December 2014

Original Link

Agile Architecture

A couple of weeks ago I did a joint talk with my colleague Molly Bartlett Dishman about the interaction of agile software development and application architecture. We talk how these two activities overlap, explaining that architecture is a vital part of a successful agile project. We then move on to passing on tips for how to ensure that the architecture work is happening.

This talk was part of ThoughtWorks’s “Rethink” event in Dallas. There are also excellent talks by Brandon Byars on how enterprises should be restructured to take advantage of agile thinking and by “Pragmatic” Dave Thomas on…

Martin Fowler
18 December 2014

Original Link

Testing in the Medical domain

I had the opportunity recently to do some testing, though for a very short time, in the Medical domain - something that I have always aspired to. I learnt a lot in this time and have gained a lot of appreciation for people working in such mission-critical domains. 

Some of these experiences have been published here as "A Humbling Experience in Oncology Treatment Testing" on ThoughtWorks Insight. Looking forward for your comments and feedback on the same.

noreply@blogger.com (Anand Bagmar)
16 December 2014

Original Link

APIs should not be copyrightable

Last month, the Electronic Frontier Foundation (EFF) filed an amicus brief with the Supreme Court of the United States, asking the justices to review an earlier lower court decision that allows APIs (Application Programming Interfaces) to be copyrightable. I'm one of the 77 software professionals who signed the brief although rather intimidated by a group that includes Abelson &amp Sussman, Aho & Ullman, Josh Bloch, Fred Brooks, Vint Cerf, Peter Deutsch, Mitch Kapor, Alan Kay, Brian Kernighan, Barbara Liskov, Guido van Rossum, Bruce Schneier, and Ken Thompson.

The original lawsuit was brought by Oracle against Google claiming that Oracle…

Martin Fowler
16 December 2014

Original Link

Adjusting Your Interaction Style

This is the fourth part of a series on Leading and Guiding Groups. Previously I wrote about how a leader has choices to make to build self-reliance and ownership as well as managing safety and performance.

In a dynamic environment a team needs to be continually learning. A team that isn’t risks making ill-informed choices, waiting to fail.

Take time to look at how and what your team are learning and help them focus on the right things. Adjust your style to support, amplify and adapt to the growth of your team.

Learning in a team environment

Whilst…

noreply@blogger.com (Dan Abel)
15 December 2014

Original Link

Replacing Throwing Exceptions with Notification in Validations

If you’re validating some data, you usually shouldn’t be using exceptions to signal validation failures. Here I describe how I’d refactor such code into using the Notification pattern.

Martin Fowler
9 December 2014

Original Link

Garmin Oregon 600

I recently bought a Garmin Oregon 600 handheld satnav (GPS) and took it on a vacation, hiking in Switzerland. I find it fun to use, a worthwhile upgrade on my earlier Garmin 60 CSx. It has a bright, clear screen, good battery life, and you can easily find decent open-source topo maps to put on it.

more…

Martin Fowler
8 December 2014

Original Link

A Tech Lead Paradox: Technical Needs vs Business Needs

Agile Manifesto signatory Jim Highsmith talks about riding paradoxes in his approach to Adaptive Leadership. A leader will find themselves choosing between two solutions or two situations that compete against each other. A leader successfully “rides the paradox” when they adopt an “AND” mindset, instead of an “OR” mindset. Instead of choosing one solution over [...]

Patrick
8 December 2014

Original Link

photostream 79

Panchgani, India

Martin Fowler
7 December 2014

Original Link

Solutions for "large, complex projects" in the enterprise that don't work

As I posted earlier, "large, complex projects" in the enterprise tend to suffer from problems of alignment and overconfidence.

Here are some typical "solutions" that don't work:

Delegate risk to the suppliers by putting legal penalties in the contracts.  If anything goes wrong, it will be the supplier's fault.


Add more document "controls".  If anything goes wrong, we can point back to the documents.


Spend more time in abstract planning up front.  We can flush out any problems before we start.  If anything goes wrong, we can't be faulted for not planning enough.



Lock things down early.  Then we…

Jason Yip
6 December 2014

Original Link

Cocktail party facilitation

A common ground rule for facilitated group sessions is "one person speaks at a time".

The rationale is that it's easier to understand a single-threaded conversation, it addresses people being interrupted, etc.

I wonder if, at least in some cases, this rationale is flawed.

Single-threaded conversations are unnatural because they imposed a centralised structure.  How might a more natural, decentralised facilitation approach look?

What if your group session was facilitated like a cocktail party or other similar social gathering?

People would have conversations based on what they want to talk about with whom they want to talk to.  Some conversations…

Jason Yip
5 December 2014

Original Link

New recording of Architecture without Architects

In September Michael Tiberg invited me to give my Architecture without Architects talk at the excellent FooCafe. The talk was recorded and the video is available on Youtube.

Erik Doernenburg
3 December 2014

Original Link

Sony a6000 with 16-70mm lens

A few months ago I bought a Sony a6000 camera because I was tired of the weight on my Canon DLSR. Here’s my informal review of the camera paired with the 16-70mm lens, which outlines why it’s now the camera I like to use most of the time.

Martin Fowler
3 December 2014

Original Link

Video of Agile Panel at goto Aarhus

At goto Denmark this year, I was on a panel discussing the past, present, and future of agile software development. I talked about the past, Prag Dave Thomas took a cynical look at the present, and Jez Humble, Katherine Kirk and Tatiana Badiceanu looked at where it was going.

Martin Fowler
3 December 2014

Original Link

Moco 0.10.0发布

前版信息:Moco 0.9.2发布

我很高兴地宣布,Moco 0.10.0发布了。

Moco是什么?

Moco是一个可以轻松搭建测试服务器的框架/工具/程序库。

变更

本次发布最大的变更是加入了Socket的支持。

除了HTTP,Socket是另一种常见的集成方式,对Socket的支持让Moco能够更为全面地对集成进行支持。创建一个Socket的服务器,可以采用socketServer:

  final SocketServer server = socketServer(12306);

与HTTP支持类似,Socket服务器也是需要设定请求以及对应的应答:

  server.request(by("foo")).response("bar");

与HTTP本身支持很多参数不同,Socket只支持与内容相关的部分,比如,text、file、xml、json、match、exist、latency、template等等。更多细节,请参见Socket API的文档

因为增加了不同的服务器类型,Moco独立服务器的启动参数也有所调整,原来的一个start已经不足以满足需要了。在最新的版本中,你可以根据服务类型记性启动,比如,启动一个Socket服务器的方式如下:

  java -jar moco-runner--standalone.jar socket -p 12306 -c foo.json 

HTTP和HTTPS服务器的启动参数分别对应着http和https,为了兼容原有版本,start依然得到保留,但不确定未来是否会长期存在下去。

这个版本增加了一个许多人要求的新特性,在Java代码中可以使用JSON配置文件。这种用法与Moco设计JSON API的初衷有很大差别,但在实际的使用中,确实有很多人这么用,所以,在这个版本里提供了一个更简洁的API,不过,这个API存在于Moco Runner包中:

  jsonHttpServer(12306, file("foo.json"));

在API方面,

  • 增加attachment API,直接对下载附件提供支持。
  • 增加了template提取器的支持,比如,如下代码就会从请求中提取内容作为应答返回值。
      server.response(template("${foo}", "foo", jsonPath("$.book.price")));

在Moco独立服务器和shell版本,增加了版本查询功能,以便对一些外部工具进行支持。

另外,由于JSON Path底层实现的升级,可能会引入一些破坏性的变化,如果你用到JSON Path API,请注意。

更多发布相关信息,请参考Release Notes

感谢

感谢Alex Soto,提供Moco服务关闭的解决方案,增强了Moco服务器的稳定性。
感谢方志刚,提供Moco的Shell版本在Cygwin下运行的支持。

dreamhead
3 December 2014

Original Link

Videos from XConf Manchester

I gave a suite of talks at the ThoughtWorks-organized XConf in Manchester a couple of months ago. They have now put videos up for the three talks I gave (each is around 20 minutes):

  • Agile Essence and Fluency: where I talk about the essential qualities of agile software development and the agile fluency model of Larsen and Shore
  • Continuous Delivery: what this technique is, its ingredients, how it differs from continuous deployment and its three main benefits
  • Microservices: some its common characteristics, its relationship with SOA, how big a microservice should be, the pros and cons of microservices, and…

Martin Fowler
2 December 2014

Original Link

Contract and End-to-End tests for Microservices

Toby Clemson finishes his guide to techniques for testing microservices. He adds two more classes of testing: contract tests test the interface contract of a microservice, end-to-end tests verify the whole system - but are prone to many difficulties. He concludes by looking at how these various kinds of tests should be assembled into an effective test portfolio.

Martin Fowler
1 December 2014

Original Link

Why you want to give up coding

A background story A friend of mine worked as a Tech Lead, let’s call them Jo (not their real name) for most of their career. A few years ago, Jo moved into a management role that involved very little coding. They were no longer working full-time as a developer and they stopped playing a Tech [...]

Patrick
1 December 2014

Original Link

What's the best way to reduce the weight of a car?

We need to reduce the weight of the car we're designing.

So what we'll do is shave 10% off every component.  10% off the wheels, 10% off the engine, 10% off the frame...

OR maybe we'll remove all the passenger seats, the air conditioning unit, the entertainment system, investigate a ceramic engine, carbon fibre frame...

We need to reduce the operating cost of our department.

So what we'll do is ask every team to reduce their budget by 10%.

OR...

Jason Yip
1 December 2014

Original Link

The CIO and M&A, Part I

"It is hard not to be cynical about this. M&A is a great process for creating fees for bankers, and for destroying the value held by shareholders."

-- John Authers, writing in the Financial Times

Industries tend to go through waves of deal-making. Sometimes it is divestiture or separation: sprawling firms that serve different buyers or markets don't achieve much in the way of operating efficiency, and a "conglomerate discount" priced into their equity means there is value that can be released by dividing a firm into multiple businesses. This is something H-P did in the late 1990s, and…

noreply@blogger.com (Ross Pettit)
30 November 2014

Original Link