Tavolo

When the noise of the DotCom boom became too loud for me to ignore, I finally left my role enabling mainframes and joined a consultancy focusing on Electronic Commerce with a skillset based on Java. I was pretty well prepared for this, as the Object Oriented approach I had learned in the Visual C++ world translated over fairly cleanly, and I had taken a Java transition course at UC Berkely extenstion. Thus, I moved two streets up, two streets over, to the overheated, noisy, open bay office if Fort Point Partners.

Fort Point was still such a young company that it had not even gotten the fortpoint.com domain name yet…that would happen in a few months. They already had a couple projects under their belts, but the big ones were just starting, and they were staffing up for them. I was hired to work on a project for the Culinary Institute of America (yes, the CIA) that was about recipe management as a way of selling high end ingredients for these recipes. The site was called “Tavolo,” after the Italian word for table, but with the accent on the second syllable.

Our Project Manager was Roger Kibbe, and our technical lead was Paul Duey. While these two guys are real characters, and it would be fun to try and describe the ups and downs of the project in dramatic terms, they are very real people who I bonded with during a fairly intense project, and have become life long friends. Suffice to say that we all learned and grew a lot during the year that the project developed.

OK, I will add that I was the person that exposed Roger to UML diagrams. His initial response was “What the hell is that?” But I think he got it pretty quickly.

I was actually a bit above average age for the team. Most of the engineers were right out of college, with maybe a year or two of professional experience. I didn’t have much more technical experience, just my two years at Walker Interactive, but I had spent 3 years in the Army after graduation. On the other hand, a few of the coders on the project had really learned their craft, and were well beyond me in productivity and thoughtfulness…it made for a really great learning environment.

We were Java based, but this was before Java Enterprise Edition, and we built on the most powerful platform of the day: ATG Dynamo. ATG had built a data-mapping technique based on the mapping of Java objects to database tables using the properties of those objects. This very much heralded what we would see with J2EE’s second go round with data mapping, and very much mapped how Hibernate would work in the future. However, ATG was learning that they needed to make tools for analysts, and they had changed their approach, using a dynamic mapping based on XML and HashMaps. These were called Repositories and their first foray into using them was in the personalization of the user experience. This part of the site fell to me.

I, of course, was arrogant and thought I could do everything, so I also horned in on Bill Noto’s piece, which was the back end integration with the AS400 machines…this very much looked like the kind of work I was doing back at Walker, and I thought I had something to offer. In retrospect, the leadership should have told me to stick to my lane, or switched me off the personalization work, as it turned out that the fast timeline of the project meant I was seriously behind.

I will also say that I messed up in the backend integration, in that I did not use the data mapping mechanism from ATG. For some reason, I ended up building my own, that probably looked like the early iterations of ATGs. I thought it was going to run outside of the app server, on its own machine. We ended up just running it alongside the existing one, and it was fine.

Getting back to the Repository API and the personalization, I found myself frustrated by the lack of type safety in building that code. It really was not as neat a fit as the data transfer object design from the rest of the site. I do remember writing some really bad code to work around that. In solving the problem of dynamic data query, it stopped supporting its basic use case.

But by far the biggest frustration, and I think I speak for all engineers on the project, was the amount of time you had to wait for the Dynamo app server to restart every time you made a change. I later learned that the biggest time chunk in the restart process was the re-indexing of the objects, and we should have turned that off, but that solution didn’t help us on Tavolo. This i

The restart problem continued to haunt us on follow on projects until we found a hack-work-around. The Pages were in a format called JHTML, a pre-cursor to Java Server Pages. JHTML was dynamically converted to Java when the page was first loaded. It turns out you could do full Java objects within these pages, and they would be dynamically re-created when the page was reloaded. This is a technique I have used on a few occasions in on JSPs after my time at Fort Point.

Possibly the biggest lesson learned from Tavolo is that everyone follows the pattern set by the leadership. The technical lead was dating a night nurse, and thus had little motivation to go home at the end of the day. He tended to start late and work until after midnight. This was the pattern for the whole team. Most of use were young, and didn’t have families, so it was fine, although it did mess with my Rock Climbing schedule. I think we all enjoyed (to some degree) the craziness of working until 4 in the morning, going home to sleep until noon, and the coming back the next day.

Until that point, I had been completely removed from the customer side of the business. With Fort Point’s approach, I found myself at in front of the customer a few times, both early on for the offsite planning, and as we progressed. This pattern would continue with other projects, as one aspect of consulting is that you often find yourself integrated into the customers work-force, either building something to hand over to them, or expanding something they did, or figuring out how to get things to work together. I also got to work with partners on the integration effort. All of this helped me to understand the process of software development and deployment much better than I had in the past.

Many years later, Fort Point was bought by Adobe, which is why www.fortpoint.com redirectes to Adobe’s site.

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.