Here is our monthly selection of knowledge on programming, software testing and project management. This month you will find some interesting information and opinions about project and test reporting, agile testing, scaling teams, conflict management, metrics, learning as a developer, microservices, test management and retrospectives.
Text: Scrum Team Tactical Status Reporting – Conduct Updates in Only One Minute. When will you be done? This question often crosses the lips of executives, and rightly so. Executives need to know timelines to make informed decisions about prioritization at the company level and achieve the company’s vision. Regardless of whether it’s a traditional waterfall project or an agile product development effort, knowing the work status is vital, and scrum teams must be able to answer it with tactical status reporting.
Text: Given-When-Then, tweak and try again. Given-When-Then, without any doubt, won the contest for the most popular BDD example structure. The supporting tools are now well established. Because people are familiar with those utilities, they often try to use them beyond the originally intended scope. Unfortunately, this is often with bad results. That’s only logical, and in many ways a repeat of the learning curve the community went through with xUnit tools.
Text: Scaling Engineering Teams via RFCs: Writing Things Down. I have recently been talking at small and mid-size companies, sharing engineering best practices I see us use at Uber, which I would recommend any tech company adopt as they are growing. The one topic that gets both the most raised eyebrows, as well the most “aha!” moments is the one on how the planning process for engineering has worked since the early years of Uber.
Text: Metrics for the unmeasurable. Metrics are a remarkably effective abstraction. A well-formed metric has enough context to understand how well you’re doing, contextualize that performance against historical performance, and define a clear, gradable goal.
Text: Resolving a Protracted Conflict. When we’re locked in a protracted conflict with another person, there’s one critical step that’s usually necessary to reach a resolution in which both parties feel a sense of trust and remain committed to the relationship: The higher-status person must express vulnerability first.
Text: 7 Absolute Truths I Unlearned as Junior Developer. Next year, I’ll be entering my 10th year of being formally employed to write code. Ten years! And besides actual employment, for nearly 2/3 of my life, I’ve been building things on the web. I can barely remember a time in my life where I didn’t know HTML, which is kind of weird when you think about it. Some kids learn to play an instrument or dance ballet, but instead I was creating magical worlds with code in my childhood bedroom. In reflecting on this first decade of getting regularly paid money to type weird symbols into my Terminal, I wanted to take some time to share some ways my thinking shifted over the years as a developer.
Text: Five Tips and Tricks for Testing Mobile Games. Creating a mobile game has never been easier, but releasing a product with many bugs will just ruin your reputation. This article provides five tips and tricks for testing mobile games.
Text: The 12 Agile Principles. Much is said and written about the Agile Manifesto that if I were to write about it, I am sure it wouldn’t be anything that hasn’t been said before. There is less material out there around the 12 agile principles that go along with the manifesto though, so I had thought I could put out there my own thoughts around these 12 sentences that help us understand how to apply the agile manifesto in our daily work.
Video: Why Software Developers Don’t Need Agile. Agile is everywhere. There are tons of materials about Agile. There are tons of talks about Agile. There are even whole conferences focused on Agile. Agile is simply everywhere. That is a well-known fact. But did you know that software developers do not need it?
Video: Introducing The Developer Velocity Index (DVI). In April 2020 McKinsey & Company published a report called “Developer Velocity: How software excellence fuels business performance”. The big finding of the report is that there is a clear correlation between higher Developer Velocity Index (DVI) and how good a company is doing from a financial perspective. But what is DVI, and why should I care?
Video: Continuous Visibility, No More Dashboards. Tired of the business asking you questions about your software that you don’t know the answer to? Let’s get some visibility! This presentation covers the journey from how James Brown and his team evolved visibility in their systems, reduced those 3am calls, proposes throwing those overhead dashboards in the bin and looks to the future of how we could build self-monitoring software.
Video: Understanding Microservices: Cubes, Hexagons, Triangles. The microservice architecture is becoming increasing important. But what is it exactly? Why should you care about microservices? And, what do you need to do to ensure that your organization uses the microservice software architecture successfully?
Video: Building Modular Java Applications with JPMS and Layrry. The Java Module System lays the foundation for building modularized applications on the JVM. It doesn’t concern itself though with resolving module versions and obtaining modules from repositories. This is where Layrry comes in: an open source API and launcher for modularized Java applications which takes a descriptor of the module layer(s) to assemble, fetches the modules and starts up the application.
Video: NewSQL Scalable Relational Databases. NoSQL was a reaction against the scalability issues with regular SQL relational databases such as MySQL and Postgres. They scaled out well and were easy to operate but were lacking many of the features developers have relied on for decades such as ACID transactions, global indexes and complex queries with joins and aggregations.
Video: Self-Healing Automated Tests. Self-Healing Tests is an approach in which machine learning helps with the maintenance of automated tests. Self-Healing, the automation of test automation, recognizes changes in the “system under test” and automatically adapts the test execution so that the tests remain functional.
Tools: Allure Report is a flexible, lightweight multi-language open source test reporting tool. It provides clear graphical reports and allows everyone involved in the development process to extract the maximum of information from the everyday testing process
Tools: QuAck is an open-source test management service. It allows storing test cases and test suites and execute them. This web-based service is much different from other test management tools available on the market. The main feature is that you don’t have to stick to a specific test tree anymore. You can rebuild the tree of test cases on the fly – it will be based on test cases attributes. The service is built with integration patterns in mind. Pluggable architecture allows implementing custom authentication providers, integration with tracking and test executing systems.
Tools: Free Retrospective Tools for Distributed Scrum Teams. Even if Agile approaches favor collocated teams, distributed Scrum teams are more common than what you might think. Many Agile software development teams are now based on a virtual organization. This article presents some free online retrospective tools that can be used to facilitate retrospectives for distributed Scrum teams.