Software Development Magazine - Project Management, Programming, Software Testing |
Scrum Expert - Articles, tools, videos, news and other resources on Agile, Scrum and Kanban |
Methods & Tools - June 2022
Sharing global software development expertise since 1993
=== Sponsor ===
TimeShiftX - Travel in Time, Test with Ease
TimeShiftX lets you time travel your software into the future or past to temporal test date and time sensitive functionality and code such as year-end, daylight savings, billing, and policies. Employ instant time travel inside Active Directory & Kerberos without changing system clocks, editing code, or isolating servers. TimeShiftX is multi-platform, cloud & container compatible, and supports all applications and databases.
*** Updates ***
Last Articles Published on Methods & Tools Website
early Model Based testing (eMBT) - An early model based exploratory testing approach in practice early Model Based Testing (eMBT) is a software testing approach that aims to optimize the test case design phase. This is achieved by stimulating communication and collaboration between all project stakeholders to get early feedback and a shared understanding of the requirements in an early stage of the software development life cycle. Read more...
*** From The Archives ***
Articles from Methods & Tools' Archives
Will Pair Programming Really Improve Your Agile Project? This article focuses on some of the problems typically encountered by pair programming teams and examine how they may affect an Agile project as a whole. Read more...
=== Sponsor ===
Unblock Content with Ivacy VPN from as low as $1.19
Ivacy is a leading virtual private network provider with 3500+ servers in over 100+ locations. We have specifically designed our network to offer the best connectivity with fast and private streaming speeds across the world. Customers are provided with multiple protocols to choose from and connect. Also Ivacy gives you the freedom to connect to our network without limitations.
Unblock Content with Ivacy VPN from as low as $1.19 + Premium Password Manager for Free
*** Quote of the Month ***
The time elapsed between writing and shipping is the room temp petri dish where pathological symptoms breed and snowball. Longer lead times lead to larger code diffs and slower code reviews. This means anyone reviewing or revising these nightmare diffs has to pause and swap the full context in and out of their mind any time they switch gears, from writing code to reviewing and back again.
Thus the elastic feedback loop of the development cycle begins to stretch out longer and longer, as people spend more and more time waiting on each other—to review, to comment, to deploy, to make requested changes—and more and more time paging state in and out of their brains and trying to remember where they were and what they were trying to do.
But it gets worse. Most deploys are run by hand, at some indeterminate interval after the code was written, not by the person who wrote the code, and—worst of all—with many developers’ changes batched up at once. It is this, above all else, that severs the engineer from the effects of their work, and makes it impossible for them to practice responsible ownership over the full lifecycle of their code.
Batching up changes means you cannot practice observability-driven development; you can’t expect engineers to watch their code go out and ensure it is working in production. You don’t know when your code is going out and you don’t know who is responsible for a change in production behavior; therefore, you have no accountability or autonomy and cannot practice software ownership over your own code. Ultimately, your engineers will spend a higher percentage of their time waiting, fumbling, or dealing with tech debt, not moving the business forward.
Since so many of your existing engineers are tied up, you will need to hire many more of them, which carries higher coordination costs. Soon, you will need specialized roles such as SRE, ops, QA, build engineers, etc. to help you heroically battle each of the symptoms in isolation. Then you will need more managers and TPMs, and so on. Guess what! Now you’re a big, expensive company, and you lumber like a dinosaur.
It gets slower, so it gets harder and more complicated, so you need more resources to manage the complexity and battle the side effects, which creates even more complexity and surface area. This is the death spiral of software development. But there is another way. You can fix the problem at the source, by focusing relentlessly on the length of time between when a line of code is written and when it is fully deployed to production. Fixate on that interval, automate that interval, track that interval, dedicate real engineering resources to shrinking it over time.
Until that interval is short enough to be a functional feedback loop, all you will be doing is managing the symptoms of dysfunction. The longer the delay, the more of these symptoms will appear, and the more time your teams will spend running around bailing leaks.
How short? 15 minutes is great, under an hour is probably fine. Predictability matters as much as length, which is why human gates are a disqualifier. But if your current interval is something like 15 days, take heart—any work you put into shortening this interval will pay off. Any improvement pays dividends.
This is where lots of people look dubious. “I’m not sure my team can handle that”, they may say. “This is all very well and good for Facebook or Google, but we aren’t them.”
[…] This may surprise you, but continuous deployment is far and away the easiest way to write, ship, and run code in production. This is the counterintuitive truth about software: making lots of little changes swiftly is infinitely easier than making a few bulky changes slowly.
Think of it this way. Which of these bugs would be easier for you to find, understand, repro, and fix: a bug in the code you know you wrote earlier today or a bug in the code someone on your team probably wrote last year?
Source: Fulfilling the promise of CI/CD, Charity Majors, https://stackoverflow.blog/2021/12/20/fulfilling-the-promise-of-ci-cd/
Contact us if you want to publish a white paper with ScrumExpert.com or SoftwareTestingMagazine.com.
*** Software Development Linkopedia ***
Text: How To Be More Productive Than Most Programmers Even one simple change in your day can make you twice as productive. In the article, you will find eight way to become more productive. The trick is that most programmers are too focused on how to write programs, and they overlook the essential things that make people productive.
Text: Design, Together As consultants, we often step into projects that are full of ambiguity, in business domains overwhelmed by complexity. We have learned that the art of successful delivery depends on tackling that complexity head-on, usually by diving in with questions.
Text: 5 Ways for Testing Time Estimation We need to distinguish the testing time and time for stabilizing the build. Time for build stabilization can vary and the whole team effort is in charge of that. In practice, the time buffer that each team member puts into his/her estimation should partially represent the build stabilization time. The main question is how much time the team can afford considering a crazy release schedule in the Agile world.
Text: 3 Team Effectiveness Models You Can Use to Create Highly Productive Teams Creating effective Agile teams is not easy. This article explores three models that can inspire you in the Scrum team creation process: the Lencioni Model, the 7T Model and the Tuckman’s Team Development Model.
Text: How to Write Good Test Cases for Database Testing: 4 Key Tips When developing software, you will need to write test cases to help ensure that your code is working as expected. Writing good database testing scenarios can go a long way toward improving your application’s reliability and making it easier to maintain in the future.
Text: How to Save a Dying, Low-Morale Team At a point in my career, I was the manager for a team at a global tech company. I had originally joined the team as an individual contributing software engineer, and when I did, the team was at a size of 8. But when I joined, I didn’t know the team was in trouble. I soon discovered that poor senior management had basically driven many members of the team to unhappiness. Low morale has its effects, and in the space of about five months, the team went from 8 to 4 people, which is about when I took over as the team’s manager. At that point, the difficult-to-work-with senior manager was gone, and so was the team’s previous direct manager.
Text: Building an Agile Assessment Tool Conceptually Scrum is simple, so why is achieving a mature agile team such a daunting experience? Maybe because it’s not just a matter of implementing the ceremonies. Scrum teams need to embrace continuous improvements through an incremental and iterative process.
Text: Architecture Jams: a Collaborative Way of Designing Software It’s a good idea to facilitate a software architecture jam early on in the design process, instead of letting it play out organically, over a longer period of time. Doing so will mean more immediate feedback, a lot more people invested in the idea and blind spots of the approach caught earlier.
Text: Optimizing Testing: Testing Realities How much are software testing and software quality assurance important in today’s software development world. This article explores this topic and how organizations could get the most out of software testing.
Video: The Monoliths or Microservices Debate is Missing the Point The “monoliths vs microservices” debate often focuses on technological aspects, ignoring strategy and team dynamics. Instead of technology, smart-thinking organizations are beginning with team cognitive load as the guiding principle for modern software. In this talk, we explain how and why the debate of monoliths versus microservices is missing the point, illustrated by real case studies.
Video: Remote-First Team Interactions with Team Topologies Team-based software delivery can be very effective, but how can we promote and enable team-based approaches in a “remote-first world” for software development projects? What should teams think about, and what patterns can teams adapt to be effective when no one is in the office?
Video: Continuous Learning with Andon Cords in Software Development Teams Learn about one software development team’s struggle to improve collaboration and how they sought to shorten cycle time by carefully crafting an experiment with an Andon Cord. The Andon Cord is a Toyota innovation designed to empower front-line employees to recognize issues, initiate a stoppage of work, and work together as a team to quickly identify a path forward. The emergency cable strung above assembly lines became a symbol of the Toyota Way, and has widely been copied throughout the auto industry and beyond. This presentation will introduce metrics that show a surprising correlation between collaboration through Andon Cord pulls and Cycle Time.
Video: Securing Java Containers So you built your Java apps and containerized them, great job! But what does it take to secure a container? Are you sure you’re following all the best practices to build container images correctly? What are the threats you are not mitigating in a running container? There is no better way to understand container security than seeing some live hacking! This session introduces the state of docker security by reviewing vulnerabilities in Docker images and their impact on your Java application. Learn and adopt best practices of running secure containerized Java applications in production
Video: Practical Guidance for a Project to Product Transformation Ross Clanton and Amy Walters walk through an enterprise playbook, tactics, and case studies for how to successfully transform from a project to product based operating model. The target audience for this paper is leaders at any level of the enterprise who are driving a transition to a product-centric model. Transformations that shift from project to product require changes at every level and in every corner of the enterprise.
Video: Shifting QA Left: Emerging Trends in Code Quality and Security Automation This talk discusses various advances in program analysis technology that enable a larger class of bugs to be detected earlier in software development projects (and even to be automatically fixed in some cases). It focuses particularly on recent developments that enable tight integration of program analysis tools into DevOps processes.
Tools: Mockoon is an open source tool to design and run mock REST APIs. Compatible with the OpenAPI specification, Mockoon integrates perfectly with your existing applications and API design workflow. Mockoon offers you complete flexibility when creating your mocks: custom statuses, route and global headers, file serving or body editor, HTTPS, etc. You can simulate real-life scenarios with dynamic templating and the response rules system. You are also able to test your app resilience with sequential and random responses.
Tools: Why Choose Kualitee as Your Test Management Tool We are in that era of technology when there are so many different software testing tools available in the market that it can be difficult to narrow down your options. Let’s discuss one of these tools: Kualitee.
Tools: Free Online Scrum Tools Agile approaches like Scrum recommend a “just enough” attitude in software development and this is also the case when you discuss tools. Ideally, you would work with a small team that is collocated, but this is not always possible and you might be running your project virtually with a distributed Scrum team scattered around the world.
=== 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.
*** 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.
*** Featured Software Development Conferences ***
Agile Prague, Prague, Czech Republic, September 19-20 2022
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 |