Dispatches from Maine

Just another person of little note writing about ordinary things. That I reside in Maine is icing on the cake.

03 April 2008

ACCU, Day Two

The intellectual feast begins today! The keynote, by Tom Gilb, earned a pretty ruthless reception by the audience, particularly when he referred to there being no resources for guiding large projects with Agile. He indicated a book would be forthcoming, meanwhile the woman two rows in front of me rose to say the book had already been out for four years. She wrote it! The general level of hostility rose over time to be sure.


After the keynote I went to the session "Santa Claus and other methodologies" by Gail Ollis. The focus here was to explain how to evaluate and select methodologies. There was a particular focus on detecting flaws and salesmanship in methodology training. I wonder if part of the problem of software development is that we are still having trouble refining working processes, rather we always tear down the temple and rebuild it anew. I am guilt of that myself, but as we focus more on refactoring and less on rewriting from scratch shouldn't we apply those principles to our methodology development? The session was rock solid and worth attending.


Having being lakosed the night before I went back to my room for a nap, but wound up talking to the family instead. iChat, with its built in video conferencing is just wonderful! Better rested, though hungry from having skipped lunch, I returned to the conference for the remaining two sessions.


"Snowflakes and Architecture" by Steve Love was quite interesting on two levels. First, I realized that we are not as well educated in the language and practices of modern software design as we ought to be. There is still a lot of resistance to interface based programming, a style which results from the dependency inversion principle, except as it applies directly to COM. I have often wondered if the aversion to interface-based programming is a classic baby-and-the-bath-water reaction. Since COM was both inflexible and slow it may well have ultimately bred resistance the very core of its programming model. The wrap-up of the presentation was a description of the "hexagonal architecture", now commonly called the ports and adapters design. All in all a very engaging and interesting presentation.


The final session paid for the entire trip, insomuch as I am concerned, it was "Error Handling and Diagnosability" by Tony Barrett-Powell. He is a maintenance developer with Oracle responsible for a particularly gnarly multi-threaded service. Handling, reporting and analyzing errors is, as he says, "Really, really important to me" or "I am really serious about this." The Play State object is particularly interesting for for tracing the progress of database transactions and then reporting detailed diagnostic information, when used in conjunction with dynamic logging levels, the value to *******, where I work, is particularly valuable. Since we sell a very database-intensive application which works with user data, the part we rarely have access to, the information provided to tech support and/or development would be invaluable. He also made reference to "Patterns for Generation, Handling and Management of Errors" (PDF and More ... PDF) which I fully intend to search out and read.


As Steve and I were both exhausted from our lakosing the previous day, we snuck off to The Plough, a pub around the corner from the hotel, for a quiet dinner.


(Pictures soon on Flickr)



Labels: , , , ,

ACCU, Day One

Finally the conference was due to begin! Steve and I were conducted to the Oxford Paramount in time for registration and our first sessions. I had signed up for Tom Gilb’s “Evo” seminar. We, at *******, used Evo several years ago for a number of projects. While it did a good job managing the detail level, it generally fell down for long term project management. For instance, with Evo we were never able to answer: How is the project against its total schedule? There were also defects in the small software application used to store the task, or time box, level estimations. There were a number of great ideas we took from Evo, however, including choosing a lower available effort level for a developer. Our Evo tutor, Niels Malotaux, encouraged us to limit “effort hours” available per week to twenty six.


While this seminar did provide some very useful insights, Gilb was too self-aggrandizing and too negative about other methodologies. I did like his shift away from the old Evo time boxes, six hours per task as we were taught, and toward “front room” and “back room” development. More than that the idea of establishing measurable, stakeholder-focused benchmarks in conjunction with requirements development. In our case, at *******, we could apply this concept to record the time of several common GIS edit operations and then set a goal for improvement by the next release of the software. A particularly time consuming task in **** is copy-and-paste from one layer to another. We are able to measure the time it takes to transfer a collection of objects from layer A to layer B for our internal customer, then set a goal for improvement. This type of operation is extremely frequent and would have immediate value for both internal and external customers.


