Friday, April 08, 2005

Agile in the trenches

So who does this agile development stuff?

Ron Jeffries. Martin Fowler.

Duh. Who does it that's never met either of those two people? Who's actually doing this down in the trenches to develop real software applications? Most importantly, who's never met these two people, develops real software applications with agility, and has a blog?

Me, I guess. But here's a few others:

http://pab-data.blogspot.com
http://tedogrady.blogspot.com
http://hhroark.blogspot.com/
http://geekswithblogs.net/sbellware
http://theagiledeveloper.com/default.aspx
http://www.undefined.com/ia

Importance of the church web site

As Jordon Cooper was considering a church, he found very little about it. He'd find even less, I suspect, about our church if he looked for it. Quite apart from the generic name "University Baptist Church", the web site domain, www.ubcvbs.org, has been down for months now after I let it expire. When I realized it, I wrote to the registrar (Melbourne IT) asking if they'd drop it so I could get it back, but they told me to wait 76 days after the drop date. Ouch. But I'm sure that period's expired now, and I'd really like to get the site back to get ready for Vacation Bible School, the whole point of the vbs portion of the site. In the meantime, the site is hosted at one of my other web pages, http://fulton.home.insightbb.com/ubc , where I'm sure it gets about a drop of google juice a month, and no incoming links. Most annoying. I wonder what people would google for if they drove by and wanted to know more?

Problems of Software Development 2

I discussed some problems with software development here.

So what can be done? The basic problems I see here are #1: The Deadline, and #2: The Database. The programmers work in a panicky rush to fulfill all the items in the Database before the Deadline. So let's start with the obvious: Get rid of the deadline.

"Say what?" I hear you cry. "We can't just never release the project!" No, I'm not saying that. I'm saying - and this is one of the requirements of agility - release early and release often. Get the application into the hands of the users and let them bang on it. They may not find all the really picky little bugs, but that's OK for 99% of the users who won't ever use that functionality anyway. More importantly, the users are going to find the things like the button on the wrong form that would save each user four clicks if you just moved it. They'll find the missing report that they didn't know they needed until they saw how useful it would be with this application. Get the application out there quick enough to catch those things - and then fix them in the next release! How often? Every two weeks, I hear, is pretty reasonable.

But the objections now come thick and fast. "We don't have the manpower to test all the whole program every two weeks!" "Our users are going to file hundreds of change requests! The developers will be buried!" "How will we ever know when it's done if we don't have the requirements set in stone up front?" I'm not the greatest practitioner of agile methods in the world. But what I have found is that for every objection that someone makes to an agile idea, there's a pretty good response from the agiliots. I'll try to come up with responses to these next time. Oh, and I've even been working on an application! I'll try to get up to date on that as well.

Wednesday, April 06, 2005

Big visible belly

I love Brian Marick's idea to help him lose weight. I weigh almost exactly what he does, but I'm not as agressive in my goals; I'd like to be around 175 by the end of the year. I'll be comparing my weight to his though!

Problems of Software Development

I'd hazard a guess that most companies develop software in a manner somewhat like this: they come up with a short list of features, break those down into a whole bunch more smaller work units, assigning those to some programmers, and then go back and review the database every so often to see how many of the work units remain to be completed.

Now, for the most part programmers are good people. They're interested in the project; they want to do a good job and make something easy and fun to use. So what goes wrong? Why do most applications ship with glaring bugs and obvious usability issues?

Here's why: Everything starts to revolve around this work unit database. Near the end, emails go out to the programmers saying, "I see you still have six work units left. Will you be able to get all those finished by Friday?" As the project moves forward, additional work units are added for new features or bugs. More emails go out. Eventually the project gets thrown to a tester, who enters dozens more work units. The programmers, faced with a long laundry list of items and a deadline, starts to cut corners. "OK, this item says we need to add a State Last Worked In field to the form. I know we're eventually going to need a Zip Code too, but I don't have time to worry about that; I have 15 more units to finish by Friday!" So the program goes without the zip code field. It goes back to the testers, who look at the list of completed work items; yup, there's the State Last Worked In field, looks good. Nobody's told the testers exactly what the purpose of the application is, so they don't know that a zip code needs to be there. Finally, all the laundry lists are complete, the testers sign off on it, the application ships. And customers look at it, scratch their heads, and say, "Why on earth didn't anyone think to put a zip code on that form?"

