The Big Picture2018-11-15T01:45:41+00:00

Monolith to Modular

Are you struggling to maintain and extend a legacy application that has 500K+ lines of code?  Do you want to extend the useful life of an existing system?

Learn More

Learn how to make your legacy application faster and easier to update

Subscribe to learn tips and tricks for updating an existing large legacy system so it is easier to manage and update. Learn to how to add unit tests to existing code, no matter what the condition, to improve quality and security.

If you are managing or developing a large legacy project, do these problems keep you up at night?

  • Your team is big enough but you can’t keep up with the feature requests
  • Velocity is lower than it should be, but individual story estimates seem appropriate
  • Features built in one place introduce bugs somewhere else
  • Sprint planning takes a long time due to all the special cases that must be considered for each task
  • You want the advantages of Domain Driven Design, but don’t know how to get there
  • If you could deliver new features as Microservices, you would cut delivery time in half
  • Do your devs say: “No time for unit testing right now – we’ll start next sprint”
  • People on your team are dedicated specifically to handling fires
  • The QA process takes forever because there are so many paths to test

Imagine extending the life of your existing system.  Imagine releasing features quickly, easily, and safely.

Picture yourself breathing new life into an old system, and getting more productivity out of your existing team. The number of bug reports is going down, while velocity is going up. Feature requests get through Dev, QA, and back out to the customer faster than ever.  Customer satisfaction is skyrocketing!

You CAN shed your dependency on those super-hero developers on the team. You CAN start doing the unit testing you know you should be. You DON’T HAVE to be afraid of the next push to production and the flood of bug reports that follows.

Your team can do it, they just need a plan

How your Application Modernization Plan will work

What will your Application Modernization Plan contain?

Your team can do it,
they just need a plan

You know your team is good, but their hands are tied by the difficult state of your technology. You’d love to start from scratch, but you know there is too much value in your current code to throw away, and you couldn’t put the app in maintenance mode for 2 years anyway.

What you need is someone to come in and give specific, detailed, technical recommendations on how you can fix what you have while still delivering on feature requests. You need someone who can dig into the code as well as the development process to fix the problems and get your talented but technically hog-tied team back on track. Someone who is focused on delivering real business ROI. Your team can fulfill their potential – they just need a guiding hand.

With the Application Modernization Plan, you get:
  • Detailed recommendations on which technical problems you should fix, prioritized into Fix Now, Fix Next, and Fix Later
  • Sprint-ready task descriptions so you can get your team to work immediately
  • Specific tasks that are self-contained so they can be introduced into normal sprints alongside standard feature requests. The amount of time spent on fixing vs. features can vary from one sprint to the next.
  • A process plan with milestones and an estimated timeline to inject up-to-date quality and structural standards into your legacy codebase.
  • A strong leader and, optionally, an experienced team to quickly update and release your new system, then turn it over to your internal team for ongoing maintenance.

How your Technology Reengineering Plan will work

Here’s how it works…

First, I arrive on your site for a week of in-person meetings and code reviews. I will attend sprint planning, scrum meetings, and Business Analyst meetings. I will sit with your developers to understand the hidden problems in the code, and meet with management to determine the business goals for the system.

After an intense week of meetings and code review, I write up a detailed migration plan specifically for your application and development team. I identify any training necessary and process changes required, then give you a step by step plan on how to migrate your app to the cloud while updating the technology at the same time.

The plan will contain specific steps, milestones, and deliverables, but no time estimates. How fast or slow you migrate depends on your team and business demands. If management insists a big feature be released soon, we can pause the migration plan to accommodate it.  If you’d rather go full speed ahead, we can do that too.

Once the plan is done you have 3 options.

First, you can take the plan and have your internal team run with it. I can be available for consultation or questions along the way, and can provide your team with Technical Skill Update classes as appropriate.

The second option includes project management. I or one of my senior team members will maintain the sprint backlog for the conversion effort in a way that any internal team can pull from the backlog for one or more sprints. I will also work with the technical leaders of each involved team to ensure they understand what each task is about and how to implement it. This option includes any technical Skills Update classes necessary to ensure your internal team understands the process and requirements.

