Remote workers: Is this the new normal?

Full disclosure – My view on this topic is somewhat colored by the fact that I think people work well when they are together in the same geographical location. However most teams don’t seem to have the luxury of having their members working at the same office due to various reasons.

This blog focusses on the software engineering teams that are engaged in building great enterprise applications. As for other types of teams, It is hard to get a general sense how remote work affects businesses as it seem to generate a mixed reaction.

Some high performing teams have all their members working remotely. How do they do it?

  • Jelled teams that already have established relationships among members seem to have an easier time transiting into working remotely. Mature teams are comfortable in improvising and adapting various techniques to ensure maximum participation and accountability by team members. For example
    • Schedule multiple standup meetings instead of just one per day.
    • Establish a rule to always have the video camera on during team meetings, it always helps when yo can read the body language of the participants.
    • Maintain constant communication via tools such as Slak.
    • Adjust communication plans according to the situation, planning and design phase of the projects will require more participation from team members, sometimes all day meetings are necessary, meddle period is when less meetings and more project work happens.
  • Organizations that have experienced leadership teams are able to adapt to remote working environments easily, Servant leaders that are empathetic, seem to succeed in making remote teams jell. They still manage to create a team environment that closely resembles the team that is working in a physical office space. Also it is important to understand there is always going to be periods of downtime, for example it is typically not a problem if someone takes an extended lunch break at work, so they should be able to do the same when they work remotely as well.

Challenges of working remotely

Apart from the typical issues such as security, accountability, technical problems, reliance on the internet service provider of choice etc. individual contribution to an organization has become a gray area with remote working arrangements. No business can thrive on an environment where people contribute just enough to earn a pay check. Hopefully this is not the case with your business.

Building a new team of people comprised entirely of members from geographically dispersed locations is always going to be a challenge. For example remote teams, where members work in an office in Argentina can be managed from New York city without too much trouble, it gets tricky if the individual members work from different locations.

Modernizing Legacy Applications

Why do we need to modernize applications?

The idea of converting your legacy applications to a newer technology stack may be enticing, but first we need to take a closer look at the reasons for modernizing and ensure that any modernization project makes business sense. Here are some questions that will help You decide if modernization is a good idea for your application.

Is the current technology stack used by your application becoming an impediment when it comes to implementing business objectives?

  • If the business requires new features, the application should be able to accommodate those in a reasonable amount of time.
  • Modifications to the existing codebase should be relatively easy.
  • The development team should not be in a constant firefighting mode, fixing bugs.
  • Depending on the use case, the application must be nimble at all times in order for the business to be able to compete.

Are critical elements of the technology stack for your application going out of support?

  • Consider all the dependencies including OS version, DB version etc. so that you can make an informed decision when determining if it is important to modernize.

Are there potential security vulnerabilities in the application that will be difficult to resolve?

  • Is your application using outdated opensource frameworks that have known security issues?
  • Too many security holes in the code

Are you facing staffing issues due to aging technology?

  • Is it difficult to hire and retain talented resources because your technology stack is outdated?
  • Is there constant negative feedback from the development team as well as the support staff?

  Other considerations

  • Economy – How much is the modernization project going to cost ? Can the business afford to commit the resources to the project ?
  • Alternative – This happens very rarely in enterprise applications but it is always worth to look around and see if there is an off the shelf or SASS type application that fits your needs.
  • Certainty – What is the level of certainty that your modernization strategy will be successful?
  • Latest Frameworks – How can you avoid constantly playing catch up trying to upgrade to latest frameworks?

Sometimes there may not be a choice when it comes to modernization, for example in the case of a merger or acquisition the business may decide to go with the latest technology.

Once you have made the decision to modernize and have the buy in from all the important stakeholders, Next step is to come up with a solid strategy and roadmap to produce the new and improved version of the application.

The least invasive strategy for modernization is to create all new features in the target technology and integrate into the application. Then you can rewrite the smaller sections of the application. The problem with this approach is that it may not be suited to your application.

Alternatively you can modernize the whole application in one shot, depending on the size of the application this will require the business to commit considerable resources, additionally business may be required to enforce a moratorium on any changes to the current application to prevent duplication of work.

What ever the strategy you choose it should align with the business objective in order to be successful.