Chaos Engineering refers to system design techniques for a robust system that tolerates change. But changing requirements also occurs throughout the development of a system as well. Chaos Development refers to techniques that readily accommodate (inevitable) changes in requirements during a project.
In this talk, we will address two radically different techniques for Chaos Development:
Chaos Engineering refers to systems that can tolerate breakage. But the what about the breakage that occurs when clients (always) change their mind mid-project? That is the domain of Chaos Development.
In this 2-day hands-on coding workshop, we will explore development techniques through structured exercises that keep your code robust in the face of changing requirements. These techniques are particularly appropriate in working with large legacy code bases. The exercises build on each other, with each exercise introducing a new technique, while also reinforcing the lessons from the previous exercises.
These techniques were the basis of the original Agile engineering practices of XP (eXtreme Programming) of Kent Beck and others. These are also the techniques taught at ThoughtWorks University to all college graduates that join the firm. Fred has used these techniques since the late '90's to deliver project after project on time despite changing requirements in every one of them.
We will be practicing pair programming and TDD. The former assists in finding great solutions, while the latter ensures that any breakage that change creates is detected immediately.
Language choices will be flexible: Pairs can use Java, Kotlin, Ruby, or C#. We will rotate pairs, also giving the attendee exposure to other useful languages. Also, it will be clear that these techniques span language barriers.
The pace will be fast. But if you are a professional programmer, you owe yourself the opportunity to enrich your repertoire of techniques with those in this workshop!
Fred George is an industry consultant with over 50 years experience in the industry including three decades of doing object programming and almost 20 years doing Agile/XP. He counts at least 75 languages with which he has written code. Most recently, he is the leading advocate of Programmer Anarchy, a post-Agile process that is proving extremely effective and reactive to client needs, and also advocates MicroService Architectures, the creations of systems with hundreds of tiny, loosely-coupled services. A veteran of the IBM-Microsoft wars, Fred did early work in computer networking, LAN's, GUI's and objects for IBM. As an independent consultant from 1991-2003, he counted HP, Morgan-Stanley, American Express, IBM, GM and USAA among his clients. He gave the first Agile/XP experience report at OOPSLA in 1999 about an embedded system done in Java, and has mentored many clients in use of objects in many languages under an XP process. Fred spent a year as a visiting lecturer at N.C. State University teaching Java programming to over 800 undergraduates, with a generous dose of object design, patterns, and XP practices thrown in. Fred joined ThoughtWorks in 2003, delivering yet more projects using Agile processes. He has worked with clients in four countries since then, including a ten-month assignment in India (where he founded ThoughtWorks University), four months of projects in China, and a post in the London office. In 2007, he joined the London Internet advertising firm, Forward, bringing Agile practices to all aspects of the business, leaving to pursue industry change at the end of 2011. He next was the Chief Architect at MailOnline, the online version of the Daily Mail and the world’s most popular online newspaper. There he completely restructured the IT team along the lines of Anarchy, which has now delivered a completely re-engineered rendering of the MailOnline. Most recently, he was a cofounder of Outpace Systems in the US, a firm building solutions for large businesses that exploits microservices and a Cyclone development process derived from the concepts of Programmer Anarchy; he continues with Outpace as a Senior Advisor. He believes in objects, Lean processes, fun in programming, and the client's successes. He holds a bachelor's degree from N. C. State University in Computer Science, and a masters degree from MIT in the Management of Technology. Oh, and he still writes code!