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

Dev and Test, Sitting in a Tree: K-I-S-S-I-N-G

Facebook
Twitter
LinkedIn
Pinterest
WhatsApp

When I was a kid cars didn’t have seat belts in the back seat. We used to fly to and fro all over whenever the car took a turn. These days my kids shriek with horror if we forget to buckle them up and the car starts moving. That’s the mindset.

Some time ago I led a code retreat event. In the first session, I asked the teams to try and build a simulation of Conways’ Game of Life. Immediately they started coding the simulation.

That was odd.

You see, I usually don’t write any code before I have a test ready to run it. What’s the point? I like it when one key press runs all the tests. It makes me feel safe. It’s the same as when I’m getting into my car I wear the seat belt.

When the people at the session were done with coding, they wanted to see if it works. So they wrote a short main and started debugging.

“They wanted to see if it works.” I’m familiar with this. I also used to write code and then just wanted to make sure it works. These days I have a concrete objective in front of me: a test that should pass.

When I started TDDing (Test Driven Dedign/Development) it was strange. I wanted to write code and I felt messing around with the tests was a waste of time. But as I did more and more of it something changed. It made me feel safe.

On the second session of the aforementioned Code Retreat I asked the people to do the same exercise, but this time the test first. They didn’t understand. So I showed them: I take a blank project and write a test. I start with the assert statement. I use in the assert a Class that I still don’t have and also probably a Method that I don’t have. Then I write the code in the test that comes before it. Then I use the IDE to generate the missing classes and methods. Enlightenment!

In the same way that you don’t build a house without scaffolding, you don’t write code without tests. When you start with the tests, you write code that is more testable. When you build a car, you build it so you could have a proper place to anchor the seat belt. It comes together.

(And it works as well with Legacy code. Read Michael Feather’s Working Effectively with Legacy Code. We will also write about it here.)

It is true for a single developer doing unit tests and it is true for QA people running System Tests: Testing and Development comes together.

Dev and Test
sitting in a tree,
K-I-S-S-I-N-G.
First comes learning,
then comes practice
then comes software in a baby carriage… 
:-O

Subscribe for Email Updates:

Categories:

Tags:

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