Choosing between the Rewrite or Fix It

It’s easier to rewrite something than to figure out what is going wrong.

It’s easier to start from scratch, ignore the history and do it your way.

It’s easier to ignore, then engage.

The decision to rewrite versus fixing a code problem is always rooted in emotion and not the code.

We Can Do It Better

If it’s someone new to the team, their first instinct when this discussion is being raised is to lean towards rewriting it.

Why?

Because they don’t need to learn the old code, they don’t need to figure out what is breaking and where and most importantly they don’t need to understand what decisions were taken and why.

In short, hubris has reared it’s ugly head, they’ve scoffed and they know – “I Can do it Better”.

However, in most cases they can’t, they think they can, but once they get into the weeds of it all, they’ll start to hit the same roadblocks that you’ve encountered in building it up.

We Can Do It Better is a path based on pride and over-confidence.

The Technology Factor

Software platforms and frameworks are being updated an increasingly exponential rate. Every day code is changing. What you write today, could be written better 4 – 6 months from now.

Will you be rewriting your code base every 4 – 6 months to take advantage of these new features?

Doubtful.

If the reason for your rewrite is to “be on the latest framework” or “take advantage of new patterns” that do not result in significant performance improvements with maintenance time staying the same or (hopefully) decreasing, then there is no value on being on the latest and greatest software.

Creating a Make Work Project

Everyone hits a slow period in their daily grind. Some go on longer than others, but it’s there. And when it happens, the first project to come up is code that “needs” to be rewritten and made better.

If this discussion is coming out of left field with no pre-dating factors associated to it, then you are now part of a “Make Work” project and you do not want to be part of a “Make Work” projects. As the name implies, someone has decided that this is a good idea (but it’s not) and as such they are trying to make work happen in order to look busy.

Make work projects never work, they are never completed, they are never good enough and if you suspect one is happening, you should dump it and focus on finding a Do Work project. Do Work Projects matter, they are needed and are value driven.

There are valid examples of when a code base needs to be written, but this number is much smaller than you think (and the success rate even smaller). If you’re being faced with a decision to rewrite versus fix, take a hard look at the decisions and reasons being used to justify the rewrite – are they emotion based or are they based on delivery and technology patterns.

Moving to the Cloud? That’s a solid reason for a rewrite.

Platform being discontinued? It’s a no-brainer, rewrite it.

Trying to fix a few bugs that are “tricky”?

Take a second look, fixing those 5 bugs will have a much greater ROI (Return on Investment) than rewriting your app.

And if you’re looking for the leadership take on this, apply the above logic to your team – is it better to blow up the team and start from scratch or fix the problem and move on?

Unified Service Desk Outside the Contact Centre

The Unified Service Desk for Dynamics 365 should really drop the Service from it’s name and become the Unified Desk.

With the last few incarnations of the Unified Service Desk, the underlying configuration and Framework have grown into an application that can no longer be discounted as a contact centre only client.

Unified Your Applications

How many times have you been using that home-grown system that manages your back-office orders while being transferred a call from the contact centre to look at a customer’s billing statement?

Wouldn’t it be great to not have to change that home-grown application, open the customer case that has already been started and have it send data to your application with no changes to the original application?

Wouldn’t your customers think it’s great when they don’t have to repeat their information to another person for the second or third time?

Or what about being able to setup multiple agent configurations across a multi-tenanted contact centre that allowed you to use the same Dynamics 365 tenant, same security roll-ups and same user profiles but with different configuration profiles, enabling your development team to focus on building solutions and not synchronizing data between multiple tenants.

Simplified Deployment

Or how often do you come in the morning and fire up all three or four applications you need to log into separately, logging into each one and instead simply double click one app, have it load and sign you into all the others?

The argument for having to roll-out a client application is weak at best (the one I hear the most).

With the improvements in downloading customization files to an agent’s desktop, files are streamed to their LOCAL DATA folder (away from the main installation) and loaded on demand (or unloaded after they have been used). Create a configuration file, add it – along with your other files – to a zip archive, add it to the USD configuration and wait for it to deploy.

Custom User Interface

Not sure about how the Unified Service Desk looks?

Create your own – that’s right, create your own.

With the Unified Service Desk you can create your own view with a basic understanding of WPF that aligns to what you want your view to look like so if the traditional 4 panel display doesn’t work for you, create something that models your organization view, complete with branding and deploy it as easily as you would any other Unified Service Desk customization.

Deliver your Dynamics365 Platform

The Unified Service Desk interacts with any customization you have in your solution framework. When implemented correctly, it can be the gateway to your users accessing not only your service centre but all of your applications within your Dynamics framework.

If you haven’t used the Unified Service Desk before or want to learn more about it can do for your Contact Centre or Business, give us a call and we’ll show you how.

 

 

Lead them in the Middle

Your First Team Meeting is critical to getting things underway with either a new team or project.

How you start will set the tone for how the project will kick-off and where your team will look to focus their energies.

In the beginning, like the song, “Everything Is Awesome” in the beginning, simple because it’s all new, emotions are at a newfound level of excitement, goals have been set.

You’ve set the groundwork, the plan, the direction, the path to go down, but apart from that – but you haven’t started yet.

Nothing has been done, so everyone is happy with the dream.

Fast Forward to the end of the project, the team has come together, they’ve gone through the final pushes of people coming in early, working late, sweating more then they usually do, doing whatever they can to get this project/product out the door and make it a success.