So what can be done to break this cycle? Well, the various methodologies that call themselves Agile have some ideas.

Tuesday, April 05, 2005

Buying some oil tankers

I bought some shares of Nordic American Tanker (NAT) today. I went in looking to put some money into China or maybe Hong Kong in raw materials or transportation, but I really didn't see a whole lot in raw materials that really struck my fancy. NAT is based in Bermuda, which I find really strange; you hear a lot about off-shore tax shelters, and this may be exactly what this is; but I don't see anything wrong with it. It's a public company, and I can buy shares and make a nice dividend return, and that's all that's important to me. So we'll see. As a shareowner they'll be sending me their annual reports in nice printed pages, so maybe once I see those I'll see some disadvantages. In the meantime, maybe I'll ask them to put the current locations of the ships on their website. It'd be just like playing Risk :)

Sunday, April 03, 2005

What did we do that worked?

The site "Church Marketing...", well, something or other, asks, "What did you do this weekend that worked? What did you do that didn't work?"

Great questions. Our service wasn't a whole lot different for Easter than it was for other weeks, but all I have to do is look at this week's service to get a mountain of ideas.

Why don't I keep a camera with me every week? We planted a tree in memory of a passed congregant after service. There were some cameras there, at least. I'll hope to get some pictures for the website.

Our service recording/archiving plan needs work. I didn't bring home the cassette tape with me, for copying to CD.

We got some brand new cubbies for the nursery. That should be handy, although volunteers are needed less in the nursery now that we have a paid worker again.

What did you do that worked? What did you do that didn't work?

Church management software part 3: Creeping feature

OK, the very next thing I intend to do is expand the range of the product a little. For months I've been primarily responsible for attendance-taking in the church; collecting the sign-in sheets, checking for visitors, trying to make sure they're followed up with appropriately. So this is an obvious extension piece for this software; a way to track attendance and followups. I'll think some more about the design of this, but it's similar in many ways to what I've already stated - data entry screens, a data store, and reports, so hopefully there will be some opportunities for refactoring here. Also, requirements for security are a lot less stringent - the data that is kept is names, dates, addresses and phone numbers, rather than social security numbers and income. So it's a bit easier to put together.

So right now, we're looking at three main pieces of the application: benevolence; attendance; and updating (wonder if I can come up with a word that means "updating" that ends in "ence", that would be cool). For ease of updates, we'll split these out into several assemblies:
  1. A stub. This will be the launcher application. It will be very simple and hopefully will allow us to update the other pieces very simply.
  2. A Benevolence assembly.
  3. An Attendance assembly.
  4. An Updates assembly.
  5. A Persistence assembly. This will handle the interface to the data store. Now I really need another word for "Updateance"!

Next step: We'll throw a few screens together and see how they look.

Politics of choosing the next Pope

Friday, April 01, 2005

I still don't get Technorati

Poking around for information on this project, I did a Technorati search for "Church Software". This blog came up, updated 2 hours ago:

Reality Distortions: The Beginning

Very nice. Seems like an interesting guy. But this post was done four days ago. Why does technorati say it was two hours ago? Was there a format update? I don't get it. DLux, drop me a note if you want to talk about software for churches though :)

Church management software Part 2: Inherent requirements

So now we have a basic goal for the application; we have a vague idea what the users are going to want to do with it; the next question is, what are users never going to think about but are going to complain about if it is not present? Here's a few of those things.

#1: Security. We're talking about entering some very private information into a database here; not only are we talking about requests for charity, but personal data like social security numbers will be a likely requirement. Right now, the list of people to whom this information is available consists of: (a) the pastor, and (b) the deacons, and the file is kept locked in the pastor's office. So, while the ideal design would be a distributed one, keeping an online database behind a firewall and accessing it through a web service, I don't feel like I can guarantee the necessary security; even if I could talk all the users into keeping a nice strong password. So, for the initial pass, the data will be kept in local files on the computer. Presumably, when it is actually deployed, it will run on a single password-protected computer. I have some thoughts about using Windows Users and Groups to handle Role issues.

