Software Development Magazine - Project Management, Programming, Software Testing |
Scrum Expert - Articles, tools, videos, news and other resources on Agile, Scrum and Kanban |
Methods & Tools - January 2022
Sharing global software development expertise since 1993
=== Sponsor ===
Advertise with Methods & Tools
Reach an audience of more than 60'000 professional software developers, software testers and project managers publishing with Methods & Tools for as low a $60 / month. Do you want to promote a software development tool or conference? Are you interested in buying a link to your website from a good reference?
Contact Methods & Tools today to advertise with us!
*** Updates ***
Last Articles Published on Methods & Tools Website
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. Read more...
*** From The Archives ***
Articles from Methods & Tools' Archives
Non-Functional Requirements: Do User Stories Really Help? Agile teams focus on identifying user facing features that can form the basis of incremental deliveries. Often these are expressed as User Stories, slices of functionality that enable a user to achieve a specific goal. Developers work closely with stakeholders to understand what user stories must be satisfied by the product that they are developing. A flaw in this approach can be that users don't mention non-functional requirements and developers don't push to understand what quality attributes the software should satisfy. So how does a team make sure they don't lose sight of "non-functional requirements"? Are user stories of any use in making these special kind of requirements visible to the team? This article explores how teams applying agile techniques go about resolving these concerns. Read more...
=== Sponsor ===
Scrum Expert
Scrum Expert presents Agile articles, resources, book reviews, tools lists, conferences schedule, videos and industry news about Agile software development and project management using Scrum and other Agile and Lean approaches like Kanban, eXtremme Programming or Software Craftmanship with a global perspective.
Visit https://www.scrumexpert.com/ today!
*** Quote of the Month ***
The majority of failures you will see will actually be good ones – mini failures as decisions are taken by those who are less experienced. These are good because the process facilitates quick decisions, by those who need them, and more importantly, it facilitates transparency and rapid identification of failures (as those who took the decision will be aware of the issues as they code it) and a safe means to re-visit, and share the learnings. Embrace these, calling them out specifically and celebrating them in the AAF. This is a key aspect of building a learning culture.
To learn most effectively you need to feel safe, and when learning collectively everyone benefits from the broadest, most diverse range of inputs contributing to discussions. Remember, in this approach, we are explicitly not looking for consensus, but we are looking for a broad range of inputs and voices. It is here that the next failure mode lies, and it is far more insidious and damaging than the first. This second failure mode arises when you, in your job as a conversation-starter and space-holder, fail to include all who ought to be contributing and deciding and learning. For a great part early adoption stages of this style of architecture can feel like great successes. "It's working! More and more people are taking decisions, writing them up in ADRs, giving advice and discussing them in the AAF! I've never seen such engagement with principles before!". Only later, on reflection, will you realise the gains could have been far greater. It is precisely when this first flush of satisfaction strikes that you must be most on your guard. Are you really observing mass participation and learning, or is it a core group of usual suspects? You mitigate this problem actively. Watch out for who contributes. Amplify voices and ensure others listen to the quieter contributors. Make sure influence is balanced and not based on reputation, tenure or place in the hierarchy. Actively encourage many viewpoints and highlight the value it brings so that it becomes self-sustaining.
The third failure mode is an early warning that you are encountering the preceding failure mode, however, this one lives more in the grey area between desired and unwelcome. As you proceed along this journey you will uncover off-the-grid decisions. Decisions which never came up at the AAF, and which never made it into an ADR. There are two ways to approach them. The first, correct way, is to treat the discovery as what you hope it is – an honest mistake, and an opportunity to learn and teach others. Perhaps the decide-ees weren't even aware of the fact it was a key decision they were taking. Perhaps they were under pressure from elsewhere. Perhaps they thought it wasn't as significant as it turned out to be. Perhaps they felt they would be shouted down in the AAF. Whatever the reason, treat it as a way for both them, and you, to learn. To improve the process. The other, wrong way to treat these, is to fall back to old ways, and take back control. Which takes us nicely to the failure mode which completely destroys this approach and all that it promises.
It's easy to slip into this fourth and most dangerous failure mode, and so it needs constant vigilance on your part. The only thing which needs to happen to trigger this is for "capital-A" architects such as yourself to fail to trust people; it is to not practice what you preach; it is to not clear enough space for the mini failures and consequent learning opportunities just mentioned; it is to continue to perform "shadow architecture" behind the scenes to make sure things still go how you think they ought to, despite all the signals from elsewhere. The sole benefit of this failure mode is that it becomes evident very rapidly as all the benefits I've listed above fail to materialize.
If you're wondering if it's this key failure mode which makes this approach to architecture hard to pull off you'd be right. I have been lucky in the past. Colleagues have called me out when I've made decisions for others, and I've caught myself getting frustrated that folks don't know what I know. But then I realise I'm failing in my real task as a practitioner of architecture – I'm failing to get the right conversations happening, with the right people, at the right time. Remember that (perhaps even task others with calling you out when you fail to stick to the process) and you'll be surprised how easy (and satisfying) it is to succeed.
Source: Scaling the Practice of Architecture, Conversationally, Andrew Harmel-Law, https://martinfowler.com/articles/scaling-architecture-conversationally.html
*** Software Development Linkopedia ***
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.
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.
*** Software Development Training ***
Software Development Lifecycle Specialization: This course is designed for people who are new to software engineering. It is also for those who have already developed software, but wish to gain a deeper understanding of the underlying context and theory of software development practices.
Contact us if you want to your training courses listed in this newsletter and reach 35'000 software development profesionnals worldwide.
=== Web Sponsors ===
This month, the Methods & Tools website is supported by Vornexinc.com, Testmatick.com, Software Testing Magazine and Scrum Expert. We thank them for their support.
*** Featured Software Development Conferences ***
Agile Alliance Agile2022, July 18-22 2021, Nashville, USA
Pacific Northwest Software Quality Conference, Portland, USA, October 10-12 2022
Contact us if you want your software development conference listed here.
Find more upcoming conferences on SoftDevConferences.com,
ScrumExpert.com,
SoftwareTestingMagazine.com
Methods & Tools Testmatick.com Software Testing Magazine The Scrum Expert |