API bet188足球design·academia·agile·agile adoption·analysis patterns·application architecture·application integration·bad things·big data·board games·build scripting·certification·clean code·collaboration·computer history·conference panels·conferences·continuous delivery·database·bet188足球·dictionary·distributed computing magazine·diversions·diversity·documentation·domain driven bet188足球design·domain specific language·domestic·encapsulation·enterprise architecture·estimation·event architectures·evolutionary bet188足球design·expositional architectures·extreme programming·gadgets·ieeeSoftware·infodecks·internet culture·interviews·language feature·language workbench·lean·legacy rehab·legal·metrics·microservices·microsoft·mobile·model-view-controller·noSQL·object collaboration bet188足球design·parser generators·photography·podcast·popular·presentations·privacy·process theory·productivity·programming platforms·project planning·projects·recruiting·188足球比分直播·188足球比分直播refactoring boundary·requirements analysis·retrospective·ruby·scrum·security·software craftsmanship·talk videos·team environment·team organization·technical debt·technical leadership·test categories·testing·thoughtworks·tools·travel·uml·version control·web development·web services·website·writing


All Content

Changes for the 2nd Edition of 188足球比分直播Refactoring

A short summary of the changes between the first and second editions of 188足球比分直播Refactoring

5 September 2018


The State of Agile Software in 2018

On the surface,the world of agile software development is bright,since it is now mainstream.But the reality is troubling,because much of what is done is faux-agile,disregarding agile's values and principles.The three main challenges we should focus on are: fighting the Agile Industrial Complex and its habit of imposing process upon teams,raising the importance of technical excellence,and organizing our teams around products (rather than projects).Despite the problems,the community's great strength is its ability to learn and adapt,tackling problems that we original manifesto authors didn't imagine.

25 August 2018


The Second Edition of "188足球比分直播Refactoring"

I'm finishing a new edition of my 188足球比分直播Refactoring book.Here's details and periodic memos about my work.

1 June 2018


How to break a Monolith into Microservices

by Zhamak Dehghani

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 and subject to frequent change.These services should be large at first and preferably not dependent upon the remaining monolith.We should ensure that each step of migration represents an atomic improvement to the overall architecture.

24 April 2018


The Practical Test Pyramid

by Ham Vocke

The "Test Pyramid" is a metaphor that tells us to group software tests into buckets of different granularity.It also gives an idea of how many tests we should have in each of these groups.Although the concept of the Test Pyramid has been around for a while,teams still struggle to put it into practice properly.This article revisits the original concept of the Test Pyramid and shows how you can put this into practice.It shows which kinds of tests you should be looking for in the different levels of the pyramid and gives practical examples on how these can be implemented.

26 February 2018



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 scope.

16 January 2018


How to extract a data-rich service from a monolith

by Praful Todkar

When breaking monoliths into smaller services,the hardest part is actually breaking up the data that lives in the database of the monolith.To extract a data-rich service,it is useful to follow a series of steps which retain a single write-copy of the data at all times.The steps begin by making a logical separation in the existing monolith: splitting service behavior into a separate module,then separating data into a separate table.These elements can be separately moved into a new autonomous service.

30 August 2018


Using a command line script to export from OmniGraffle

A quick post on how I did the export script using AppleScript and Ruby

21 August 2018


Serverless Architectures

by Mike Roberts

Serverless architectures are application bet188足球designs that incorporate third-party "Backend as a Service" (BaaS) services,and/or that include custom code run in managed,ephemeral containers on a "Functions as a Service" (FaaS) platform.By using these ideas,and related ones like single-page applications,such architectures remove much of the need for a traditional always-on server component.Serverless architectures may benefit from significantly reduced operational cost,complexity,and engineering lead time,at a cost of increased reliance on vendor dependencies and comparatively immature supporting services.

22 May 2018


The Agile Fluency Model

by James Shore and Diana Larsen

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 proficiencies,and key metrics.

6 March 2018


Products Over Projects

by Sriram Narayan

Software projects are a popular way of funding and organizing software development.They organize work into temporary,build-only teams and are funded with specific benefits projected in a business case.Product-mode instead uses durable,ideate-build-run teams working on a persistent business issue.Product-mode allows teams to reorient quickly,reduces their end-to-end cycle time,and allows validation of actual benefits by using short-cycle iterations while maintaining the architectural integrity of their software to preserve their long-term effectiveness.

20 February 2018