Programming for 46 years, now MicroService Fanboy and Programmer Anarchist
Fred George is a developer and cofounder at Outpace Systems, and has been writing code for over 46 years in (by his count) over 70 languages. He has delivered projects and products across his career, and in the last decade alone, has worked in the US, India, China, and the UK. He started ThoughtWorks University in Bangalore, India, based on a commercial programming training program he developed in the 90’s. An early adopter of OO and Agile, Fred continues to impact the industry with his leading edge ideas, most recently advocating MicroService Architectures and flat team structures (under the moniker of Programmer Anarchy). Oh, and he still writes code!
YOW! West 2015 Perth
Agile Roots: Use JIT to Go Faster
KEYNOTE – VIEW SLIDES
Agile borrowed from the JIT manufacturing processes originally at Toyota. The Agile Manifesto itself summarized the key aspects brought into programming from JIT.
Original Agile processes like eXtreme Programming (XP) brought breathtaking speed of delivery to a waterfall world. But Agile has not stood still. From XP’s original (and aggressive) 23 week iterations, we now see individual programmers pushing new functionality to live systems several times a day!
Acceleration drives changes to an organization’s processes and skills, just as the original shift to Agile from waterfall. Organizations reluctant to address such changes, however, inhibit the acceleration. Indeed, their attempts to accelerate often result in lower morale and flawed delivery; these failures drive conservative (and destructive) attitudes against change.
In this talk, we will address a myriad of drivers for faster delivery:
- Available technologies, including Cloud, languages, and new frameworks
- Shift toward active monitoring rather than onetime acceptance testing
- Refined, lighter processes consistent with shorter cycles
- Architecture that is fault-tolerant rather than provably perfect
- Shift toward trying ideas rather than firm requirements
- Reduction in role specialists
- Reduction in delivery team size
For each of these drivers, we will describe teams that have taken these steps and the corresponding accelerated delivery.
Microservices: Let’s Build Some
We will start with a pre-built skeleton microservice environment (message bus plus a couple of RESTful services running against it). We will then design and implement additional services to broaden the overall functionality.
These additional services can be written in any language that will run on the participants laptop. While pairing is strongly encouraged, it is not required.
The focus of the workshop will be on:
- Understanding how to design asynchronous service architectures,
- Creating small, yet functional, services rather than larger services,
- Reducing coupling to the bare minimum (JSON packets with extra fields ignored), and
- Debugging asynchronous systems
Software developers, architects and anyone with an interest in getting hands on designing and developing microservices should attend.
- Bring a laptop with language and IDE installed.
- Competence in a language and corresponding IDE.
- We will be writing code against provided RabbitMQ instances.