Friday, March 14
Back to clients today after working solo yesterday. Classes for printing are shaping up though slower going than I had estimated. I occasionally imagine myself pair-programming the new Diktat classes. In my imagination we seem to be working faster, but then in my imagination I was working faster than this solo.
While I was away the trainers devised new test cases. With the refactored code, setting up the tests is slightly easier, and reconciling differences with the model answers is quite a bit easier.
Joe joins me next week for 2-3 days to see if we can work out how to share development. It's a slight but manageable risk to having Release 1 ready for 25 March. (We deferred by one day so I can attend a wedding out of town.)
posted by Stephen Taylor |
10:31 PM
Wednesday, March 12
A day spent refactoring. Expected to spend 2 hours on it this morning, spent the whole day.
First renamed some extracted data fields to fix mistakes in my understanding of which mainframe screens they come from. That broke most of the 32 cases in the test suite, so I edited it to reflect the new names, and wrote simple tools for that as I worked. That did take about 2 hours before we were passing the tests again.
The APL calculation functions started off closely following the clerks' checklists. As I've developed them, the structure of a Policy class started to clarify in my mind. That got clear enough today that I rewrote the code around a class structure, then revised the test suite to correspond. I also took out a number of algorithmic redundancies seen in passing. By 4.30 all the tests were passing again.
Conclusion: while I had a different agenda in mind, the refactoring was better done today. I'm now in good shape for tackling the output documents tomorrow. And I would never have been able to complete such radical refactoring in a single day without the automated tests. Never, ever.
posted by Stephen Taylor |
10:10 PM
Tuesday, March 11
Pair programming with the customer. The clerks training me are reading over my shoulder now, checking rules on screen. The code to them is like a foreign language in which they recognise some words and phrases. I have laid out the high-level code to resemble their own procedure checklists, with similar comments and headings. So they can find their place and look for familiar terms. And I've been careful to use their terms as I build up my vocabulary of APL functions.
Today Kim returned from a conference with other trainers to find out whether we had included a rule they had been discussing. Do we, she asked, check whether the valuation date is earlier than the third policy anniversary before the original retirement date? She scanned the screen, found her place and saw
valdate>2 yrsBefore pol.StartDate aoob4 origNRD
They can't write code, but I've been translating it into English, pointing at the words, and they follow the thread. It's like my Italian. I've never studied Italian, but I can recognise enough to say what a newspaper article is about.
I'm ruining them for traditional software development.
Got hold of an output document and its embedded macros today. Tomorrow I'll build the text library, the scribe to produce an RTF document from a diktat, and convert the Word macros into a script. Yee ha.
posted by Stephen Taylor |
6:32 PM
Another day away from the customers: doesn't feel right any more. Visited Paul to discuss the data fields to be retrieved from the mainframe. Do we know what they are yet? Yes and no. Yes, because the clerks have reviewed the mainframe screens with me and highlighted the fields they copy. No, because that process missed some fields, which we found when they taught me some of the procedures and I coded them. I haven't coded all the procedures ergo we don't know what all the fields are yet. So I upgraded the testing rig to index the data fields from the test suite.
Also created a Policy class and started converting existing functions into its methods, revising test cases to match.
Simon Garland suggests having the mainframe data exported as a Web Service, eerily echoing the BCS-OOPS evening seminar series Peter, Paul and I've been attending.
Tomorrow (today by the time I post this) the users and I will finish the procedures for Release 1 and review the output documents and the rules used for writing them.
posted by Stephen Taylor |
1:02 AM
|
 |
 |
About this blog |
 |
This is the journal of an APL project in which I'm trying out some XP practices. I presented some of my conclusions in a research report at the XP 2003 conference in Genoa in May 2003.
This is also my exploration of blogging. So you may find the appearance of the blog changes drastically from time to time. Or it might be broken next time you visit. It's my personal sandbox.
|
 |
Quotes |
 |
It's so refreshing to have an almost instant IT solution without endless meetings, planning and yet more meetings.
We've probably been spoilt for the future, but long may this approach reign!
Kevin Wallis
I love it when a plan comes together!
Kim Kennington, The A Team fan
Sarah said
Less is more;
for what we are about to receive, to APL we are truly grateful !!!
Sarah Glasgow, Thomas Cranmer fan
I'll say no more than necessary; if that.
Stephen Taylor, Elmore Leonard fan
|
 |
Links |
 |
The Agile Alliance is a non-profit organization dedicated to promoting the concepts of agile software development, and helping organizations adopt those concepts
XProgramming.com an Extreme Programming resource, including XP Magazine
Dyadic Systems the Dyalog APL developers. Home of D, Namespaces, Reference Arrays, and
possibly the finest development environment for GUIs in any language
A Programming Language Paul Mansour's blog on APL software development, and inspiration for this blog. Paul, imitation is the sincerest form of flattery
Vector the Journal of the British APL Association, edited by Stefano 'WildHeart' Lanzavecchia
SIGAPL the ACM Special Interest Group for APL and J
Eberhard Lutz on collection oriented languages
Comp.Lang.APL discussion board
|
J Software
Home of J, Iverson's successor to APL, with special emphasis
on understanding mathematics. Take a free
copy for personal use
|
A+ a stripped-down, ASCII-only, run-like-a-train APL subset designed for Morgan Stanley's trading-room applications by Arthur Whitney, the original Jack of Speed
Kx Systems What Arthur Did Next. After Wall St, the language Whitney wrote for his own use to program a database to run 1-2 orders of magnitude faster than Oracle. (Take a free evaluation copy.)
Pavel Kocura teaches K at Loughborough University
|
 |
Code |
 |
This site uses a special font to display APL code that may be downloaded from Dyadic Systems.
Correspondence: sjt@lambenttechnology.com
|
 |
Archives |
 |
|
 |
|
 |
 |