#2: Integrity. An important requirement for a church, huh? But specifically, I mean that the data shouldn't be corrupted; or at a minimum, regular backups should be arranged. The target audience for this project is a small church, and it's a pretty good bet that they won't be doing nightly tape backups of their systems. So at a minimum, regular backups should be done like Microsoft Word does, every minute or so; but ideally there would be a way to automatically back up to a different machine.

#3. Updatability. This is an agile requirement, really. I want to make the software very easy to update so that users will be encouraged to use the latest software at all times. This is a huge benefit for software developers. There's nothing worse than trying to figure out an issue based on a user who's running code from two releases, three service packs, and a hotfix ago. If people come to me for support, my first question will be, "Are you running the latest code? No? Update, and call me back if it's still happening."

Another agile requirement is that you avoid overdesigning the aplication. So, it's past time to write some code. One concept that really appeals to me is "Release 0". That's where you get an application out there that doesn't do anything at all except know how to update itself. Let's see if we can do that next.

Thursday, March 31, 2005

Church management software

One thing I'm looking to do is to make this blog a little more technically oriented. My other blog is really an Interactive Intelligence thing - the site is clientcom.blogspot.com, and it's named after the Interactive product ClientCOM; so it really seems most sensible to keep posts to that blog on ClientCOM - tips and tricks for using it, etc. Unfortunately, soon after I started that blog, I stopped focusing on ClientCOM in order to do other things, so it has been dark for quite a while. I'd like this blog to be about some technical work I'm doing, as well as the books and plays I'm currently seeing. (Once again - blog categories. C'mon, Blogger!)

So my church is looking for a better way to handle benevolence requests. These are requests that come in from people who need charity - say, $100 for fuel in the winter, or help with gas to visit a sick mother. I was casting about for things I might do as a Micro-ISV, so I thought I might be able to help out - and perhaps, if it works out well for this one church, be able to sell the application to others as well. That's a bit of a ways off, though.

So I'm tackling this project; more or less on my own as far as the design goes. I don't think my "customers" are going to be too demanding, so I'll have to keep on top of them to make sure that the application is actually useful to them. I'll be creating the design and requirements, etc., myself, so I think this is a good application to use some agile methodologies on. Specifically, this project will have: Test-driven development, frequent iterations, and easy updates.

So what are the requirements? If I ask the pastor, I'll get an easy answer: A way to enter benevolence requests online, without paper forms. A surprising addition, to my mind, is: A way to track down resources that might be able to fulfill a request. What this is, basically, is an algorithm for finding places that will take vouchers for gas; maybe food banks that could help a hungry person, etc. To my mind, these are such different goals that I'll just be ignoring this one, until I get further along in the development. So I'll concentrate first on the paperless form.

So the next question is, as a techie, what requirements do I see that underlie this prime requirement?
  • A backing store
  • Data entry screens
  • Reports

Seem to be the minimum. I'll think about how I'll be fulfilling these requirements next time.

Tuesday, March 29, 2005

Writing again

I've been so busy lately that I haven't bothered to write anything. But today I fired up Bandit to catch up a little bit on http://scoble.weblogs.com/, and I remembered what it's all about. It's about keeping in touch. It's about exposing a little bit of yourself to the world. Blogging is an interesting feedback loop. You write something interesting, and people read what you have to say. But if you don't write anything interesting, no one will visit your site; so it's about buzz, it's about attention. There's lots of interesting things going on in the blogosphere, and no one has time to keep up with all of it, but to keep in touch you absolutely have to do one thing: write. I think blogs, along with wikis, are the most important new internet development in years, and I'm trying to figure out where I fit in. I should be writing about work. I should be writing about church. I should be writing about interesting things I find on the internet. I should be writing about Extreme Programming, or C#, or Ultimate Frisbee, or anything I know something about.