The team has done in so again, emotions are all happy because the release has gone out the door.

If you haven’t realized it – this is where you many of the great team quotes originate from – how the team came together to become a success, how they fought through adversity and change to deliver, how they never gave up.

There is enough literature on how to start and finish any project to keep you reading well into the afterlife.

But what about the middle?

What’s happening in the middle?

What’s going on when all that code churn is happening?

When the team is having to up their growth quotient by learning on the fly and still delivering?

When frustrations over not hitting performance targets are starting to set in?

When the team is feeling worn out and knowing that they have much more work to put in?

This is where Leadership matters, this is where Good Leadership matters – Leading in the Middle.

  • Leading when things aren’t perfect.
  • Leading when everyone is complaining.
  • Motivating those around you to keep going.
  • Keeping your head when things don’t go right.
  • Knowing when your team needs a break or they will be broken.
  • Understanding what minor things manner in the grand scheme of the whole project.
  • Giving your team leeway to try new ideas and let them fail.
  • Insulate that failure and not blaming it on them.

If you can do all those things, then you are already on the right path to Leading your Team in the Middle.

The most successful teams are those that were able lead well in the middle when things became murky or the team started to struggle because that’s what every team goes through.

The middle is never perfect, it’s never clear, it’s never straight forward, how you lead in the middle does not define how you will finish, but rather who wants to start with you again on the next project.

Will they come back for more?

In the calm moment of reflection that happens after the delivery of any project, will they go back there with you?

When lead correctly, in the middle, the team is ready to jump onto the next challenge, they are sold before the project is even announced, it’s not a question of If the project will start but When.

If you start off with the right objectives, lead well in the middle, the end will take care of itself.  If you start off strong, mess up in the middle, the end will eventually take care of itself, but not as well as it could have and you probably won’t get another opportunity to start again.

 

 

The Leadership Change Goal

If you think you can change your team’s behavior, direction, and course in thirty days and have them executing on that change – you need to reset your goals.

Leadership is a long game, the more members on your team, the harder it becomes to implement the change you know that the team needs but that the team cannot reliably implement because there are more variables in the mix.

Coming in with a list of demands for behavior and direction change will only serve to confuse your team.

You need to start small and focus on incremental growth and adjustment.  If the team is not delivering, your efforts should be focused on the behaviors and attitudes that shape that delivery.

Are there internal or external threats that are preventing them from being successful?

If so, what small investments can you make that can yield larger gains in the next thirty days to precipitate those bigger changes?

If your Goal is for the Team to “Deliver Better” the first step is to work with the team to identify what delivering betters means to them and everyone on the team.

At that initial discussion, there should be zero discussion on the solution to that goal.

Why?

Because this is the first time you are discussing it with your team.  The first opportunity they have to respond, to come up with a suggestion or ideas on how that problem can be solved.

You need to hear what they have to say because this will affect the solution that together you will implement.

In holding that first meeting, you will have accomplished the goal towards getting your team to understand the problem and begin the task of owning it.

If done right, over the coming week while you are working with your team on potential solutions, team members should be coming to you with additional questions on the final goal – i.e., can we do this as well?

You want this, you want their involvement, you want their ownership.

While fielding these questions, this is an excellent opportunity to bounce ideas off of your team members on how to solve your team’s problem and what steps you can take to get there.

When you circle back with your team the goal of that second session should not be about timelines it should be about the steps needed to be taken to achieve the goal.  This is key to the success of your plan as not everyone will understand the steps that go into achieving a goal and the timelines will be dictated by that understanding.

Once enunciated to your team, the path that you and your team are going to take will then be clear, who will be responsible for what and how the final goal will be achieved – the conversation can now switch to how you and your team will achieve this goal and on a what schedule.

We are constantly bombarded with news and information that teams need to keep changing now and to meet that demand as quickly as possible.

Even during the development of a short-term project, say four to seven months, the pressure is just as great to “produce results” and “show change”.

History has always proven that the team that manages by Ownership and Adoption and treat Change as a marathon are more likely to succeed in that endeavour.

Don’t be the Leader that “hopes” the change gets implemented, be the Leader that knows when it will be implemented.

We Call Them Workshops

When we were devising our library of training programs on Leadership and Team Development all the way to Advanced Dynamics 365 Architecture and Design we stayed away from comparing them to the traditional catalog of Courses and Certifications or classifying them as Sessions that people would attend.

As our Workshops imply, our focus is for every person to leave with the knowledge that a problem they are experiencing today can be resolved when they go back to the office the day after.  We keep our workshops small to foster discussion among attendees so they can learn and grow from each other while honing their expertise with the content.

For this reason, we place great emphasis in preparing ourselves for you attending your any of our workshops.

Before attending any of our workshops we want to hear from you to ensure you’ve signed up for the right workshop and that you’ll be getting the right material from it.

These conversations are comprised of three key questions to get the ball rolling;

  1. What are the biggest challenges you are facing in your environment today?
  2. What does success look like for you when you leave the workshop?
  3. What is it you want to do with what you learn when you’ve finished the workshop?

With this information in mind, we look to bring in your real-world problems and examples into the workshop and forgo the standard labs that might help you get through the next module but don’t necessarily to translate to what you are working on today.

If you’re interested in finding out learning more about our workshops and how we can tailor them to your group or team – contact us for more information (we offer group discount rates).

Subscribe to Roving Thoughts

Enter your email address to subscribe to this blog and receive notifications of new posts by email.