Here is our monthly selection of knowledge on programming, software testing and Agile project management. This month you will find some interesting information and opinions about the Spotify model, slow Scrum, Code Ownership, remote software development, delivering value, removing team members, the Definition of Done (DoD), clean & hexagonal software architectures, serverless Java code and team self-selection.
Text: The Product Model at Spotify Spotify is an exceptional company, the best I’ve ever worked for. When I left the company after more than six years, I wanted to help other companies become more like Spotify. However, I didn’t believe companies could merely copy the organizational structures of tribes, chapters, and squads that have come to be known as “the Spotify model”, but I wanted to explain what really set Spotify apart.
Text: Going FAST – When Scrum is slowing you down What can you do when Scrum isn’t doing what it used to do? I invite you inside my story of how I guided 16 people in 2 Scrum Teams to overcome some of the Scrum limitations by replacing it with the Agile Scaling framework: FAST Agile. I’ll share how we as a Collective were Self-organizing around work in ways most Agile teams dream of, and hope you end up being inspired by how you and your current Scrum Team(s) could take a step up the Agile and Adaptive maturity ladder.
Text: Code Ownership, Stewardship, or Free-for-all? As the pendulum has swung from monoliths to micro-everythings – services, front-ends, you name it – we find ourselves with more “things” to build and maintain. And so it begs the question, who is responsible for what?
Text: Remote Development at Slack For years, engineers at Slack isolated and tested their changes by running microcosms of the Slack application on their local computers. This was difficult for many reasons: it involved installing and maintaining local dependencies, handling resource intensive software, and writing custom scripts that must work across different operating systems.
Text: How to define and deliver greater value in your next data engineering project No matter what business you’re in, data can give you a clear point of difference and competitive advantage. Helping you make better strategic decisions and create tailored and frictionless customer experiences. But as our need for insights at speed increases, centralized data platform architectures are failing to keep up. They lack the flexibility to enable teams to make informed and timely decisions – and organizations are struggling to manage the complexity of operationalizing their data assets. The modern data stack (MDS) – a set of tools and patterns used for data integration – addresses these challenges. It helps you analyze data, improve efficiencies, and unearth new opportunities faster and at a lower cost. Our playbook shares how to get the critical elements of MDS right to help you save time, reduce risks and improve the return on investment of your data projects.
Text: Removing Team Members From Software Development Projects Sometimes, it is not possible to keep a team member who is causing problems for your software development project. In their book “Managing the Unmanageable”, Mickey Mantle and Ron Lichty provides advice to the project manager on how to dismiss a person who is not performing well or who demonstrates a disruptive influence on the project.
Text: A Definition of Done Checklist for Agile Teams The Definition of Done (DoD) is a common understanding within the Scrum team on what it takes to make your software ready to be released. In their book “Managing the Unmanageable”, Mickey Mantle and Ron Lichty propose an extensive list of what a Definition of Done should include.
Video: How Clean & Hexagonal Software Architectures Work In IT industry we have a repeatable problem of code debt, which steals happiness from our work, inducing horrible stress and frustration. On the other hand frameworks, software architecture approaches, tests cost us supposedly wasted time and they seem not to deliver their promises.
Video: AI, Determinism, Code Generation and Refactoring At this point, we are past the initial hype cycle of Artificial Intelligence (AI). Many of us have tried to figure out where AI tools fit in the development process. Initially, there were hopes and fears that we could easily generate code from prompts and have AI tools perform unguided refactoring. The truth is, AI tools aren’t fully capable of those tasks, but they can still be useful. In this keynote of the GeeCON Prague conference, Michael Feathers will talk about the current state of AI usage, practices he has found useful and directions all of this might go.
Video: Thinking in Serverless Java Code Compilable and sharable infrastructure with Infrastructure as Code, Self-provisioned runtimes, great IDE support, energy, and CO2 savings – Java is the perfect language and runtime for serverless cloud environments. This presentation discusses the key differences between serverless Java and monolithic application servers and microprofile runtimes with lots of code and live deployments. We will start with synchronous, monolithic functions and conclude with pragmatic Event-Driven Architectures and ‘no code’ …still with Java.
Video: Testing React Native Applications the Smart Way This presentation explores the divisive world of software testing, where React.js developers often find themselves torn between writing no tests and striving for 100% test coverage. Learn how to navigate these polarizing positions and adopt a more nuanced strategy that makes testing React applications efficient and effective.
Video: Four Years of Team Self-Selection at Redgate Software Traditional project management wisdom teaches us that long-lived, stable teams perform best, and that changing team membership is to be avoided as much as possible. Redgate Software has challenged this advice, believing it was better for software engineers and the overall organization to deliberately change-up our teams every year.
Video: Reawakening Agile with OKRs Agile has lost its shine, “corporate agile” has stripped away all the fun, passion, excitement and learning. Adding Objectives and Key Results (OKRs) just makes it worse: a reinvention of top-down management by objective with added metrics to mislead and distort reality.
Video: Software Testing in Modern Times: About Quality and Value This presentation about software testing is for software developers and everybody else working in IT. Secret number one: this session is less about software testing as you would expect… Software Development is a complex thing. We are dealing with customers who do not exactly know what they want. We also have to deal with complexity, confusion, changes, new insights and half answers.
Tools: Free Online Kanban Tools In the context of software development, Kanban is an approach based on Lean that tries to limit waste and work in progress to the actual capacity of the software development team. The aim of Kanban is to create a context that balances capacity and demand through a value stream and promote visual project management.
Tools: Learning Locust: Documentation, Tutorials, Videos Locust is an open source load testing tool that supports running load tests distributed over multiple machines and can be used to simulate millions of simultaneous users. This article provides pointers to documentation, tutorials, courses and videos to learn how to use Locust open source load testing tool.