There's some similarities between blogging and Extreme Programming, I think. They both rely on a tight and fast feedback loop. They both support rapid and easy change. They stress communication as a core value. And maybe most importantly, they both require a lot of discipline. It's easy to write code, hard to remember to write a test every time I make change. It's easy to start a blog, hard to remember to keep it going and keep it interesting.

So maybe this is my latest attempt to regain the discipline. I'll try to write some interesting things. We'll see if it works :)

Friday, December 03, 2004

Ballet Review: Nutcracker

As a matter of fact, I don't go to a lot of ballets. It's not really that I have any objection to them, but on the whole I tend to prefer opera, or at least a play. But it's definitely one of our holiday traditions now, to swing over to the IU Musical Arts Center and catch Nutcracker when it's here. A couple of years ago a friend told us that we were really lucky to see Julie Kent performing in it, as she was one of the greatest American ballet artists living, and we felt appropriately privileged, but Julie was back again this year, so she must have some kind of special connection with IU and it wasn't a once-in-a-lifetime experience.

Highlights: The Arabian Dance, Mother Ginger, and Damian Woetzel as the Cavalier. I thought his solos were an impressive display of leg strength. He's from the New York City Ballet. His duets with Julie Kent were good too. Mother Ginger is played by the same person (Colin Donnell) every year and he's utterly hilarious, camping up the role and bumping and grinding his 20-foot wide hips. Joshoa Sutton and Angelina Sansone did a very erotic Arabian Dance. They play a snake and a snake charmer, and she spends her time mostly crawling up and down his body. You could just feel the steam coming off them. I mentioned it to my wife, and she said, "Oh, the one two years ago was hotter." Guess I was still too sleep-deprived then.

Lowlights: The Prince didn't quite make it under Father Christmas's robe. You could see him running along behind, and that effect didn't work at all. I've thought the last few years that the magician (Theodore Keener) kind of gets short shrift. You can see the intent in what they're doing, to make him look mysterious and magical, but the timing always seems to be just far enough off that you don't get the impression of a puppetmaster pulling the strings of the other characters that they're going for. We thought the choreography in the Dance of the Snowflakes was slightly off.

In general: Fritz (Justin Zuschlag) was very effective, hassling the girls, swordfighting the magician, and sticking his tongue out at him when he thought he could get away with it. I wasn't that excited with any of the marionettes, which is a bit odd, because Joshoa Sutton played the Moor, and he also played the Mouse King and the snake charmer very effectively. They've redone the Chinese dance recently. I dunno; the dancers were very good, but I think I still preferred the dragon from last year. The Russian dance is my favorite to watch, it just pulses with energy. There was a baby on stage for the party scene. The lady next to me said it was Ms. Kent's, which is why she didn't perform last year. Having a baby must be one of the worst things a professional dancer can go through.

Here's what I found most odd: I think they were lacking a dancer. Not that they were lacking any of the parts, but the sequence at the beginning of the second act where the prince narrates the battle with the Mouse King, is supposed to be narrated TO someone - and no one was there! They told it all to themselves, just a little narcissistic reminiscence. I also thought that Julie Kent played the Dew Drop Fairy, but now that I check my program I see that's wrong; unless maybe that dancer was the missing one and Ms. Kent took over for her.

It seemed short to me this year, but maybe that's the sleep deprivation again. I can't imagine what they would have bothered to cut. We were home by 10:30. It plays twice tomorrow and once again on Sunday. See it if you have a chance!

Wednesday, December 01, 2004

IU loses to UNC 70-63

I listened on the radio and followed along on the free peegs board, so I don't have any real insight from watching the players. But here's a few thoughts.

What I know: IU couldn't shoot to save their lives, and I don't think Carolina was much better. So why can't they shoot? The announcers say, "They don't translate what they learn in practice into games". The fans say, "They have a lousy coach." I think it could go either way. Coach Davis' first really good recruits were Marshall Strickland and Bracey Wright, and as one Peegs poster pointed out, neither one is any better as a junior than they were as freshmen. Coach's fault, or players? We won't know until - or perhaps unless - we get to see him coach a few more recruits.

