Cost, Quality and Time: Yes, You Can Have It All

  • Reduced cost: Prior to working with Cazton, the client had multiple failed attempts over a period of 14 years. We used five developers (instead of twenty the prior vendor used) and we delivered at record speed. The new web application is cloud-enabled and has many extra features.
  • Successful delivery in record time: Cazton successfully created 40 out of 108 web components in just one month.
  • Top performance: The final web application performs extremely fast, is highly secure and works on multiple devices (mobile, tablet and desktop).
  • Top quality: 100% of customers love the upgraded user interface.
  • Expertise matters: Client wanted at least 20 developers to work on the project to meet their deadline. Cazton exceeded the client's expectations and did so with just five developers.

Time and again, we hear this in the tech industry, "Cost, quality or time - you can only have two out of three." Over the last decade, we have proven that is not true. If you work with the right team, you can truly have all three and it makes an incredible difference.

Background

The client has a very successful product that is being used by hundreds of users in the IRS. That is also a big reason why most financial corporations that provide financial and estate planning services use this software. Even though it is a very successful product for 27 years, there have been multiple attempts to convert this to a web application. Their customers like the ability to be device independent and be able to use operating systems like a Mac. The application runs in Cloud and allows the users to continue working from a new device seamlessly.

In a standalone Windows application, the customers are limited to saving files on their local machine. In case of a hard drive or machine failure, they are on their own to recover data. However, in a cloud-based environment, the state of work is saved in the cloud. So, for example, when the customer leaves work and wants to login from home, they can easily login via their cell phones and continue their work exactly where they had left it. Since the user experience had not kept up with current times, an upgrade was inevitable.

Why was it so difficult?

After multiple failed attempts for 14 years, it was a natural question we asked the customer, "Why is this such a difficult project?" There were multiple reasons. A few of them were:

  • The legacy code was written entirely in Delphi.
  • The data was stored in multiple different formats like XML, flat files, etc.
  • They had some data in MySQL. However, the schema was poorly designed, and the application code worked around the poor design thereby adding a tremendous amount of technical debt.
  • The legacy code was a mountain of technical debt. For example, they had 1800 Delphi files and most of the code was procedural.
  • The project requires some very complex understanding of mathematics and financial concepts. Though it lacks any documentation whatsoever. In short, the only attempt at documentation was reverse engineering the Delphi code.
  • And the list goes on.

Why did they approach companies in Romania and India?

The customer had a deadline to showcase forty components only six weeks after Cazton was contacted first. Given that we didn't have any formal requirements, we were not in a position to commit to the deliverable; however, we were confident we could reverse engineer the code. We proposed a team of one part-time principal consultant, one hands-on architect and three developers on a full-time basis. Guess what? We did not hear back from the customer for the next two weeks.

Cost Quality Time - Cazton

As you may know, Cazton has never had any sales employees. So, we don't have a policy of outbound sales. However, in this case, we were perplexed as to why the customer didn't take us up on the proposal. We were genuinely curious to know which other company could have really delivered the software in six weeks. So, we decided to follow up with the client. Apparently, they had thought we didn't know what we were doing because we had proposed to deliver with only five consultants. Given their experience in the last 14 years, they believed the software development work would need at least 30 to 50 developers to deliver this project under the tight deadline of six weeks. They thought that offshoring the project would reduce their cost of development and would enable them to easily scale resources due to low costs.

But to their surprise, most of the companies they approached did not have the skill to convert their legacy code into a high performance, robust and scalable web application. Some of these companies asked for a six month time frame to create a team. We fully understand why clients that have had a series of failures would think that our proposal is too good to be true. Once bitten, twice shy. In this case, they were bitten for fourteen years.

Offshoring might seem to reduce hourly costs per person. However, there is a chance of added costs like technical debt, non-delivery, extra-ordinary delays, loss of business and exorbitant rewrite costs to speed up performance.

Why was Cazton contacted?

The customer had heard our success stories of delivering projects under tight deadlines. They had a critical demo in six weeks. They had to showcase forty fully functional components in that time frame. With their development velocity, they did not expect the delivery even in six months. In the last one year itself, the client had already spent more than 50% of their revenue. While their current vendor always made claims about the project going well, six weeks before the demo they delivered shocking news to the client. They asked for eight months to successfully deliver forty modules. This left the client shell-shocked and dejected. If the client didn't deliver, they wouldn't get new funds and they would have to shut the company, eventually leaving many jobless. Hence, they decided to approach us.

A Life-Changing Four Hour Zoom Meeting

The client met with our CEO to discuss the project and its current and legacy code. And while they were going through GitHub (the source control repository for the code), they realized there were only one or two 'code check-ins' in every two-week period. And those check-ins had an average of less than hundred lines of code. That explained why the other company was asking for thirty two more weeks to finish those forty modules.

The client was not just paying for a delayed delivery, but also for a poor-quality code. We gave them several examples of why the other company's code was not industry standard. We gave them confidence in us as we were able to convert 550 lines of code to mere 15 lines of code. The reduced lines of code performed 12x faster. The legacy code was using 19 loops inside one loop. Our final code was just using one loop. This meeting was indeed a life-changing event for the client. The client instead of using 30-50 developers agreed to our proposal of five developers.