After the seminar I changed into my suit and made for The Alfred Lodge on Banbury Road. The Oxford Masonic Centre is a very large facility with multiple lodge rooms along with conference rooms and dining halls. The large hall was quite beautiful with several pieces of 19th century furniture including the painted stands used by the Master and Wardens (pictures soon to be on Flickr). The Junior Warden, assisted by another Brother, examined me that I might proved myself as a Freemason. Afterward we made for the in house pub where I had a soda, since I wanted to pay attention to every detail of the ritual, and was treated as a long lost Brother. The ritual that evening was a double Entered Apprentice Degree which was sufficiently distinct from the American version as to be only mildly recognizable. The concepts are still almost the same, but the language is completely distinct. Unfortunately, there was not enough time for the lecture expanding on the symbolism of the tracing board.


Following the degree work we adjourned to the dining hall for the Festive Board. I have enjoyed this dinner, similar in Maine to our Table Lodge. The most moving and engaging part of the Festive Board was the chain and Entered Apprentice’s song. The song itself can be found in Anderson’s Constitutions of 1723, but the ritual really added a great deal to the moment. I reminded the new initiates, as well as all of the brethren, of our obligation to reach out and assist our brothers. I was allowed the honor of giving the response from the visitors.


My experience at The Alfred Lodge reminds me of the simple power and beauty of the Craft. No matter where you go in the world, you are not without friends. I hope to be able to share the chain ritual and song with my own Grand Lodge, perhaps encouraging them to renew this ancient practice.


After lodge I went back to the hotel and shared a birthday pint with Steve. Unfortunately, it was not “soon to bed” as I was soon lakosed.



Labels: , , , , , ,

30 March 2008

England, Day Four

Yesterday we left behind London and made our way to Witney to stay with Steve's family. As always the company and the food is delightful. For a late dinner yesterday we had a kind of shepherd's pie with spinach and seafood as a filling along with a delicious white Bordeaux. I ordinarily do not like white wine, but this was quite dry and very good.



In the morning I was on my own, so I made immediately for Oxford. There are no words to adequately describe Oxford. As an American I recognize that even our oldest history is quite young, barely four hundred years at the maximum. In Oxford there are pubs that old and all but a few of the college buildings are far older still. I went first to Blackwells bookshop, spending more than two hours purusing their second hand books collection. Last year I had the good fortune to find a copy of "Emulation: A Ritual to Remember" by Colin Dyer. This time, however, though there was only one Masonic title, there were several excellent Russian and Soviet history books. A bonanza for Tandy as it were.



I went right next door to the White Horse and had a ploughman's platter for lunch. Is there any better feeling than sitting in a small English pub reading a book by Dyer, his biography of William Preston? I doubt it. After a delicious lunch, and pint of bitter, I toured the Ashmolean Museum of Science and the Bodleian Library's Milton exhibit. The Milton exhibit rekindled my interest in his and Blake's work. The artistic elements, drawings, woodcuts and typefaces, were all out of the Art Deco and Arts and Crafts period. Very beautiful.



Having spent six hours touring museums and exhibits, Steve was due to meet me in town. I went over to the Kings Arms, very near the Bodlean, and had a pint of fine Cornish Bitter while waiting for him to arrive. Soon enough a huge table of American students appeared and it was momentarily hard to determine which country I was in. I read a bit more of the wonderful Dyer book on Preston, what an interesting man Preston was. I had long held the impression that Preston's dispute regarding the powers of immemorial lodges was based on some important, concrete topic (see Wikipedia), but it turned out to be a somewhat more personal dispute where, perhaps, he made the wrong decision and refused to own up to it. He took the 'passage to Ethiopia' as it were in Masonic terms.



Steve arrived in the midst of my reading about this controversy. Hungry as I could be we went to The Bear for fish and chips, delicious, and then to a few more pubs. We wound up at a pub called "The Cricketer's Arms" in Oxford. A large gray cat wandered in and went up to the patrons looking for a scratch behind the ear. We enjoyed out hand-drawn Old Speckled Hen and relaxed for the remainder of the evening. Then in the words of Pepys: so to bed.



(pictures are at Flickr)






Labels: , , , , , , ,

England, Day Six

Steve's parents were eager to show me a quaint English country village, which is how Witney appears to my eyes, so first thing today we were off to Burford. The village was truly beautiful as we sat around having tea at beside the stream running through the village.


Geocache


Nick-nacks museum


lunch of roast beef and yorkshire pudding



Labels: , , , ,

England, Day Five

