Wyatt Software had one successful product, a portfolio optimizer based on efficient frontier calculation, when it followed its customer's advice and set out to build an integrated trading and accounting application for bonds.
I (Ward) worked on this for three and a half years. I had strong opinions on strengths of objects in general and Smalltalk in particular. Over the years I found ways to deliver value regularly while preserving those strengths.
Many billions have been managed with the product which has lived well past typical PC software from the '80s.
I told my research colleagues that I was doing field research in object methodology. This was not far from the truth. I often give the example of abstractions discovered late in development. Following an agile method of my design, we found that we could substitute these late discoveries and benefit accordingly.
I discovered __Advancers__ when hunting bugs in our tax reports. Traders don't care how they make their capital gains, but the tax man does. Only satisfying the latter did the abstraction surface. I described it to our domain experts and asked what it was properly called. They had no such abstraction in their vocabulary. Hence only agile debugging could surface it. post
I discovered a rich __Column__ hierarchy where refinements grew to a half-dozen versions and then no more. We designed reports by selecting from this pallet based on the objects that would fill the rows. A visitor from our sales organization told me that he would close deals by showing our "report writer". I thought that odd because I couldn't remember writing a report writer. post
I discovered the confusion that surrounds the notion of __end-of-day__. The front-office traders refer to the end of their day. An end-of-day position would be the investment they have in a security at the end of their day. The back-office accountants consider end-of-day positions to include the overnight accumulation of interest attributed to that day's position. This would never be a concern when traders and accountants used their own software. WyCash served both to avoid duplicate entry and had to figure this distinction out before the numbers came out exact.
See more of my product work at Wyatt Software.