Online Chat

Use the window below to chat with me (if I'm online ...)

Use the edit nick field above to let me see your name.

cazh1: on Business, Information, and Technology

Thoughts and observations on the intersection of technology and business; searching for better understanding of what's relevant, where's the value, and (always) what's the goal ...

Monday, September 29, 2008

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!

Previously ...

Technorati Tags: , , ,
,

Invisible Technorati Tags:, , ,,

Labels: , , , ,

<< blog home