In this edition of What’s In Your Stack? we hear how one company is delivering its service on Microsoft Windows Azure:
Who are you?
Metanga is MetraTech’s multi-tenant, PCI compliant, SaaS billing solution designed to help ISVs monetize customer and partner relationships that come about as they move to SaaS models. MetraTech was founded in 1998. Our on-premise product MetraNet powers the billing for Microsoft’s Azure and Office online products. MetraTech’s vision has always been to develop a more configurable approach to charging, billing, settlement and customer care. We’ve been delivering on that vision for 12 years, across 90 countries, 26 currencies and 12 languages.
How would you describe the development process you follow?
Metanga leverages an agile development methodology with some modifications. Our sales, marketing and community teams help us develop user-based business requirements and associated business user stories. Our user experience team then creates a visual workflow for those business requirements. The product development team then develops specifications based around those supporting elements. Our cycles are three weeks long with the third week reserved mostly for quality assurance.
What tools are you using for development and delivering your software?
Metanga has always been a .Net shop. So we naturally use Visual Studio as our integrated development environment. We also leverage Subversion for code control and CruiseControl.Net for our continuous integration and build server. We migrated last year from NUnit to MSTest and are looking at moving our Selenium tests into MSTest as well, but we’re still evaluating that move.
Metanga is written to work on the Microsoft Azure Platform, but we started in a virtualized environment that we still use today for development and initial testing. Each developer and QA staff member is assigned a virtual machine in our corporate data center for development. We also give servers to the usability team, sales, engineering and anyone who wants to see fresh builds and help us test (Hey, that’s the point of VMs right?) We also deploy nightly build to a dedicated set of QA instances running on Azure. This is where QA tests things that have made a few rounds on the local machines. Finally, we deploy a production release to the production Azure instances once per month.
Tell us about a recent tool, framework/SDK, or practice that you started using that worked out really well, much better than you’d thought. And/or, what’s one that didn’t work out well?
Over the past year we had a lot of difficulty providing visibility into our iteration progress using the issue tracking tools used by other departments. We decided to trial and then adopt a full agile management platform from Rally Software this past spring, and it has been a big help for us to measure what we do and quickly identify processes and things that don’t feel right so we can improve.
Follow us on Twitter at @billingzone!
Disclosure: Microsoft is a client.