The goal for today was to spend a few hours at the Ashmolean Museum. When I came to England last year the entire museum was closed for repairs and upgrading, so I never had the chance to tour the collection. I rose fairly early, just after seven thirty in the morning, and was due at Steve's parents for breakfast. Suddenly my problems resolved and I had access to work email. After more than an hour reading and responding to email, I suddenly realized it was Saturday. No one would care what I had to say about for several days! I packed up and headed off to meet Steve.



The bus ride was notable for the picture I took of the only toll along the road from Witney to Oxford. The pictures are on Flickr and show the toll being 1p ($0.02 US) per axel. The bridge is only thirty feet long, but that is a pretty inexpensive toll. Once in Oxford, Steve and I spent several hours touring the museum. My favorite household item is a set of six dinner plates with an almost Burma Shave expression on them:



What is A Merry Man



Set him do what he Can



To Entertain his Guests



With wine & Merry Jests



But if his Wife do frown



All merriment Goes Down.



The plates are dated 1738 and are obviously quite humorous. There was also a collection of Beadle's staves or rods. In old Lodge records from the founding in 1717 to the start of the nineteenth century the Tyler was also referred to, occasionally, as the Beadle. Americans best understand this position was the old colonial town crier. The beadle's staff was an important defensive item when walking through the town at all hours. These staves are far more beautiful than the normal painted wood version, and are likely to have been of a more ceremonial nature within Oxford.



For the second day a museum made me late for lunch and it was 2:00pm before we made our way to a pub. FIrst we tried Jude the Obscure in Jericho, but it had stopped serving a few minutes before we arrived. We turned toward St. Giles road and found ourselves at the door of The Royal Oak. It was the penultimate quiet English pub with comfortable chairs and great ale. I had a delicious hand drawn stout, making up or the complete lack of stout, other than Guinness "extra cold," thus far on my trip. Steve and I shared a ploughman's and fisherman' platter and resolved to return soon on Monday for lunch again.



From there we stopped in at the Lamb and Flag then returned to Jude the Obscure. We were both fairly tired, so we were soon back to Witney and to bed.






Labels: , , , ,

England, Day Three

Having spent most of the previous day geocaching for work, we elected to get right out and find the spots requested by the family. We were charged to take a photograph of the Peter Pan Statue in Hyde Park and another at Platform 9 3/4 within King's Cross Station. We rose before 7:00am for another delicious breakfast and headed for the local Tube station.



The morning was crisp and sunny as we walked through Hyde Park for the first photograph. The statue was very near to the Tube station we emerged room, so finding it was a breeze. We wanted to wander the park, but there was more to be done. Back into the Tube and we were soon at King's Cross Station. The platform was easily found and quite accessible. Having captured both of us on film, much to Steve's consternation, we wondered what to do next. Steve convinced me to go the United Grand Lodge of England Library on Great Queen St, Holborn.



It had long been my plan to spend at least a day at the Grand Lodge Library, but the jet lag/late arrival on the first day ruled out Tuesday. Then Wednesday was first recovering and then geocaching. I had all but lost hope of even seeing the Grand Lodge. We skipped right over lunch and went directly to the Holborn Tube station.



We had hoped to tour the facility, but there was some activity going on which prevented their normal tours. We were shown to the library and museum. Impressive does not do it justice. The collection within the museum is quite diverse, but my favorite objects remain the early operative 'tracing boards'. While Steve wandered through the museum I got right down to business, registering as a reader and requesting texts. One of the books I wanted to see had gone missing from the collection, something the library is likely to encounter often as they finish computerizing their entire catalog. This setback and the inapplicability of the first few texts was starting to dim my hopes of finding the ritual text I was seeking. Then I selected one of the titles I had noted down a few months ago, while using the UGLE Library online catalog. The text must have been fairly rare as my request had to be authorized by the Librarian, which it was, and shortly I was reading my eureka text. I will write more about this item later.



Poor Steve wandered around the museum for several hours while I did more research. At 2:00pm we rushed back to the hotel for our luggage, and my Past Master's Jewel, which was stored in the hotel safe. Back to the Tube, off at Victoria Station and the coach to Oxford. The English hierarchy of bus and coach I am finally beginning to understand!



(pictures are at Flickr)






Labels: , , , , , , ,

27 March 2008

England, Day Two

