Challenge

Vulcan Steel approached SSW about a Windows application that needed to be updated to the latest technologies to ensure easier maintainability and reusability. This app is the backbone of Vulcan Steel’s day-to-day business operations.

They had a desire for a better architecture to allow changes to be made quicker, with a lower chance of unintended defects. With an app of this magnitude, it is essential to keep it up-to-date and functioning perfectly, to ensure a lower total cost of ownership.

Because this app is so vital, it was also a requirement that the app remain up and running during the process of upgrading it to the new architecture. The challenges didn’t stop there though: All of the logic was embedded in the windows app with no service layer, and Vulcan Steel’s IT people are based in New Zealand whilst SSW are in Australia.

Process

The first step was to review the existing code, then once the team decided how to proceed, they got to work breaking the job down into smaller tasks using Scrum. With the Scrum team spread across 3 cities in 2 countries, the best way to do this was using Skype and Team Viewer to bridge the distance.

Whereas previously the one large app had done many things, the team decided to break it apart into smaller custom applications for specific groups (sales, reporting, mobile, etc.). These apps could be designed to fit the specific users, not the other way around.

Technologies

They did this by centralising and exposing functions with Web API to implement a service oriented architecture. They used technologies such as AngularJS, ASP.NET MVC 5, Azure Storage, Octopus Deploy, and SQL Server 2012, as well as truly bleeding edge technologies like OWIN and Azure (Search and Document DB). The team replaced parts of the application one at a time with feature toggles so they could slowly migrate to the new code without disrupting Vulcan’s business operations.

Results

The team is carefully moving to a improved architecture while remaining focused on keeping the existing application running smoothly. Significant improvements have been made to the ALM process, in particular continuous deployment of all application components to test servers including automated testing.

The remote working across three different locations hasn’t caused any dysfunction in the team, and the scrum process has been effective in dealing with changing priorities. The new architecture separates independent system functions allowing for granular and purpose-built applications, while sensibly incorporating cross-cutting concerns like security and logging.

The result is a more reusable, maintainable, and web-based architecture which will set Vulcan Steel in good stead for the future.