Published Sep 3, 2019

SE-Radio-Episode-253-Fred-George-on-Developer-Anarchy

Fred George delves into Developer Anarchy, a radical development approach that eliminates managers in favor of empowering programmers, fostering creativity and trust. He also discusses microservices architecture, emphasizing communication strategies, cloud deployment benefits, and their synergy with agile principles.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Communication

    Fred George discusses the intricacies of microservices communication, emphasizing both synchronous and asynchronous models. He prefers asynchronous systems for their decoupling benefits, where services publish events on a bus without knowing each other, allowing for parallel processing and flexibility 1. This approach, however, requires a shift in thinking from traditional sequential programming. In managing microservices, Fred highlights the division of responsibilities among teams, where each team handles a subset of services, fostering deep understanding within smaller groups 2.

    I like the asynchronous model because it's very decoupled. I don't know what service is listing, and I can put two versions out there very easily and not have that problem.

    ---

    This structure ensures that while no single person knows all services, collective knowledge is accessible when needed.

       

    Deployment

    Fred George explains the role of cloud environments in microservices deployment, highlighting their ability to facilitate one-click deployments and dynamic scaling based on demand 3. This capability allows teams to focus on development rather than operational complexities. He also describes microservices as small, script-like entities, often less than 100 lines of code, which perform specific tasks 4.

    The clouds provided us easy deployment environments. We're getting down to the point where we understand that one click deployment is what you want to have.

    ---

    This simplicity in service design supports agility and rapid iteration, crucial for addressing complex, "fuzzy" problems.

       

    Trade-offs

    Fred George addresses the trade-offs inherent in microservices, such as redundancy and performance concerns. He argues that the ease of writing new services often outweighs the cost of maintaining a repository of existing ones, as the time saved is minimal 5. Performance is balanced against time to market, with Fred prioritizing rapid deployment over optimization, especially for projects with uncertain requirements 6.

    Performance is one of those trade offs you want to make against time to market.

    ---

    This approach allows for quick experimentation and adaptation, essential for competitive advantage in dynamic environments.

Related Episodes