Microsoft Visual Studio 2005 Customer Solution Case Study
Estate Planning Application Reborn as a Smart Client
Overview
Country or Region: United States Industry: Accounting Customer Profile Established in 1983, BNA Software specializes in publishing tax software applications for professionals. Many of its programs are category standards and its technical support is highly rated. Business Situation BNA Software‟s Estate Tax Planner application was written in an unstructured combination of QuickBasic and Visual Basic 6, and was becoming difficult to maintain and enhance. Solution BNA Software designed a new Estate Tax Planner, ET .NET, using guidance and the Composite UI Application Block (CAB) and Smart Client Software Factory from the Microsoft patterns & practices group. Benefits Reduced time to market Improved feature set Improved quality Improved user interface Received glowing reviews
Having a framework as rich and dependable as the CAB enabled us to spend more time on our core competency.
Niklas Hemdal, Database & Integration Systems Manager, BNA Software
BNA Software had an estate tax planning application written in Visual Basic and QuickBasic that was becoming difficult to maintain. After realizing that the old, unstructured code would not best serve their development needs even after an automated conversion to the .NET Framework, BNA Software chose to rewrite the application as a Smart Client, using Microsoft‟s Smart Client Software Factory and Composite UI Application Block. On a very tight schedule, the BNA Software team was able to restructure the application, adapt the calculations to the new tax codes, add the desired new features, and deliver a high-quality product dynamic enough to support three types of customers and satisfy internal developer and marketing needs.
Situation
As CTO Avo Reid explains it, by 2005 tax software vendor BNA Software was becoming a victim of its own success and longevity. “BNA Software has been developing commercial software applications for over 24 years... Some of our applications were originally developed for HP calculators. In 2005 our Estate & Gift Tax Planner was still built using Visual Basic® 6, with portions written in QuickBasic and automatically translated to C with an internally-developed tool. As you can imagine, it was not easy to maintain or enhance.” BNA Estate & Gift Tax Planner (ET) helps tax lawyers, accountants and other tax professionals prepare and estimate potential federal and state taxes on their clients‟ estates. The ET product line is consistently given 5-star ratings by experts in tax software, such as The CPA Technology Advisor. BNA Software, established in 1983, is a division of Tax Management Inc., a premier provider of authoritative tax analysis, reference, and notification and home of the "one-stop-tax-shop." Tax Management Inc., in turn, is part of BNA, a leading publisher of print, CD-ROM, and Web-based news and information. Incorporated in its present form in 1947, BNA is the oldest, and most successful, 100% employee-owned company in the country. “Tax calculations are very complex, and the regulations change every year,” says Reid. “Changing regulations drive our annual releases, but the product managers also want to add features. With our old architecture, new features took a back seat to simply getting the calculations updated for the new tax codes.” “We had a very small group of developers that knew how to develop our ET application,” adds Chief of R&D Mark Baker, “and it took a
long time to bring new developers up to speed. The code had over 600 global variables, some of which were n-dimensional arrays containing values and intermediate values indexed by integer literals.” In the summer of 2005, BNA Software management asked the engineering team to undertake a conversion/migration project to the .NET Framework, spurred by the difficulty of maintaining the existing code and the impending end of support for the Visual Basic 6.0 development environment. Initially, the team cleaned up the Visual Basic 6.0 code and upgraded it to run on the .NET Framework using the Microsoft® VB6 Migration Wizard. Beyond moving to the .NET Framework, BNA Software wanted to enhance the product for the 2006-2007 tax cycle. Given that the nowconverted application still relied on the original, confusing plumbing, just in a different language, this was a challenge. “We grappled with how to make the needed changes without destabilizing code which was cryptic and not well understood outside of a core of developers,” says Baker. “In addition, other changes that we discussed making for competitive reasons were problematic due to the structure of the code.”
Solution
Given this challenge, Reid, Baker, BNA Software management, and the development team were open to new approaches and architectures. “Around January 2006, as part of our Dr. Dobbs .NET Cast podcast series, we learned of the Microsoft patterns & practices team's Smart Client/CAB technology,” says Baker. “From our discussion with the team in those interviews, we convinced the other members of the engineering team and management to abandon the migration effort and move to Smart Client technology.”
The Smart Client Software Factory (SCSF) provides an integrated set of guidance that helps architects and developers create composite smart client applications. The SCSF includes the Composite UI Application Block (CAB). SCSF integrates with Visual Studio® 2005. Composite smart client applications have a rich user interface, connect to multiple backend systems for data exchange, present information coming from multiple and diverse sources through an integrated user interface, take advantage of local storage and processing resources to enable operation during periods of no network connectivity or intermittent network connectivity, and are easily deployed and configured. The SCSF/CAB architecture provides a standard approach to application development, promotes re-usability of common architectural patterns and components, hides complexity, and allows developers to focus on business problems instead of infrastructure components. “Adopting the SCSF/CAB architecture was a „bet the farm‟ decision for the application for us,” says Baker. The team needed to rewrite the application to a new architecture, update the tax calculations for changed regulations, and add the desired new features in just 10 months. Baker‟s team started the technology adoption “in earnest” in February, “by creating a robust domain model that captured the essence of estate tax planning.” They ported their calculation engine to C# from QuickBasic/C, and replaced the myriads of arrays with calls into the domain model using interfaces. The calculation engine subscribed to change events from the model using CAB's EventBroker. In March, the team got an extra boost from a workshop on SCSF in Redmond.
Throughout the spring and summer, the team rebuilt the user interface using CAB views and presenters. According to Baker, they “were able to blend in enhancements such as split windows, showing multiple output/document types such as reports, graphs, flowcharts simultaneously, a property grid for commonly needed estate plan data, sticky notes for the worksheets, and dependent views based on subscriptions to CAB events posted by the model.” Baker‟s team sped up their user interface development by licensing Windows Forms controls from Microsoft VSIP partners. They used Infragistics NetAdvantage and its CAB Extensibility Kit; FarPoint Spread; and Aspose.Slides. Baker had an epiphany about the display architecture while preparing for a status meeting during the summer. “We have a feature that generates a PowerPoint presentation consisting of text and graph slides based on the plan type and data. These presentations showed graphs that used a static layout. I realized that it would be much nicer if user customizations to an onscreen graph would flow through to the presentation. It took 10 minutes of work to create a CAB service to expose the data managed by the graph view to the presentations module. During the meeting, I got quite a few „Wow!‟ responses from the management team as they began to see the power of SCSF.” The application was code complete in September, and shipped to customers in October. “Our customers were blown away,” says Baker. Lawrence P. Katzenstein, Partner, Thompson Coburn LLP, and the author of Tiger Tables Actuarial Software, said that ET is “an indispensable tool in my practice: powerful, easy to use and great for „what if‟ planning.
I got quite a few „Wow!‟ responses from the management team as they began to see the power of SCSF.
Mark Baker, Chief R&D, BNA Software
ET .NET shipped within 10 months of the decision to adopt a new architecture and rewrite the application. In 9 months of active development, the 4-person development team wrote 225,000 lines of code, and not only ported the product, but incorporated the year‟s new tax regulations and many new features and user interface improvements. In the past, by contrast, the development team was typically only able to update the tax calculations and add a few small features from one annual release to the next. “Rewriting an application of this size is daunting for even the most seasoned engineers,” says Niklas Hemdal, Database & Integration Systems Manager and architect of the domain model. “Having a framework as rich and dependable as the CAB enabled us to spend more time on our core competency, designing and developing tax and accounting business models, views and presenters. This is what our users see, touch and in the end pay for.” “Our value proposition to our customers is our expertise in translating complex tax and accounting concepts into easy to use software,” says Glenn Reemes, Product Director, Estate Tax, Income Tax and 706/709. “It can be frustrating to see development dollars used on the invisible plumbing that customers take for granted: they expect that stuff to just work. From a P&L perspective Microsoft‟s CAB has a high ROI for us because we see a larger percentage of our development dollars used for high impact, revenue producing development that improves the bottom line.” In the past, tax year deadline pressure would sometimes force the company to ship product with over 100 known non-critical bugs. (These bugs never affected the accuracy of the tax calculations.) ET .NET shipped with only 9 unfixed bugs, all of which were classified as cosmetic.
ET .NET offers estate planners accurate tax forecasts in an attractive, easy-to-use layout. The graphs are live and change with the assumptions.
And it keeps getting better.” Ron Cooperman, an Attorney with Stockwell & Cooperman, says ET “provides an efficient way to illustrate the effects of estate planning to clients.” Baker adds, “.NET and SCSF lets us give our customers more of what they want from us, and that feels great.”
Benefits
BNA Software saw many benefits from their “bet the farm” decision to move to the Smart Client Software Factory and Composite UI Application Block architecture. They reduced their time to market, reduced their bug count, and reduced the time needed to add features. They improved their product quality, improved their user interface, improved their scalability, and improved their feature set. They were able to reduce the time spent on non-core activities, and concentrate on their core competency, tax planning. In addition, BNA Software was able to reduce developer training time, and enlarge their pool of developers.
In the past it could take days for the developers to add a row to a grid...; now it takes an hour.
Avo Reid, CTO, BNA Software
Prior to the development of ET .NET, making changes to the product was time-consuming, but now this is much simpler. “For example, in the past it could take days for the developers to add a row to a grid with integrated validations and calculations; now it takes an hour,” says Reid. “I used to sit in planning meetings cringing at the estimates provided to put a simple row in a spreadsheet and have it integrate seamlessly with the rest of the application,” says Natalie Halimi, Program Management Specialist. “Given the small window available for feature development between annual tax updates, simple enhancements like this could consume a significant amount of time. We definitely struggled to get out major enhancements in the available time window. With the new architecture using the CAB, estimates that had been discussed in units of weeks are now discussed in units of hours.” Hiring developers for the ET product is no longer an issue. “It used to take months to bring a developer up to speed on our code,” says Reid. “Now we can bring in a .NET developer right off the street.” Adding to the ease of development, "SCSF sped up the development cycle by providing isolation of modules and loose coupling, allowing us to work on our own modules without waiting on another team member," says Software Development Engineer Lead Sergei Yarmoshchuk. If they had it to do over, would BNA Software still have adopted SCSF and CAB? According to Reid, the answer is a resounding “Yes.” “We delivered the product on time in a tight schedule, under budget, with more features than we expected, and with very high quality,” says Reid. “The decision to adopt SCSF and CAB turned out to be the right one for us.
“Designing and developing general application frameworks at the expense of working on our core application domain areas is not cost effective for us. We prefer to use rich, high quality, off the shelf frameworks for the „plumbing‟ of our applications. This enables us to focus our efforts on our core competency, providing market leading Tax and Accounting solutions to our customers. Using intuitive, well-documented frameworks based on best practices like Microsoft CAB provides us with the added benefit of shorter learning curves for our new engineers. “In contrast, the old approach of developing the „plumbing‟ in-house creates knowledge silos and severely limits each project‟s scalability. Typically, one or two engineers have an understanding of how the „plumbing‟ works; this limits the potential scope and the applicable bandwidth for each project. Our goal is to establish an environment where the project budget is the only limiting factor. The CAB has taken us along way toward achieving that goal.”
For More Information
For more information about Microsoft products and services, call the Microsoft Sales Information Center at (800) 4269400. In Canada, call the Microsoft Canada Information Centre at (877) 5682495. Customers who are deaf or hard-ofhearing can reach Microsoft text telephone (TTY/TDD) services at (800) 892-5234 in the United States or (905) 568-9641 in Canada. Outside the 50 United States and Canada, please contact your local Microsoft subsidiary. To access information using the World Wide Web, go to: www.microsoft.com For more information about BNA Software products and services, call (800) 4242938 or visit the Web site at: http://www.bnasoftware.com/
Microsoft Visual Studio 2005
Microsoft Visual Studio 2005 is the world‟s most popular development environment for designing, developing, and testing nextgeneration Windows®-based solutions and Web applications and services. By improving the development experience for Windows, the Web, mobile devices, and Microsoft Office, Visual Studio 2005 helps organizations deliver a variety of solutions more productively than ever before. Visual Studio Team System expands the product line with new software tools that enable greater communication and collaboration throughout the development life cycle. With Visual Studio 2005, businesses can deliver modern service-oriented solutions more efficiently. For more information about Visual Studio 2005, go to: msdn.microsoft.com/vstudio
Software and Services
Products − Microsoft Visual Studio 2005 Technologies − patterns & practices guidance − Smart Client Software Factor
− Composite UI Application Block
Partners
Infragistics FarPoint Aspose
This case study is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY. Document published September 2007