Probably owing to our commitment not to sleep before 9pm, we actually managed to get a solid twelve hours of sleep. Both Steve and I feel like we are on local time already. We dragged out of bed to what has to be the finest hotel breakfast which could possibly meet our eyes. There were three buffets with cereal and fruit, eggs and accoutrements, and a selection of smoked fish. It was delightful and really filled us up. Furthermore, the Hilton staff were just wonderful keeping the buffet going even though we arrived three minutes before closing. I would certainly stay there again.


Today we spent a lot of time taking the Tube from place to place. Our mission today, from *******, was to drop off a geotag in a cache somewhere in London. We selected the Winchester Geese Cache primarily due to its proximity to a Tube stop and its fascinating history. The site was all it was billed to be. There were ribbons and poems hung on the gate by the hundreds, perhaps more numerous than that. We registered in the cache log and headed back into London to find a nice pub.


The Cloud...How I hate that company. Their web site offered a wonderful deal £9.99 per month with access from cafes and pubs all over England. Their coverage map looked great, so I signed up excitedly before leaving the US. The reality turned out to be quite different. Their coverage map is terribly out of date and once connected the network is dreadfully slow. I had made an appointment to video conference with my wife and daughters at 4:30pm, after their half-day at school. Steve and I wound up twice ordering pints while I settled in to make a connection. Then finding the coverage to be absent or too slow to use, we left our pints hardly half consumed as we headed for another location. I am particular irritated that I had to leave behind one of my favorite English ales: Bishop's Finger.


After finding a coffee shop with the Cloud operating, I had my text chat with the family as the connection was far too slow for video. We returned to our hotel to drop off our bags and seek dinner. After some discussion we elected to have dinner at a little Persian restaurant two blocks west from our hotel. The food was simple, but wonderful. We particularly enjoyed the viciously hot tea and nearly too sweet baklava.


Following dinner we quested for a fine pub to relax in for a few pints. Though we walked all over Kensington nothing suited our fancy until we returned to The Warwick Arms. The comfortable leather chairs and quiet conversation epitomizes the English pub and made our evening complete. It also might have been the hand drawn Fuller's ESB followed by a Bells, but who can tell!



Labels: , , , ,

England, Day One

We arrived at 9:30am to a cool, gray skyline with a drip of rain here and there. It looks much like you would expect England to, although last year, thanks to global warming, the weather was gloriously warm and completely precipitation free. We grabbed our bags and made for the exit.


Lucky for me I was traveling with and real Englishman, Steve, who steered me away from the taxi stand, my preference, and onto the London Tube: mind the gap! We took the Tube from Heathrow to Earl's Court and then walked the remaining three blocks to our hotel. The walk was exhausting for me since I had brought toys, more on that later, leaving me in the larger bag with no wheels. The Hilton Olympia looks to be a 1960-1970s era hotel which has been mildly refitted, but is not particularly beautiful. After we dropped our bags off we wandered down Kensington High Street looking for Vodafone, SIM cards, and a pub, ale and lunch.


The young lady at Vodafone, Natalie, was helpful and had us up and running in no time. Steve was given an unlocked Nokia by a fellow at work while I was given a monster Sierra Wireless. My phone was a beast: slow, high power drain, bad cell reception and complicated. Steve lucked out in a a big way. In the end, however, we were able to call each other and numbers within the UK which was the critical goal.


Must of the rest of the day is a complete blur, owing to my being so tired. We had a lunch at a pub off of High Street on Kensington, wandered around a bit and then settled into the warm leather chairs at The Warwick Arms.



Labels: , , , ,

26 March 2008

Off to England

After some back and forth for forgotten items, Steve and I finally arrived at Concord Trailways in Portland. We both prefer public transportation to driving and the cost to park for two weeks in Boston is outrageous. Since I am going to be in land of Real Ale for an extended stay I fortified myself with a does of Maine's own beverage: Moxie. I like it quite a bit, but it still tastes like Crest and Coke. Cheers!


The attraction bringing us to England, other than the great beauty of the land itself, is the ACCU Conference. The conference is ostensibly about C and C++ programming. It delves much deeper than that into the issues attendant on large scale software development efforts: design and architecture. As a software architect, this information is at the heart of what I do on a daily basis for *******. Last year the sessions covering architectural analysis, team coaching, and software cost estimation were insightful. At the other end of the spectrum there were many sessions which resurrected the important lessons of computer science and applied them to the craft of software development. Few accomplished this task more effectively than Andrei Alexandrescu and John Lakos. Suffice it to say that I find it difficult to choose my schedule as there are so many valuable, overlapping sessions.


