Agile Methods in a Waterfall World: Speaking In Code

Starting up a new project, and I’m definitely having fun with it. At first glance, it looks like a fairly small, departmental application, but it is actually part of a web of disconnected processes and local databases (ie. “a mess”) that support some fairly important master data. Also, the folks I’m working with are much more comfortable in a “waterfall world”, with formal requirements followed by code, test, and deploy.

Lots of opportunity for process coaching and new methods – I’ve started notepads on data models, process maps, glossaries, even “best practice” lists for app dev processes like Requirements Gathering.

One session in particular was quite interesting. I am working with a developer on a Notes database, but I do not know the language (LotusScript, or whatever). Oh, I’ve seen it, and can figure out what’s going on, but don’t ask me to code anything! Anyway, the developer was educating me about “workflow”, and the Notes app’s propensity for spitting out email notification when Significant Things happened. When we clone the production database, we’ll have to trap all of those emails, lest our testing process spams the department with meaningless links.

The developer started talking about a “global search” and a lot of hand coding, but I had a different idea. Not knowing the language, I just pulled up a screen and started typing VBA-like pseudo code …


Is this how it currently works?

    Sub btnSendInfo_Click()
       Send Mail to samir@initech.com
    End Sub

Yes

And you were going to fix it like this, right?

    Sub btnSendInfo_Click()
    ‘   Send Mail to samir@initech.com   ‘ comment out this line
       Send Mail to michael@initech.com
    End Sub

Why, yes

What if we did something like this?

Global Const iDebugMode = 0

Function SendMailAddress( sAddress as String ) as String

if iDebugMode = 1 then

SendMailAddress = sAddress

Else

SendMailAddress = michael@initech.com

End If

End Function

Sub btnSendInfo_Click()

‘   Send Mail to samir@initech.com ‘ comment out this line

Send Mail to SendMailAddress( “samir@initech.com”)

End Sub

The neat thing was that I couldn’t even finish typing some of these sections when the developer started assenting with verbalizations that indicated understanding (ie. “grunting acks”). He had seen some .Net stuff, I was mangling some of the syntax, but the basic pattern was easy to see. It was about 5 minutes of silence, save for the clicking of the keys – we were Speaking in Code, and it worked great!

This Post Has 0 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Articles
Complexity Buzzword

Navigating Buzzword Overload: Complexity

Complexity means different things to different people in different conversations. Are we trying to simplify a process? Complexity is bad. Understand a supply chain? Complexity is good. Don't buzzword your initiatives with "complexity" until you get a wee bit more specific.

Read more
Saving For A Rainy Day ... (Innovation Budget)

Accelerate Innovation with a Simpler Budget Approach

Organizations are desperate for innovation, but these are still investment choices that require complete and credible data to enable the right decisions. Developing a simple standard for characterizing all costs will accelerate decision making.

Read more

An Author’s Journey – The Editor’s Harsh Bright Light

Second in a series of articles on the creation of Don’t Think So Much. Exposing yourself to the unbiased eye of your editor will be a humbling, but super valuable, experience.

Read more