A recurring theme in successful endeavors is worth mention. We get so darn demented about our project failure, incompetent management, demagoguery, black helicopter conspiracy theories, etc. I find that in the context of a successful project getting rolled into production, or ''becoming alive'', one experiences a great sense of completion and joy, especially if you put a lot of innovation and hard work (nights, weekends) into it. One feels most alive in times like these. (I suggest reading Chapter 3 of TheTimelessWayOfBuilding by ChristopherAlexander.) If the Red Wings won the Stanley Cup and just skated off the ice, took showers, and drove home, they would be missing out in the emotional joy of victory. Instead, a highly emotional celebration happened where the team traveled one lap around the ice holding the Stanley Cup high above their heads. In this particular instance, the Red Wings had overcome many challenges including the injury of Vladimir Konstantinov who got to travel with the team and hold the cup in his lap. I saw that the team and fans experienced a defining moment in their lives that made them feel most alive. Even as a distant spectator sitting in an Irish Pub in New York, it brought tears to my eyes. * http://www.nhl.com/cup98/recaps/061698detwas.htm * http://www.nhl.com/news/june/061798parade.htm Mid-November 1997, as a consultant, I joined a project at Goldman Sachs as a mentor and hands-on architect. We spent seven months developing about 19 ActiveX controls that extended a contact management application that Sales Traders and Analysts would use to share all kinds of financial information about their clients. In this project, I was given the freedom to build them in a way that I was able to fully exploit my knowledge of TheCraft: * Used the CookbookApproach to allow less-experienced developers follow a set of explicit steps when manufacturing a new component. * Used singleton to wrap the CORBA connection, our observer's mediator, application metadata, and other global resources. * Did lots of PairProgramming and our methods defaulted to something insanely close to ExtremeProgramming. * Implemented a global exception hierarchy for system exceptions, decorated CORBA exceptions with our own, and implemented locally defined exceptions as nested classes. * Decoupled sorting and filtering algorithms from the order of the data by using strategy. * Wrote documentation around these patterns & intentions to define the details of our design. * All of our metadata was stored in the database...nothing persistent was stored locally. * If the server went down, our components would know to rebind again, and it would restart the server when the next component attempted to access it. * The ActiveX controls were decoupled from the container, so we were able to do UnitTest''''''s and debug our components in multiple containers. * If there was any data integrity issue or problem in the components, we logged enough information in user-specific log files to make the helpdesk salivate. * No known crashes! I decided to leave the company that contracted me out to Goldman in order to join Credit Suisse First Boston as a full-time employee. Coincidentally, our project was rolled into production on exactly my last day. I got to walk up to the 50th floor -- the Goldman trading floor -- to see our work in action. After getting a tour of the different trading desks -- all teeming with activity, aggressive shouting, smell of sweat, news and information feeds buzzing everywhere -- we walked over to where our ActiveX controls sat inside a contact management application on a Research Analyst's desktop. It was lightning fast, crisp, and alive. ''This was my victory lap''. -- PhilipEskelin * You deserve more than a victory lap for that. Much money was unspent because you broke the (apparent) rule by walking away leaving a working, maintainable system. You deserve that money. Trouble is I don't know any accountants capable of nailing the amount. -- PeterLynch