Mike Williams outlines some of the main characteristics that make developers and teams perform better than the average.
Robert Godfrey discusses the requirements set at AMQP’s foundation: Applicability, Reliability, Fidelity, Interoperability, Manageability, Ubiquity, explaining how AMQP was designed for the future.
Barry emphasizes the need to continue thinking critically about the processes and practices we embrace, accounting for the context in which they exist, and the importance of reflection and refinement at both the organizational and personal levels.
Joel Semeniuk discusses ways of making better project estimates excluding guessing as much as possible.
James Kovacs explains how to use TDD and BDD to focus the architectural efforts on the high-value areas of the code in order to obtain just-in-time software architecture.
Mario Cardinal explains how to use agile practices to incrementally introduce non-functional requirements into the architecture in order to reduce the complexity of the solution.
Simon Ogle, Alexander Kikhtenko, and Peter Thomas present a case study of a development team transitioning from a waterfall approach to 15 offshore Agile teams over a period of 5 years.
Jamie Wright provides advice on project management based on 37 signals’ software development methodology for those involved in consulting.
Roger Bodamer provides advice on scaling out MongoDB using replica sets and auto-sharding, plus tips for database deployment and scaling use cases.
Jesper Boeg and Guilherme Silveira discuss various Agile anti-patterns which proved not to work for everybody, presenting some Lean principles implemented with Kanban and helping to improve things, resolving possible conflicts with traditional Agile practices, and determining if Lean&Kanban is appropriate for immature teams.
Matthew Simons and Steven Boswell consider that although distributed software development is hard, it is a strategic capability that a company should consider, presenting a framework and Agile practices that help building a healthy distributed environment.
Keith Braithwaite proposes ways to integrate ideas successfully applied in software in the past but later discarded, like analysis, architecture, and modeling, into current technology and practice.