The content is roughly related to either process or technology / architecture.
The software industry is changing faster than ever. Now, with microservices becoming more and more accepted as an approach to systems architecture, the rate of change of our industry and of the software we write is getting faster and faster.
In this talk, James explores what this means for developers writing code now. Do we abandon our quest to build quality in? What does it mean for design if we are building software explicitly to throw it away a short time later. Is TDD dead? What does software craftsmanship look like through the lens of replaceable code in small replaceable services?
In short, what does it mean if we are #neverdone?
- I T.A.K.E, May, 2015
- GOTO Amsterdam, June, 2015 (slides)
- Devoxx Poland, June, 2015
- Agile on the Beach, Cornwall, September, 2015 (video)
Go faster than your competitors. That’s the promise of microservices – deploy faster, scale faster, be more robust. It’s all about outcomes and the way your organisation is structured has a tremendous impact on those outcomes. it’s easy to say “Conway’s Law” and then move swiftly on. “But but but, but how?”
In early 2014, James and Martin Fowler called out “Organised around business capabilities“ as a core characteristic of microservices. This was based on feedback from successful teams around the world about how important this aspect was on the systems they were building. In this talk, James explores some of these structures and provides some practical guidance on what he and Martin meant when they said “business capability”.
- JAX DevOpsCon, June, 2015
- GOTO Chicago, May, 2015 (slides)
- GOTO Copenhagen, October, 2015 (slides)
- JAX London, October, 2015
When should you use microservices? Netflix started to evangelise the approach some time ago and in January, Martin Fowler and myself published an article on the topic covering our thinking and experiences the last few years. It has rapidly become one of the most talked about techniques on the interwebs. Opinions range from “it’s just SOA, move along”, to “they are the awesome”, to “you must be insane”. In order to understand when they might be useful – what problems they solve and why – we need to at least to understand what is meant by microservice architecture, before semantic diffusion claims the term in all it’s ignominy.
In this talk, James Lewis will examine the characteristics of the microservice style using examples from projects over the last few years. Topics covered include the reasons you might want to split an application (or not), the benefits and the drawbacks of the style based on these experiences. Remember though, Rule 16. Distrust all claims for “one true way.”
- Mucon, November, 2014
- BCS Edinburgh, February, 2015
- Yorkshire geek night, May, 2015
- Agile Island, Iceland, November, 2014
- BBC::Develop, November, 2014
James will talk about organisational and team barriers to adopting a polyglot approach; the technologies we have chosen to adopt and why they were chosen. So, come along and learn a bit about event-sourcing, NoSQL, Microservices, Infrastructure Automation and “Build it, Run it”. Because “is it on MSDN?” isn’t the only question to ask anymore… “
As developers, architects and operations folk we are often scared of taking on too many technologies. Whether that’s the web stack, persistence or integration. Our organisations standardise on single stack solutions, often because “”we’ve already got licenses”” or “”we only have the skills for xxx””.
This talk is about a programme that has adopted a number of different technologies in a formerly .Net shop and the lessons we have learned during the the two year journey.
- Agile on the Beach, Cornwall. September, 2014 (Video)
- Berlin Microxchg, February, 2015 (video)
- Berlin Microservice meetup, June, 2015
- Budapest Craft meetup, October, 2015
The trend towards fine grained SOA and micro-services is having an impact on how we design and code systems. As we move towards developing applications composed of small services we are “pushing accidental complexity into our infrastructure” (Martin Fowler). While this has benefits in terms of maintainability and replaceability it also raises questions about our ability to manage large numbers of small applications in production.
This talk explores some of the real world difficulties encountered in testing, deploying and managing many small applications as well as examining strategies to balance the opportunities of microservices and “design for replaceability” with the costs of managing many applications in production.
For many organisations struggling with bloated legacy systems, keeping pace in today’s world of intense competition from upstart competitors is a challenge. Micro-services, small, independently scalable and deployable applications communicating via the web’s uniform interface offer a viable alternative. This talk explores the Unix approach to building applications applied at enterprise scale and the challenges faced when building systems of systems including deployment and testing. From monoliths, silos, RPC and integration hell to today’s adaptive system designs with organisations deploying hundreds of these tiny applications automatically – we are on the verge of a bright new future.
- Agile Australia, 2013
- GOTO Nights, Hamburg. August 28, 2013, Video
- Agile on the Beach, 2013, Video
- GOTO Berlin, 17th / 18th October, 2013
“Write programs that do one thing and do it well. Write programs to work together” was accepted 40 years ago yet we have spent the last decade building monolithic applications, communicating via bloated middleware and with our fingers crossed that Moore’s Law keeps helping us out. There is a better way.
Micro services. In this talk we will discover a consistent and reinforcing set of tools and practices rooted in the the Unix Philosophy of small and simple. Tiny applications, communicating via the web’s uniform interface with single responsibilities and installed as well behaved operating system services. So, are you sick of wading through tens of thousands of lines of code to make a simple one line change? Of all that XML? Come along and check out what the cools kids are up to (and the cooler grey beards).
This is a talk about building micro-services using simple java tools
- QCon San Francisco, 2012 – Video on InfoQ
- 33rd Degree, 2012 – slides
- JavaZone, 2013 – Video and slides on Vimeo
How do successful companies innovate? with Pat Kua
Why do some organisations appear to innovate more than others? Why are some more consistently successful? What do they do differently? In this Quarterly Technology Briefing, James and Pat explore the elements that affect innovations in organisations, and the secret ingredients used by innovators to keep ahead of the pack. Why is this important? We live in a new world. One where the cost of entry into markets is constantly decreasing, letting startups compete with established players and where, increasingly, people are our most valuable assets.
James and Pat will explore organisational design, the perils of matrix management and the key measures and activities they see in successful, innovative companies. Some of these may surprise you!
Growing a culture of innovation
Most organisations optimise for cost control over value creation but in our connected world we are only ever one smart competitor away from trouble. Can you optimise your IT organisation and business around innovation and still keep costs down? In this talk we will explore some of the forces that act on business to stifle innovation and explore some ways that teams, IT divisions and businesses can organise to take advantage of the new opportunities our online world offers.
This is a talk about Lean, Organisational Design and the perils of matrix management (its 45 minutes of free consultancy, don’t tell everyone or they’ll all want to come…)
Choose your own Programming Language (with Ian Cartwright)
Gone are the days when your company was limited to C++ or Java. The last few years have seen an explosion of programming languages promising “10x more productivity” or a “quicker return on investment” but what is the reality behind these claims? Programming language choice has an impact far beyond the immediate, after all COBOL applications still perform billions of business critical transactions every day and an estimated 86-94%* of software cost is incurred post development. In addition, the world of computing is changing, Moore’s Law still holds, but in an unexpected way – we can no longer rely on faster CPUs to boost performance, instead we need to have multiple CPU cores. So what does this mean for language choice in the Enterprise? This Quarterly Technology Briefing will explore these dilemmas and offer practical advice on how to balance often opposing concerns; stability vs innovation; fast to market vs easy to maintain; fashion vs staff retention; etc. We’ll do this by looking at historical motivations for changing patterns of language use and ask which of those, alongside which new forces and pressures should we be considering today.
- ThoughtWorks QTB – video here
Do you know what high performing agile teams get up to in their time off? Why, they use a lean process to build the largest lego set ever produced of course. In this talk I explore what happened to these intrepid engineers as they self-organised themselves into a lean, mean, lego-building machine. Along the way I will introduce key concepts from lean software engineering including cycle-time and throughput, continuous process improvement, stopping the line, work-in-progress limits and the value of play.
So, have you ever been a child? Ever played with lego? Ever wondered what self-organisation and lean really look like? If so, come along and watch Han Solo, Luke Skywalker and Chewie turn 5000 pieces of lego and a 300 page manual into a ship that can do the Kessel run in less than 10 parsecs…
- Agile On Tap: March 20th 2013 – James Lewis, “Lean & Lego – Building the Millennium Falcon”
- Agile on the Beach, September 2011 – slides and video
OMG! Someone broke the internet!
So we’ve finally worked out how to build massively scalable internet applications. REST and Resource Oriented Architectures are proving hugely successful; but the Internet is changing. HTML5 WebSockets are a W3C supported protocol that offer developers greater flexibility when implementing the next generation of internet applications. This flexibility doesn’t come without cost. The speaker will explore the practical applications of the WebSocket protocol, it’s limitations and the impact on internet-scale software engineering.
This talk is targeted at Developers, Technical Leaders and Architects. There may even be some code.
Agile Adoption Antipatterns
This session focuses on the things that you shouldn’t do when trying to introduce Agile practices to an organisation. Maybe you drank the Agile cool-aid and are struggling to introduce Agile on your own or you are an Agile Coach trying to make some sense of the madness that is your current client.
There are many more ways for agile adoption to fail than for it to succeed. Drawing on his experience introducing Agile principles and practices in large blue-chip organisations, the speaker will showcase a number of anti-patterns, technological to methodological, that could put your agile rollout at risk.
This talk is an exploration of some of the things that can go wrong when introducing agile to organisations, presented as a series of anti-patterns and smells.
- Agile Vancouver 2009 – slides
- Software South East, Jan 2010
- BCS SPA, March 2010
- Agile Brazil 2010, June 2010
Domain Driven Design with Alistair Jones
Domain Driven Design is a philosophy for writing software, that places emphasis on a business-aligned domain model, and provides a vocabulary for how to implement the model in object oriented code. Following DDD when writing business software focuses effort on the high-value parts of the system, and helps consistent translation of business concepts into objects.
We give an overview of Domain Driven Design and then discuss the practical implications of following it. How do you implement an isolated domain model? What kinds of objects do you need in your model? How does your model make use of Dependency Injection and Object-Relational Mapping? We will introduce an example business domain, identify roles that objects could play in the domain model, and then show how to implement those objects in code. Are you following DDD? What are your experiences with it? What are the reasons why you wouldn’t choose to follow it?