Having arrived at Logan Airport in Boston, we learned our flight was delayed. Not by a few minutes, but by three hours! Poor Steve has wretched battery life on his Latitude (hate those machines), so we were continuously tethered to power sources. Why is it that airports never have comfortable seating and power in the same place? The airport WIFI infrastructure was also not particularly great. Though it teased us with promises of flight information, the link always returned us to the front page.


Our flight finally boarded at 11pm and we settled into our slightly dilapidated seats. Apparently our scheduled plane had a problem, leaving us with a model previously headed for retrofit. The staff on board were plenty nice, as always, and we had a relaxing flight to England.



Labels: , ,

24 March 2008

My 50% Camera

While performing my final packing for my two week trip to England for the ACCU Conference next week, I realized my older daughter wandered off with my camera. It is a bulky, unwieldy beast, a Canon A560 or some such, and I had been planning to retire it before heading of to paradise at the end of April. Borrowing my wife's fancy 8mp camera seemed like no big deal to me, but before I knew it we were standing at Office Depot looking at a new model.


200803241225.jpgI was puzzled by this turn of events because Tandy is our head of finance here at the Ratliff Household and is tight with a buck. Not penurious the way my friend Amos is, but careful nonetheless. I picked out a new Casio Exilim 7.2mp, which I had been eying for at least six months, and walked out of the store with a new camera.


With new toy in hand I had to ask why. The answer was something else. Apparently, Tandy thinks about numbers when she is doing her crazy-early Master's swim program. Recently she realized that we two have been together for more than 50% of my lifetime. No, not 50% of my adult lifespan, the whole shebang! She wanted to buy something special for me to commemorate the event, but as I thought about the kind of forbearance it takes to spend almost nineteen years with me I wondered if I ought to be buying her something! I understand my turn comes around during this summer.




Labels: , , ,

13 April 2007

ACCU 2007 Day 2

Towards Simple Code: A Workshop on the Value of Simplicity in Software
Giovanni Asproni, Kevlin Henney, and Peter Sommerlad

This workshop was oriented around "The Laws of Simplicity" by John Maeda. The three workshop coordinators shared responsibility for explaining the laws of simplicity and the keys of simplicity as well. To learn about the laws, check the Laws of Simplicity web site. We then broke into teams charged to brainstorm up our guidelines for simplicity. The team I participated in wrote a number, but culled the group down to three key points:

  1. We believe that minimizing information lifetime is a Good Thing(tm).
  2. We believe that restrictive coding standards are counter-productive because they remove options before you even consider them.
  3. We believe that Design By Contract improves code quality by making assumptions explicit.

The second point received the most questions. I explained the belief by asking people to reflect back on times they have had to reformat a method or module to make it readable. Thinking hard about that moment, was that necessary to do because of the code format or because of the lack of logical structure to the code itself? As the people in the room, we developers, when reflecting honestly, have to admit that we almost never reorganize code because of its format, but because of its poor logical organization.

It is interesting to note that few of the other teams applied simplicity to their own presentations, leading to quite long lists with relatively little explanation. This workshop was excellent and is one of the elements I want to share with the folks back at work. To see the results of our work see ResultGroupG.

Introduction to Component-Level Testing
John Lakos

This two-part session is nearly impossible to summarize, but suffice it to say that this three hour experience made the entire trip worthwhile. The core idea of the talk was that the physical organization of the files composing your project(s) is just as important as the logical organization of the classes. This idea is often and easily overlooked by developers, especially more senior developers. In large projects the physical organization of the projects often takes a back seat to the logical organization, if it is even considered at all. I am happy to report, that at DeLorme, we woke up to this reality some years ago and have been organizing our projects according to their dependencies for some time. Our hierarchy could probably use some expansion, but confirmation of our decisions certainly felt good.

As a side note, within five minutes John mentioned Barbara Liskov's Substitutability Paper and the Open-Closed Principle within five minutes of each other. This before the computer science session tomorrow. This is for you Mike!

