Skip to main content

Your Conscience (Part-2) and Test-Driven-Development

... contd. from Part -1: Your Conscience is Your Compiler

Friend: Ok, got it. I used to think these are instincts.

Me: Well, you can hack it, i.e. ignore your conscience, but then you're corrupting your "code" and it affects your "program" behavior. And soon, you can't fix it anymore.

It's gone, unless you do major "refactoring".
Or a complete rewrite- which for humans is death and rebirth... and what does anyone know about death and beyond anyway?

In this life, you can only do refactoring, there's no rewrite.

Friend: Nice analogy. TDD!

Me: Well, TDD- Test-driven development is to ensure you are always following your conscience...But at the same time, allowing yourself the oppportunity to learn and the privilege to change your mind some day as you mature. TDD lets you easily incorporate lessons you learn as you grow and mature. It helps you change more easily than would be otherwise possible for you. It helps you easily figure out what went wrong- and how to fix it! And in fact, it would be so obvious and simple that even someone who doesn't know you much can help pinpoint it to you. I can go to a stranger and discuss some of these issues... and they'll say a thing or two that'll tell me immediately what I was thinking or doing wrong. It helps me change myself with objective criteria.

Friend: yeah

Me: TDD, my friend, is the best thing that happened to software since software was created...

Test-driven-development is turning the software "animal" into a software "human"!

TDD is the conscience of Software!


[Originally posted on my personal blog at muralikd.blogspot.com, September 27, 2010]

Comments

Popular posts from this blog

Splitting User Stories vs. Rally's "split" feature (that has nothing to do with it!)

Agile tool Rally has a "split" feature it recommends to handle "unfinished work" in a Scrum Sprint: Manage Unfinished Work - Split user stories ( new link ) Below are my observations on the "Split" feature in Rally (followed by a few excellent articles on Splitting User Stories):   This "split" feature in Rally has numerous problems: 1. Nothing to do with Splitting User Stories It has nothing to do with "Splitting a User Story" which is an advanced but fairly well-understood field in Agile, and a tool for Product Managers to use in one of the two scenarios: The Product Manager does it before an Iteration commences (i.e. during backlog creation or release planning) to create User Stories by business value that are right-sized, i.e. they can be comfortably implemented inside an iteration; The Product Manager does it in Iteration Planning or in the middle of an Iteration to reduce scope by removing/simplifying accept...

Agile Entrepreneurs Manifesto

The  Agile Manifesto  defines the 4 core Values that define "Agile":  " Individuals and interactions",  " Working software",  " Customer collaboration", and  " Responding to change" As I applied Agile requirements (user stories), engineering (XP), and process & project management (Scrum & Kanban) to my startups  (RideStation, and Agile Entrepreneurs)  starting from 2005 to now in 2018, I learned numerous lessons and shared them with my fellow entrepreneurs for the next dozen years. These lessons I have incorporated by "extending" the Agile Manifesto with two additional values pertaining to  Product (5th) and Startup/Business (6th)  -  that the services consultants who wrote it in 2001 probably didn't have to contend with as most (all?) of them were not founders of product startups:  "User Validation, Customer Traction, and Business Milestones" Agile Entrepreneurs Manifesto Us...

User Stories for Product Managers

I've previously said that User Stories are the most powerful construct in Agile methods, more than TDD, in my view. The challenge in using User Stories though lies in the fact that they shift the responsibility of getting things right - and quite fairly I might add - from the Engineering team onto the Product Owner/Product Manager. And unless you have strong buy-in from management, it's difficult to make it to the end of the Product Management process and to a point where you're cranking out iterations one by one. The key lies in efficiency in creating and managing User Stories, and tying them effectively to an evolving User Interface even as the product starts coming alive. I'm planning to share some of my experiences and thoughts on this soon. Meanwhile, I found this interesting article while searching the net for splitting stories along CRUD capabilities. Ways to split user stories .