Search
Close this search box.
Search
Close this search box.
Search
Close this search box.

5 steps to get unit tests going

Facebook
Twitter
LinkedIn
Pinterest
WhatsApp

Once you start unit testing, you will find significant benefits to your design, throughput, quality, and peace of mind. However, it is not easy to start in an organization that’s not used to it. Here are a number of practical tips:

First step: Make sure the motivation is there – as you will see down the list, this change (like most changes) will require the organization to invest time and work in it. Understand the current situation, understand the pains, get some statistics. There will usually be someone who tried writing unit tests – talk with them, try to understand the challenges. Have a kickoff meeting with the team, understand together why are you doing this and how will the process look like. Have a kickoff with management, you will definitely need their support, you need to be on the same page. Whenever it gets tough (it will), get back to this discussion.

Second step: Train the team – I think training should be minimal – just enough so people will understand what they’re going into. Most of the learning is on the job. I do one day training in which I teach the basics of unit tests in the specific technology (I had lately the opportunity of working with an organization in which I taught c# with visual studio tests, react/native with jest + testing library, angularjs with jest and java with junit). We do some TDD with mob programming and finish with unit tests on legacy code techniques.

At this point some people (highly motivated) may start experimenting. Help them.

Third step: Open roads in the legacy code – adding tests to legacy code is difficult at the beginning. Pair with motivated individuals to crack it up, and find patterns to use on their legacy code (see my video about this: English / Hebrew). Sometimes you’ll need utilities, sometimes you’ll need to do some refactoring to allow people to start work.

Are people starting to write tests? Sometimes they do.

Fourth step: Pair with developers – We had the training, we opened up the roads, and now it is time to start moving the ship. Experience tells me I need to sit with almost all developers and pair with them, writing their first tests. Only when you do that realization seeps in. There are many A-Ha moments, I like it.

You would expect people to start writing unit tests by this time. However, change is very difficult. Remember at the beginning writing the unit test is an additional effort. It returns the investment very fast but it is an additional effort.

Fifth step: Let developers write unit tests without you – this is where, together with the team, we start adding the tests gently into the definition of done. They must do it without you, they must wrestle with the legacy code to get it moving. Like other technological challenges, you need some intensity to grasp them. This is the difficult part.

The first time you change code that already has unit tests is a magical moment. The tests tell you the story in simple words, they guide you and keep you safe. The time and sweat were worth it.

 

Subscribe for Email Updates:

Categories:

Tags:

Lean Software Development
System Team
Risk Management on Agile Projects
SAFe DevOps
PI Planning
Scrum Master Role
Code
Scrum
RTE Role
Nexus and Kanban
GanttBan
Agile Marketing
Agile Contracts Best Practices
speed @ scale
Video
PI Objectives
Achieve Business Agility
lean agile change management
Implementing SAFe
Sprint Retrospectives
Professional Scrum Product Owner
Product Management
Lean and Agile Principles and Practices
Product Ownership
AgileSparks
Agile Risk Management
Agile for Embedded Systems
User stories
Lean-Agile Software Development
Certified SAFe
chatgpt
Built-In Quality
Jira Cloud
Effective Agile Retrospectives
Agile Outsourcing
System Integration Environments
Agile Assembly Architecture
Principles of Lean-Agile Leadership
Atlaassian
Lean-Agile Budgeting
Covid19
The Agile Coach
ROI
A Kanban System for Software Engineering
LPM
Planning
Agile Development
Professional Scrum Master
Development Value Streams
Quality Assurance
Continuous Delivery
Keith Sawyer
Limiting Work in Progress
Managing Risk on Agile Projects
Scrum With Kanban
Agile Israel Events
Agile Product Ownership
Scrum.org
Scrum Guide
Lean Budgeting
Release Train Engineer
Manage Budget Creation
Nexus and SAFe
QA
Agile Techniques
ScrumMaster Tales
Presentation
Value Streams
Lean Agile Leadership
WIP
Agile Project Management
ATDD
Engineering Practices
Agile India
Agile in the Enterprise
agileisrael
Enterprise DevOps
Continuous Deployment
Frameworks
Continuous Improvement
Daily Scrum
Tips
Agile Mindset
Kanban
LAB
Systems Thinking
Iterative Incremental Development
Agile Delivery
Lean Agile Management
Lean Agile Organization
Scrum Primer
Amdocs
Sprint Iteration
Tools
Agile Exercises
Nexus Integration Team
Test Driven Development
SAFe Release Planning
Sprint Planning
AI Artificial Intelligence
Software Development Estimation
Agile Release Planning
Entrepreneurial Operating System®
speed at scale
Introduction to Test Driven Development
RSA
Professional Scrum with Kanban
Applying Agile Methodology
Software Development
Certification
NIT
Hybrid Work
Slides
Agile Program
predictability
ALM Tools
Agile and DevOps Journey
BDD
Agile Testing Practices
ARTs
Nexus vs SAFe
Portfolio for Jira
The Kanban Method
Pomodoro Technique
Jira admin
Advanced Roadmaps
What Is Kanban
Kaizen
Agile Games
Scrum Master
System Archetypes
Lean and Agile Techniques
IT Operations
Risk-aware Product Development
Scaled Agile Framework
Kanban 101
Webinar
Kanban Basics
Continuous Integration
Atlassian
Agile
Risk Management in Kanban
Team Flow
Lean Agile
Lean Risk Management
Agility
Games and Exercises
Acceptance Test-Driven Development
EOS®
Legacy Code
Self-organization
Kanban Game
TDD
Kanban Kickstart Example
Managing Projects
ATDD vs. BDD
Implementation of Lean and Agile
Kaizen Workshop
Agile Product Development
Nexus
Agile Release Management
Coaching Agile Teams
Rapid RTC
RTE
SA
Introduction to ATDD
Operational Value Stream
Lean Agile Basics
Large Scale Scrum
Artificial Intelligence
DevOps
Story Slicing
Continuous Planning
SAFe
SPC
Agile Project
Jira Plans
Agile Community
Agile Israel
POPM
Agile Games and Exercises
AI
Scrum Values
Agile Basics
Lean Startup
Accelerate Value Delivery At Scale
Releases Using Lean
Change Management
Elastic Leadership
Jira
Legacy Enterprise
Reading List
An Appreciative Retrospective
ART Success
LeSS
Scrum and XP
Program Increment
Spotify
Business Agility
Perfection Game
AgileSparks
Logo
Enable registration in settings - general

Contact Us

Request for additional information and prices

AgileSparks Newsletter

Subscribe to our newsletter, and stay updated on the latest Agile news and events

This website uses Cookies to provide a better experience
Shopping cart