Our CEO - Mr Chander Dhall is often busy helping clients that have multi-million-dollar businesses with Cazton. However, standing true to the company's principles that every client is important, he made sure that he worked closely with his team and spent his time in understanding their problems and provided appropriate guidance.

After the meeting, Cazton experts spent the initial couple of hours understanding the codebase and the architecture. The issues we found were shocking.

Issues:

  • IP risk: The client's intellectual property was their computation logic. 100% of the code was written in JavaScript. So, what does that mean? Anyone could download the logic. Surprisingly, the client had no clue until we asked.
  • Lacked basic security: The project lacked any security whatsoever.
  • Lacked backend: The client was told that their backend is written in Node.js. However, quite surprisingly, Node.js was only used on the front end.
  • Fake logic: In certain cases, the components had hard-coded data that made it simulate the expected result without actual business logic.
  • Lacked best practices: The front-end was created using React.js, which is a popular Single Page App (SPA) library. However, their custom routing logic was so unusual that they lost all major advantages of a single page application. Think of this as a Single Page Application which doesn't behave as a single page. Every call to the backend resulted in a new view, which wasn't part of a SPA. In short, they use a single page app framework to create a multiple page application.
  • Lacked responsive design: Even though the application was claimed to have responsive web design, the tablet view failed to work well for most components.
  • And much more.

It was clear that the other development team had very little experience delivering enterprise software, especially web applications. And upon further investigation, we realized that one of their lead developers had claimed to use Angular in 2010 whereas that framework did not even exist at that time. Although that team used React.js for development, this lead developer had no experience working with it. It was a shameful situation!

By the time this engagement began, we were only left with four weeks to deliver. Given the above stated problems with the legacy code, we decided to rewrite the application from scratch. Since the Cazton team works with top Fortune 500 companies on multi-million projects that generate billions in revenue for our clients, we learn on a daily basis what works and what doesn't work. Commitment to success is one of our core values. With just four weeks left, our CEO was now in delivery mode. He started calling members from our team and explained to them the situation the client was in. Having heard the client's story, the first four people he called agreed to work on the project and dedicate the next four weeks including weekends to this project.

In our CEO's words, "I have 100% confidence in my team's technical skills and I know they are very good people. Jumping in on this task and committing four consecutive weeks, including weekends, show their level of empathy and commitment. This incident is so gratifying that my respect for them is one hundredfold."

How did we deliver?

We started the project on April 2, 2021. It was a Friday. This was not a trivial project and time didn't favor us. This was the kind of challenge our team loves to take on. Our goal was to deliver one component by Tuesday. Our CEO used the "divide and conquer" strategy to have the team members finish critical PoCs (proof-of-concept) independently and worked on getting the foundation framework built concurrently. Thanks to our hardworking team, they all successfully completed all the major PoCs by Sunday night.

Modules completed in a month - Cazton

Guess what? We surprised ourselves. We had finished five components by Tuesday night. In the next two weeks, we successfully completed 38 components and we still had two weeks remaining. That gave us enough time to test the application properly and make the UI responsive and improve the application performance. We also added two-factor authentication. We moved all the data in an RDBMS with encryption at rest and made sure no client IP is exposed on the User Interface.

The demo exceeded the client as well as investor expectations. The client was funded. We were happy that we upheld our principle of under promise, over deliver as we achieved our goals before time. We were successful in making sure not a single employee/contractor loses a job. That was our goal and we had achieved it. It was hard but it was worth every sacrifice.

How did the application perform?

We had successfully implemented all what was expected of us for the demo. On top of that we introduced the following:

  • Top-notch performance: Every single request on the server takes less than 50 milliseconds.
  • Security: We added Microsoft Identity, custom JWT authentication with support for 2-factor authentication.
  • Hand-off: All the client's work is auto-saved securely on the cloud. This enables a seamless hand-off among devices without causing any delays.
  • Customization: The client could customize the plans for their customers and save multiple plans per customer. In the legacy app, the only way to do this was by saving multiple files on a device which were not available on other devices.
  • Encryption at rest: Another added security layer was the RDBMS with data encryption at rest.
  • Best practices: We created a light-weight framework with best practices. This allowed us to increase productivity without sacrificing any future productivity. The code base is highly modular and has checks and balances to prevent redundancy.
Cazton Code Legacy Code
Security check cross
IP Protection check cross
Industry best practices check cross
Performance (speed-wise) check cross
Responsiveness check cross
No. of lines of code Up Down
Website type Dynamic Static

Our team has gained expertise all over the world and in all fields of the tech industry. They can quickly identify, predict, and satisfy our clients' current and future needs and that has enabled us to build our own framework, which is robust, flexible, scalable, increases speed of development and implements best practices.

At Cazton, we believe that it is very easy to do the right thing in business. It is so much easier to do it because there is not much competition when it comes to doing the right thing. We help all types of companies ranging from SMBs to fortune 500s in their digital transformation. And our clients trust us to provide them with the knowledge and skill to tackle every challenge and succeed at every opportunity. That is one of the reasons why Cazton has expanded into a global company, servicing clients across the United States, Canada, Norway, Sweden, England, Germany, France, Netherlands, Belgium, Italy, Australia, and India.