Another wonderful point he made was about the cost of test driven development. He theorized two teams, both were given the same problem. The first team got right to the work and finished in two weeks and entered QA for an unknown time. The second team started writing tests, then the backing code. After two weeks they were 50% done. Which team is further ahead? Does it even matter? You know the second team has two weeks of work remaining, whereas the first team has an engagement with QA which will last an unknown amount of time.

He moved from design to testing at this point with an exhaustingly brilliant survey of component-level testing techniques. His first example was along the lines of "bool isOne(int value)" and his second example was Jeff Howe's famous countBits() function. Depending on the algorithm used, and he showed several, the testing requirements can be quite different. The largest complexity test results from the lookup table implementation for that function.

This is another talk which I want to share with people at work and it left me positively dizzy with information overload. John was a brilliant, skillful presenter who packed at least a week of information into a mere three hours. I imagine it will be several days before I fully appreciate everything he set out for us. This huge presentation again made the entire trip worthwhile.

Grumpy Old Programmers

Steve convinced me to attend this panel discussion with promises of hilarity. It was alright, but somewhat less uproarious than its reputation.

Labels: ,

ACCU 2007 Day 1

The Pendulum of Software Development
Mary Poppendeick

The keynote was delivered by one of the two presenters from the pre-conference session I had attended yesterday. She covered a history of software development, primarily her own background, from 1960 to 2000. Then moved on to a few slides repeating her themes from yesterday: Stop-the-Line-Quality, etc.

Coaching Software Teams
Michael Feathers

This presentation was amazingly good, and Michael has a quiet an unassuming manner which imparts power to his points. A key initial point which formed a foundation for the talk was that you cannot expect everyone on a team to share the same level of commitment. Essentially, while you can help people rise to a new technical threshold, changing their commitment level is difficult and probably not worthwhile. They key question he asked us is, "Would you do your job if you were independently wealthy?" I certainly would and so indicated, but there were a very few people in agreement.

Another approach he uses for working with teams is to imagine the entire team as a single person or "Pat". He then works to understand Pat's personality and emotional state, which is essentially the personality and emotional state of the team as a whole.

The discussion then moved on to how to actually coach a team. He was careful to note that nearly all coaching should be done with individual teams rather than to the team as a whole. The most teachable moments, in his experience, are when the tension, similar to but not always stress, is high. The reception of the lesson taught resolves the problem and disipates, or releases, the tension. This tension/release cycle was another frequent key phrase during the rest of the presentation.

He then spent a fair amount of time reviewing about fifteen or twenty specific coaching techniques. There were several very interesting ones, including a somewhat strange idea called "The Flounce." He told a story about a team which had worked hard to improve their process and quality, yet management continued to feel as though it was not enough. The team felt terrible about the problem, but no one would openly admit it. Another coaching consultant came in to help the team and noticed immediately what was wrong. Rather than just come out and say it, he brought the team together and said there was a huge problem, then did not name it. As people made suggestions he kept saying, "No. That's not it." increasing the tension within the team. Finally, someone came out and described the problem with management's expectations and the team released and worked to resolve the problem.

Finally, the discussion moved on to thorny issues in coaching: ethics, personality conflicts, and cliques. Anyone who has coached a team has run into these issues at one time or another and his suggestions were both concrete and useful. One of the more interesting titles he mentioned in the presentation is "Teamwork is an Individual Skill" by Christopher J. Avery. I have put in a request for this text.

Fingers in the Air - A Gentle Introduction to Software Estimation
Giovanni Asproni

This presentation was quite interesting and reviewed many things I already knew about software cost estimation. There is clearly no new "silver bullet." I did find his suggestion that you use multiple methods if at all possible. He said: count, measure, then judge. This meant we should first attempt to estimate by counting something (KLOC, function points, etc), failing that by measuring something (story points, complexity), and as a last resort by expert judgment. If making an estimate by this last process obtain two or more different estimates.

I realized that I had often heard elements of this presentation in talks by another Software Architect at DeLorme. Welcome to the "Cone of Uncertainty."

Linting Software Architectures
Bernhard Merkle

This presentation is almost impossible to really evaluate. As a baseline all of the presentations are one hour and thirty minutes. That is quite a lot of time, but with an interactive audience can burn away pretty fast. Bernhard's presentation was about sixty minutes of general discussion about exploring architectural defects. The material was simply too basic for Steve and I, but we hesitated to say anything for fear there were less experienced folks in the audience.

