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:

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