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:

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