One core technique he used for architectural linting of existing systems was to create a representation of the expected architecture. Then reverse engineer the architecture from the code and compare the two descriptions. This allows you to detect differences between your expected architecture and what was actually implemented.

After burning up two thirds of the session with little or no interruption due to questions, he started to describe some tools. These descriptions used screen captures from running the various tools on publicly available Java systems: JDK, Ant, Eclipse, etc. This information was genuinely valuable, but felt as though it came too late.

Suddenly, with but one minute to go in the presentation interval, he broke out actual live copies of each of the tools. The disappointment was almost palpable. Everyone in the room would have loved to see the tools themselves an hour ago, rather than during the last sixty seconds of the presentation. In the end, the presentation was enormously useful, but just not all that well organized.

Labels: ,

11 April 2007

ACCU 2007 Day 0

Steve and I signed up for the full day pre-conference tutorials at the ACCU 2007 Conference. Steve signed up for "C++ Productivity" by Hubert Matthews, which he enjoyed very much. One challenge from the session was to write a complex calculator program in C++ as fast as possible. Steve leveraged his experience with SPIRIT and whipped one off in short term. You can see why we all think so much of his work. Brilliant, as they say here.

I attended "Lean Software Development" by Tom and Mary Poppendieck. The presentation discussed techniques for applying the principles of the Toyota Manufacturing System approach to software development. Many of the essential concepts were familiar to me from my use of Neils Malatoux's Evo Methodology. 'Lean' also makes use of timeboxes, frequent releases, and early testing. One of the key points made during Mary's section of the presentation was to stop maximizing local productivity and start maximizing system productivity. Essentially, rather than having each developer at maximum capacity, developing both immediately useful and prospective (not immediately useful) features, look at why it takes so long to get a particular feature from the concept stage to the release stage.

She was also very, very firm that feature requests from customers and sales should be processed immediately and turned into code as soon as possible. I asked a number of questions about this issue, but never gained what I considered a satisfactory answer. There was a frequent recourse to the traditional new systems attitude: "if you do it, you will see". While I see many of the related points, I wonder if the approach is so oriented around web projects and internal IT projects that there are limits to the application of it to large scale commercial software. For example, she was quite strident that requests from customers should be filtered, accepted or rejected, and then worked on as quickly as possible. For a small scale or internal project, I imagine this would work pretty well. For a very large customer base with a huge volume of input from many sources, this is both impossible and not particularly desirable. There were also discussions in the tutorial that this approach may not dovetail with the sales cycle and other business processes.

There were several really key items which I found a lot of value in. The distinction of products and projects and team organization was very interesting to me. I am used to the project-style of organization, which is a frequent style for smaller companies with multiple products. Mary made some excellent arguments about the value of product rather than project orientation. I am interested in exploring some of these ideas at work.

Tom took over with a discussion of software quality. I agreed often and significantly with much of what he had to say about unit tests, acceptance tests, and so forth. Having successfully tried test-driven development, it really works for new projects. It is difficult to use in the context of a large, legacy code base and it also is difficult to keep doing it without a team organized around that principle. One project we worked on wound up with more tests than code. It has been a big help to the quality of the project. Tom suggested we look into the "fit framework" for automating acceptance testing.

While I am not sure I would attend their track again, I certainly learned a few things.

Labels: ,

03 April 2007

DeLorme and AccuRev Press Release

The press release reporting DeLorme's purchase of AccuRev came out earlier today. It took poor Alex Forbes some time to pin me down for the interview, but he did a great job with the write up. The old SCM system had to remain nameless, but its behaviors have made it clear it isn't all that safe for our sources. One item in the release was particularly interesting:
"...AccuRev increased productivity by eliminating broken builds, and teams that were unable to access the previous SCM repository for 24 hours at a time while a new build was created are now able to work continuously...." (says I)
Since we only did night builds, if a build broke you had to remain careful about what changes you pulled down from the SCM repository. You never knew if the change might force you into pulling down code which had failed to compile and was therefore in an unknown state. Back in the pre-AccuRev era we actually had little certificates of "Build Breakage" or "Build Dalekage" with various levels of severity based on the number of errors. If you broke the nightly build(s) you could be relatively certain of finding one of those certificates on your door in the morning.

