Reengineering and Re-Architecting Legacy Accounting Software Product into SaaS
About Our Client
A manufacturer and distributor of accounting and payroll software, with over 35,000 customers. 48% of yearly sales are recommended by professionals in the industry such as accountants and IT companies.
Challenge
The Client needed to move one of the software products that was developed in legacy technologies from desktop to a cloud-based web application on Azure. In total there were about 400 views needed to be re-implemented for cloud.
Solution
Because of absence of technical documentation, our business analyst carried out deep and careful analysis of the existed product. He revealed business logic details, formulas for accounting calculations and documented them for the new system in the form on a complex graph. The graph represented each business object of the system and its connections to other objects. It included detailed behavior description that was understandable for end users (UI), testing specialist (formulas, calculations, controls behavior) as well as for developers (object to database mapping). The graph linked with each other all the tasks created on the project which gives an opportunity to track all the operations ever done with a screen or a system module.
New SaaS solution was developed based on a modular web-based stateless multi-tier architecture. It not only supported previous functionality but also gains new features. With a new system customers received opportunity to generate documents from templates and even to edit the template in the browser just with a mouse click. There were also introduced capabilities of online intercommunication with the banks (e-payments) and automated tax calculation (UK and Ireland systems of taxation for the time being). Another change appeared in a new system was a re-design of a billing part of the product.
Legacy one used old-fashion license-key approach with separated manual charging mechanism (registration over the phone followed by payment transfer and only after that sending out licensing key to the user). For our Azure solution we chose a modern online subscription service (another SaaS product) and now a new customer can pay for the product via the application's portal.
Additional advantage brought by a new system was a powerful mechanism of registering the changes made in there. The user may easily create complex audit logs. Nontrivial architecture created by ScienceSoft allowed placing audit log which requires significant spaces for storage not in expensive Database Azure, but in low cost AzureTable storage. This proposal of ScienceSoft helped to save considerable amount of budget for our Client. Other benefits a new SaaS solution brought were:
- Possibility for centralized update and easy maintenance of the system
- Having become a web based the application is now customer independent
- Being a SaaS the system serves as the single location for information storage and sharing within the organization
Results
Thanks to close cooperation between business analyst and development team, ScienceSoft managed to deliver a complete solution that meet all the requirements.
Due to a laborious analytical work at all stages it became possible to carry out the migration fast and exclude any bugs associated with functionality.
The developed system works 24/7 for a year by now with 100% uptime.
Technologies and Tools
Migration: ExtJs, MVC ASP.NET 4.0, HTML+CSS, Azure, Entity Framework, Enterprise library 5
Analysis: MS TFS 2010, Balsamiq Mockups, MS SharePoint, MS Visio
Backend: MS Azure (Relational DB, Cloud Services, Azure Storages), .NET 4.5, C#, Entity Framework, Enterprise library 5, WCF
Testing: Unit tests on MS Test, Selenium WebDriver for UI Tests