The final option is to have my experienced team do the full conversion for you so your team can focus on your “special sauce”. We will migrate the system to the cloud, inject all necessary architecture, tie it in to other systems as necessary, then turn over the keys to your internal team for ongoing maintenance. A fixed price for this effort can be established up front so you can focus on the 100 other risks you have to manage.

What will the Application Modernization Plan contain?

The plan will be specific to your codebase, team, and development process. Past engagements we have completed included:

Training Modules:

  • How to introduce Dependency Injection in an existing codebase
  • How to add the first Service (Logger)
  • How to Refactor to a Data Access Layer and Repositories
  • How to refactor for unit tests
  • How to use Mocking in Unit Tests
  • How to break apart Data Object classes

Architecture

  • Database access problems and how to solve themt
  • How to migrate off of expensive data stores like MS Sql, onto equally capable but less expensive open source alternatives
  • How to break tight coupling
  • How to migrate to AWS or Azure to decrease costs
  • How to introduce unit tests
  • What Mocking is and why it’s powerful
  • Specific development tools that will put hours back into your developers day
  • How to organize the classes and projects for optimum usability
  • What security problems exist and how to solve them
  • When to use threading and when not to
  • How to update your API so it can easily change with technology
  • How to convert legacy code to use APIs to advantage
  • How to adapt old technology, like ASP Classic, to use new techniques normally reserved for other applications
  • How to safely integrate open source software so you can reduce the work your team must do

Programming Patterns:

  • Successful Project Structures for Domain Driven Design Applications

Dev Process:

  • Successful Branching strategies using GIT
  • Lifecycle of a Git Branch
  • How to implement Continuous Integration
  • Organizing Checkins for a large team

It may also talk about the development processes

  • How to get more productivity out of the team
  • How to improve the stories so developers can get down to coding
  • How Business Analysts should write requirements
  • How to improve quality by introducing a build server
  • What is the goal of a code review, and how do we get the most out of one?

Ready to get started?

Book a 15 minute consultation and I’d be happy to answer any questions about the Application Modernization Plan, Cloud Migration, or anything else you would like to chat about.

Book Your Call Now

My “No Pressure” Guarantee

Go ahead and schedule a short call. 

I guarantee you it won’t be a high-pressure sales pitch.  

Book Your Call Now

What are Others Saying?

Read our Testimonials.  Look through our Case Studies.  See where we’ve spoken.  See who we are.

Still have Questions?

No, just .NET. In this day of technology, one must decide to be familiar with a lot of languages or an expert in one. I started with .NET when it first came out and have focused on it ever since.

Yes, I can help with websites, web projects, APIs, Windows Applications, or anything else supported by Visual Studio. Note that I specialize in sites that contain a combination of ASP Classic, Webforms, and/or MVC.

Yes, a key part of the process is allowing me to inspect the code with analysis tools, and by hand. For that, I need to be able to build and run the application at my office.

There’s no need to be nervous. All information you share with me is kept in the strictest confidence. I’ve been consulting with companies for over a 30 years. If I had loose lips, I’d have gone out business years ago. I would also be glad to sign an NDA along with a signed proposal.

Yes, once engaged, I will be glad to sign an NDA before seeing or receiving any private information. For the initial call, however, it makes little sense to get lawyers involved.

Still have questions? No problem! Please shoot me an email at brad@bradirby.com

My Story

Hi, I’m Brad Irby. Since I began my career in Software Development 30 years ago, nearly every project I’ve worked on has been with existing code, not building from scratch. In working with companies like General Electric, Wells Fargo,and Bank of America, I have learned how to work with large legacy systems, and bring them up to date by injecting current development techniques into existing code. In fact I’ve done it so often, Addison Wesley ask me to write a book about it.

Learn More

Blog

Big Nerd Ranch Alexa Training in Visual Studio - Part 3

Automated Testing for Brownfield Software

Greenfield and Brownfield Application Development

Installing Spring Tool Suite into Eclipse

DDD is not Architecture

Should a Repository Log Exceptions

Testing EDA is Less Expensive than you Think

Migrating a Legacy System to CQRS

Logger Injection vs Static Logging