With AccuRev, however, we can grab revisions based on a particular transaction number. This allows a developer to look at the Continuity Build, if it is green they can take the reported transaction and run "accurev update -t transactionID" to update their workspace to that known safe point. I look forward to seeing that feature moved from the command line to the GUI in a future version of AccuRev. Now broken builds are more rare and when the do happen are localized and visible within a very short period of time.

Labels: , ,

02 April 2007

ACCU Conference 2007

This year, I have opted to attend the ACCU Conference in Oxford, England. The conference was strongly recommended by my co-worker, Steve Nutt, who attended last year and is actually from Oxfordshire. Judging from the session information, the conference will be quite unlike any I have ever attended. After nine years, Microsoft has certainly adjusted my expectations to the informational depth and access of the PDC (Professional Developer's Conference). The topics certainly interested me a great deal, as did the opportunity to travel outside of the United States. Thus far I have only been to Niagara Falls, Canada a few times, which felt like a pretty sanitized any-town tourist destination. Something tells me Oxford and London are going to be quite a bit different than my trips to Niagara Falls and Disney World.

On Tuesday I will be attending the pre-conference seminar "Implementing Lean Software Development" by Mary and Tom Poppendieck. I have high hopes of visiting Thames Lodge No. 1895, part of the Provincial Grand Lodge of Oxfordshire, on Tuesday evening after the conference. I am presently in e-mail contact with a member of the Lodge, who has been very kind to assist me.

On Wednesday the conference really gets going with "Coaching Software Development Teams" by Michael Feathers, "Reviewing the C++ toolbox" by Alan Griffiths or "Fingers in the air: a gentle introduction to software estimation" by Giovanni Asproni, and "Linting Software Architectures" by Bernhard Merkle.

On Thursday the selections turn even more difficult "Choose your Poison: Exceptions or Error Codes?" by Andrei Alexandrescu or "Towards Simple Code" by Sommerlad, Asproni and Henney, or "Stop-the-Line Quality" by Mary Poppendieck, then either the two part "Introduction to Component-Level Testing" by John Lakos or "Pattern Connections" by Kevlin Henney then "Typical Pitfalls in Agile Software Development" by Jutta Eckstein.

On Friday I really, really want to go to Bjarne Stroustrup's talk on the Future of C++, but if I skip "The Appliance of Science: Things in Computer Science that every practitioner should know" by Andrei Alexandrescu, then I'll never hear the end of it at work. I already take enough heat during the morning caffeine intake sessions for my use of computer science terms like "substitutability" (go Liskov!) and "subsumption". Doesn't "parametric polymorphism" just roll off the tongue? Then I am going to listen to the first 45 minutes of "CUTE: C++ Unit Testing Easier" by Peter Sommerlad then sneak out at 2:45pm to see "Continuous integration: what it is and why you should use it" by Ivan Moore. Finally, having totally missed the chance to hear Bjarne speak on the future of C++, I will go to the two specific C++ Futures sessions which really call to me "C++ Threads" by Lawrence Crowl and "Standard Library report" by Alidsair Meredith.

The last day of the conference arrives with Saturday. The morning session is impossible with my candidates including "Making New Friends" by Dan Saks or "Renga: Conceptual Integrity and Collective Code Ownership" by Nat Pryce and Steve Freeman or "Concepts: An Introduction to Concepts in C++0x" by Doug Gregor, but then the last session is no question with "Meta-Intelligent Design" by Phil Nash.

After all of this information my brain may really be mush! It is pretty essential that I have the chance to hear Bjarne Stroustrup speak, perhaps I will see if Steve and I can switch. He goes to hear Bjarne during the computer science session and I will go to hear him during the Continuous Integration talk. In any case, this conference promises to replace quantity with quality. Normally I have several time blocks where there are no interesting sessions at the PDC, keeping in mind that this is a conference with at least a dozen concurrent sessions. At the ACCU most time blocks have at least two or three interesting sessions.

Embarrassingly enough a major topic of conversation between Steve and I has been what to wear. Aside from the fact that I know next to nothing about the weather in England, I was also not sure about the politics of the group. Just to be contrarian, I will wear my John "maddog" Hall t-shirt to the PDC or my "Real Programmers use Visual C++" t-shirt to the Java Users Group. Are Microsoft t-shirts safe here? Should I kick it old school with some SGI gear? What is a geek to do? In any case, I do plan to wear my AccuRev shirt to the conference!

Labels: , , , ,