What else I know: I love the freshmen! They're out there hustling and working, and Vaden nailed three three-pointers in the last couple of minutes. That's a great sign. But, so ends the first game against a really tough non-conference stretch. We'll see if the team gels...or perhaps just learns to shoot.

Tuesday, November 30, 2004

IU Basketball

I may get in the paper again tomorrow, with a comment about the Indiana basketball team. I said they would be better than last year, but not as good as next year. Here's the thing about the team: we are just now getting to the point where the last pieces of fallout from the Knight firing are manifesting. The seniors from this year - and make no mistake, it's a bad senior class - are the group that would have been recruited primarily after the firing, but before Coach Davis was given the job permanently. I don't think Adolph Rupp could have done much of a recruiting job under those circumstances. I'm hearing quite a bit of rumbling about how this might be Davis' last year, but I don't buy it. With the two Auburn transfers that will play next year, with a couple of good recruits, with maybe a couple of starting forwards taller than 6'3", I think the program might be able to get back on its feet.

Now, the Davis philosophy towards recruiting is a lot different than Knight's. We've moved from the real recruiting of student-athletes to going after the NBA talent that all the Kentuckys and Arizonas like to have. I really miss watching a smart kid with not much athleticism, like Jarrod Odle, going up against some bozo with no interest in anything but the NBA draft, like Joel Przybilla, and taking him to school. We won't see any more of that.

Well, we must move with the times. Indiana, our Indiana, Indiana, we're all for you!

Saturday, November 13, 2004

Letter to the Editor

I love it - after telling I-69 opponents not to vote for Libertarians, the newspaper - and I assume Kurt Van der Dussen again; I wish they would admit it! - now claims that every single opponent of the highway must have voted for them. Here's what I wrote to the editor in response:

After a long battle, it seems fairly clear that the issue of I-69 has resulted in a victory for big business interests over consumers, and the highway will be built. Those who continue to fight on must surely console themselves with the adage that the only cause worth fighting for is a lost one.

But the Herald-Times' position on this issue has moved beyond "supportive" to "obsessive" and maybe even as far as "flaky." Almost the only mention of the highway in the last month has been on the editorial page, first by telling highway opponents not to vote for a tiny third party, and later, bizarrely, by claiming that the tiny third party's tiny vote totals must have represented all the opponents. For my part, I suspect that many voters found the arguments in the first editorial compelling, although judging from the second the H-T must not have thought so.

Still, those who are against the highway can do nothing less than thank the Herald-Times for keeping the issue in the public eye. No cause is ever truly lost until it is no longer talked about.


There is a 200-word limit; this is about 190 words. I worked for a while trying to get in some points about the Libertarians, and how the number of people who were even aware of Gividen's anti-highway position was probably pretty small, but I decided to keep on message for this one. (I can write one letter per month, maybe next time!)


Friday, November 05, 2004

Oooh, new cell phones today

When our contract with Cingular ended we decided we wanted to switch; the reception isn't that great at our house with them and we really hope Verizon has some closer towers. We're upgrading our phones from ancient huge things, so pretty much anything we got would have been a big improvement; that's why I chose the free phone and the wife got the $20 model. She's spent all day entering numbers. I haven't played with mine yet, but I intend to upgrade when I get a chance. I want a WiFi phone. Working for a VOIP company I don't see much point in bothering to use anybody else's bandwidth if I don't have to, though. I'm thinking that if I can get a phone that is WiFi compliant, I can probably get it to run it off my home network. There aren't any available in the US as far as I can tell, but here's some possibilities, if they ever make it to market.

Tuesday, November 02, 2004

Election liveblog

9:40 PM, Indiana time. Polls here have been closed for nearly three hours, but the minute they closed Indiana was announced for President Bush, unsurprisingly. It's been known for weeks.

