One of our strategic client and partner (a large telecommunication company) provides a prepaid calling service that allows the making of cheap calls inside and outside the USA via Internet (PIN-less VoIP).
This is a very popular service. At the start of 2015, it had over 3 million active users. However, the technical platform behind the service that was used for the business process management had faced performance issues up to that time. Additionally, the scalability limitation of the legacy platform prevented any significant business growth from taking place. The client requested our help.
In 2016, we have created a scalable, well-designed SaaS web application from scratch for our client. The new system has 11 separate versions with multiple languages and different functionality (depends on the legislation of each country).
At the beginning of 2017, the web application was being used by 7 million (!) users without any performance issues.
Technologies and platforms: ASP.NET MVC, Razor; Entity Framework; T4MVC; NLog; FluentValidation; SimpleInjector; ValueInjecter; NPoco; StyleCop; Unobtrusive ajax; Knockout; jqGrid, datatabeles.js; Oracle Database; Redis; Tests: NUnit
The Features of the SAAS Web application
- Administration panel;
- Management of statistics regarding incoming/outgoing calls for each user;
- Customer billing system;
- Tariff plan management;
- Money transfer without bank account;
- Some marketing tools such as landing page builder etc.
The Web Application has three basic levels of access: for personal users, corporate accounts and the functionality for retailers.
Dedicated Team Model
This company has its own products for organizing international calls and a lot of internal ERP and CRM systems for managing sales and financial activity with its direct client, dealers, and resellers (a few million users in total).
The customer wanted to outsource some NET developers, which will be able to work in overlapping NY hours, providing the best possible results and organizing the whole process according to the special corporate policy.
The initial cooperation was based on Fix Price type of contract. Our company has developed several projects in short terms, using our best developers, project manager, and testers. During some period of time, the management from both sides decided to intensify cooperation using more effective and visible model of work – Dedicated team. The main reasons for that were:
- To keep developers who already worked on their projects, only for Customer projects.
- Dedicated team model provides the best pricing for the Customer interested in long-term relations with the only team.
- Quick team growth and assurance that new team members will be used only on Customer's projects allowing them to work more efficiently when understanding Customer's business.
Our main proposal was to start using our reliable employees, who can be an initial core / leaders for growing teams. This approach was successful for both parties. It helped us to provide the Customer with perfect results at the initial and later stages. Those core developers were able to select (after approval from customer’s side) the appropriate specialists according to the customer’s requirements (proven working experience, good communication skills, fluent level of English and etc.) and lead them to deliver good service, programming.
We've been cooperating for more than 2 years already and we’re going to continue working together. Dedicated team model goals of work (such as stable team, a good understanding of customer’s business, quick growing, reliable communication and etc.) were achieved with this Customer.
Agile Methodology to Meet Deadlines
To meet project’s deadlines our NET developers used Agile methodology. For example, we created very detailed documentation just for the next one sprint (each sprint = 2 weeks). This really helped us to be flexible and make requested modifications from the client in very short time.
QA Automation to save about 30% of testing budget
Another great point that provided success on this project was using QA Automation together with QA manual activity. Our QA team started to use QA automation from the very beginning till the final release. This helped the client to save about 30% of the budget for testing processes and provided excellent result in the quality of the developed software.