15/04/2024

A solid foundation for rewriting a .NET application

By Scotty Robson

Scotty has worked at Propel Tech as a .NET developer for over two years, bringing several years of experience in delivering software rewrites and creating industry-leading programmes from the ground up for our clients. 

In his role, he works directly with clients, or closely with our project managers, to maximise systems. This may be the migration of existing programmes to like-for-like infrastructure, performing health checks, and improving everything from user-experience to security, or rewriting systems from scratch, introducing up-to-date technology and functionality.

Here Scotty describes his approach to delivering a seamless .NET rewrite from start to finish…

“As a .NET developer, there are two things I love. Code and improving people’s lives through my work. Seeing how the outcomes make users’ lives easier is very satisfying. When rewriting a .NET application, I follow a six-step structure to ensure the process is as enjoyable as the outcome.

Step 1. Establish good client communication and share a passion for their piece of work:

  •   Conduct face-to-face meetings to establish a strong connection with the client.
  •   Provide regular updates at checkpoints or critical points of the project.
  •   Establish good communication streams for effective information exchange.
  •   Conduct periodic demos at appropriate times to showcase progress and gather feedback.

If you don’t exercise good client communication, it’s easy to miss requirements further down the line. Building a rapport and a relationship as soon as possible really helps to establish confidence and trust that you are capable of providing technical advice and support, and rewriting systems competently, whilst being approachable and easy to work with. If you can get this right at the start, everything else falls into place. There’s a stereotype that developers don't like to talk to people. In this business that cannot and does not work, which is why good communication is at the heart of our service.

Step 2. Ensure the team has a thorough understanding of requirements and specifications.

  • Perform upfront analysis and an in-depth investigation of the existing code base. (if relevant).
  • Gather necessary resources and share relevant information with the development team.
  • Provide advice on the best ways to achieve project goals based on requirements.

As a developer, it’s easy to get excited and enthusiastic about a project and it can be tempting to get started before you really understand all of the finer details. However, if you haven’t established all of the specifications upfront, you may uncover missed items as the work gets underway. Subsequently, this can put a strain on relationships and make life a lot harder. I always take a step back and think about the long game. The developer's mind is excited to get stuck in, but to provide the best experience is to understand what the client is asking for, or even identify things the client hasn’t asked for but might want.

Step 3. Establish the right technology and stack for the use case.

  • Understand the client's needs and desired outcomes thoroughly.
  • Offer expertise on selecting the most appropriate technology stack for the project.
  • Ensure that the chosen technologies align with the project's goals and long-term scalability.

Instead of slipping into your comfort zone, you must always ask yourself if what you’re suggesting is the most appropriate tech or architecture for the specific problem. Having knowledge of the different technologies and architectures within .NET, and being able to apply the expertise and advice on what the best solution is, for functionality, longevity and support, is always the best approach - for the developer and the client.

Step 4. Agree realistic and feasible timeframes.

  •   Take into consideration business needs and operational requirements when setting timelines.
  •   Regularly liaise with project managers and clients to keep them informed of progress.
  •   Allow for contingency planning to address unforeseen scenarios that may impact timelines.

There are two common things that affect timeframes. Restrictions from the client side, such as with their infrastructure or their business use case, such as avoiding making changes at busy times of year, or that the specifications or costs aren’t watertight.

Step 5. Establish the right Infrastructure for the client and the project.

  • Advise on the benefits of cloud computing and assess if it's the right fit for the project.
  • Work closely with clients to understand their infrastructure requirements.
  • Ensure that the chosen infrastructure aligns with the project's goals and budget constraints.

Some clients prefer to have their own servers and infrastructure under their control, others like to have it in the cloud, which affects what technology is the best fit to that scenario.

Step 6. Make sure costs have been considered from all angles.

  • Provide transparent information on the costs associated with different technology choices and infrastructure options.
  • Work collaboratively with clients to find cost-effective solutions without compromising quality.
  • Regularly review and reassess costs to ensure they remain within the agreed-upon budget.

Costing is something numerous parties should have a hand in, including the PM, development lead, and company leaders. This is because all sorts of factors can affect costs. As a developer, being aware of the implications of certain recommendations and paths that you can go down is vital. If you are oblivious to cost implications - such as a third-party package with licensing costs - you can’t assume the client is happy to cover this without having a conversation. It shows competency as a developer if you are aware of overall costs and can work with boundaries, flagging changes that can impact the budget.”

Speak to Propel Tech

We have an expert Microsoft .NET support and development team and work with clients across many sectors and industries to maximise systems, reduce development time and leverage .NET capabilities.

Whether our clients want to maintain business as usual or embark on an ambitious project, our team takes the time to understand their unique circumstances and systems, and work collaboratively to achieve the optimal outcome.

As a leading UK .NET development company, we can provide feature-rich applications loaded with innovative functionality to directly address unique issues. Tell us what you're trying to achieve, and we'll work with you to develop a solution that fits.

Author: Scotty Robson
author image
15/04/2024

Let's make possibilities happen

ebook
eBook

Get the most out of your bespoke software. Download now your free guide.

Get the Ebook
microsoft partner logo crown commercial service logo istqb partner logo aws partner logo cyber essentials plus logo iso 27001 logo iso 9001 logo