The most interesting thing I've heard so far was a report on CNN that the Kerry folks were very optimistic about Ohio. There certainly hasn't been any formal report - none of the networks would dare - but this informal report is the most exciting news I've heard so far. Current score is Bush 171, Kerry 112. Dan Rather says the "Election is humming along like Ray Charles." Hmm.

9:56. They've announced that Mitch Daniels has won out over Joe Kernan for governor. I don't know how much difference that will make, really. I'm willing to give Mitch his chance. I voted for Kenn Gividen, of course.

10:00. Switching over to Jim Lehrer's Newshour. I'm sorely tempted to switch off the TV; I think more information will be available on the radio. For some reason I went and looked at the radio station websites for results, without success, before going back to my favorite, www.heraldtimes.com, which had all the information.

10:40. Bush takes Missouri. He's now up 193-112. We're still waiting on the exciting states, though. No new news on Ohio, Pennsylvania, or Florida, and Michigan and Wisconsin are still in play as well.

Looks like a shift on the Monroe County Council. The three Democrats are up, and if they win the Dems will take control of the Council back. I have no real idea what that will mean for the county :)

10:55. www.cnn.com lists Pennsylvania going to Kerry. As I type this, Jim Lehrer also announces that, but the AP hasn't announced it yet. As I watch the election, I automatically add 55 votes to Kerry's score to represent California; if you do that Bush is still ahead 193-188. Yow, how long will I hold out tonight?

11:10. CNN now adds California officially to the Kerry side, and Idaho and Arizona for Bush. Bush 203-188. The Newshour analyst thinks Florida will go to Bush; if so it's very simple; whoever wins Ohio will win the election.

11:15. CBS shows the count as Bush 219-199. The "Bloody Ninth" is showing 49% each for Baron Hill and Mike Sodrel. I didn't realize that district was so much in play. I wonder if Baron Hill is regretting not answering the survey I blogged about before?

11:28. Hmm, CNN's "Crossfire" guys aren't too happy with Florida. Tucker Carlson: "I think we should give Florida to Puerto Rico." Paul Begala: "How on God's Earth do we not have absentee ballots counted in Florida?" (You would think that with all CNN's correspondents, they would be able to update their blog more often.) Newshour now shows Bush, 203-188.

11:42. ABC is willing to call Florida for Bush now. They were beat to it by several minutes by Instapundit. PBS announces Bush by four percentage points in Ohio, with 65% of the vote counted, and apparently people are STILL trying to vote in Ohio. VodkaPundit is practically calling the election over.

12:17. Cuyahoga County in Ohio seems like it could put Kerry over the top all by itself. PBS now reports Kerry taking or ahead in Minnesota, New Hampshire, and Michigan. CBS, the most daring of the networks, shows Bush ahead 246-207. Barack Obama is giving his victory speech now; I bet he'll be a good senator.

OK, that's all I can do. Off to bed...but I'll have the radio on for a while!

Monday, November 01, 2004

Vote Green Libertarian

I got quoted in the paper last week for suggesting that I would vote for Kenn Gividen (L) for governor of Indiana, "to make my preferences known". Not a brilliant quote, but I had a 50-word limit. An editorial appeared in the paper a day or two later, saying that, "The sight of "green-minded" I-69 opponents urging us to vote for Kenn Gividen because he opposes the highway makes some people stare in amazement." I've been wondering since then if this was a direct response to my comment. I've had a few letters printed in the paper concerning my opposition to the highway, and while the paper's editorials are officially not signed - does anyone find it odd that letters to the editor are required to be signed, but letters by the editor are anonymous? - I can guess that the comment was from Kurt Van der Dussen from the insulting tone and the condescension. Kurt has been writing pro-highway stories for as long as I can remember, and I'm sure he writes most of the pro-highway editorials as well. Of course, on my part there's no inconsistency; I've steadily voted Libertarian starting with Andre Marrou for president in 1992, and when I wrote my comment I hadn't even considered the happy coincidence that Mr. Gividen was the only candidate against the highway, so thanks to the anonymous editorial writer for pointing that out, and strengthening my commitment nicely. Vote Green, vote Libertarian. Vote for anyone who has principles you agree with and has the ability to get the job done. Vote.