Tag: best practices

  • Year-end Technology Assessment

    Year-end Technology Assessment

    We are approaching the end of another year, the perfect time for a technology assesment. Yes, it has flown by, and now we are in the 4th quarter of every year, when we should be looking ahead to the year ahead. That makes this a great time for review and planning. However, we are starting into a new wave, and it is more important than in recent years to assess where you are and where you should plan to go. 

    We call that plan a technology roadmap. Every business should have one. Even more, that roadmap needs an annual review at least. Technology and the related solutions move too fast not to. However, this does not need to be a scary or even an expensive process. You need to spend some time reviewing where you are, what is causing the biggest headaches, and where your business is aiming in the year ahead. You might notice that none of those steps require any knowledge of technology. Therein lies the greatest value of a technology assessment, a review of how your business operates.

    Business Over Technology

    Too many businesses and technology advocates push a solution or “the latest hot tech” rather than starting with your business processes. A technology assessment views those processes through a specific lens. However, the strengths and weaknesses of those processes should be the focus (or the “why”) of any assessment. That is where even a technology-focused assessment can provide value before getting to the assessment recommendations. 

    Most, if not all, of us benefit from talking through problems and challenges. That is why counseling is such a beneficial activity. We might pay a counselor for exactly that service, or we gain counseling by sharing our time with friends, family, and confidantes. A proper technology assessment provides that opportunity to talk through our daily and weekly routines in a way that helps us identify more details. Our focus allows us to identify and document some of those “muscle memory” tasks that we otherwise overlook. 

    A Technology Assessment That Serves Your Needs

    Once we have those steps outlined on paper, we can use them as a guide for leveraging the latest technology advances, upgrading our systems, and adapting to changes from previous years. Thus, the assessment is not pushing the latest offering from a vendor, nor the hottest new thing. Instead, the assessment should be technology agnostic and business needs-focused. The recommendation and plans should conform to your specific needs and situation rather than vice versa. That is a common mistake I see in small and mid-sized businesses. They followed recommendations over the years, but the recommendations were not based on what is best for the business. The recommendations were driven by a narrow view of the world limited by experience, vendor agreements, and the needs of those making the recommendation.

    This mindset has led us to create a short (roughly a week of elapsed time) and tightly defined assessment that can provide you with the first steps for your technology roadmap. We wanted something that we could offer that has no strings attached and allows you the freedom to make decisions based on an unbiased assessment. We can assist you with the nextsteps, or you can proceed with the roadmap on your own. If any of this has moved you to consider an assessment, then reach out to us for a call or check out our offer at https://rb-sns.com/product.php.

  • Runaway Technical Debt

    Runaway Technical Debt


    I was recently listening to advice from Financial Guru Dave Ramsey about financial debt and how it can control us. The thought occurred to me that this is very much a factor in software development when we have technical debt. We need to avoid letting our pile of debt get out of control or something we simply accept.

    Technical Debt Seems To Always Grow


    The problem with technical debt is that many of us simply accept it. We toss it into a bucket without considering the cost. This applies to missing or incorrect documentation, slow-running queries, clunky interfaces, and so much more. Yes, we can get away with that for a bit here and there when we have to hit a deadline. However, those little things can add up.

    The worst part about those “little things” is that they are small thieves of time and quality. Moreso, they can be hard to measure. Thus, we allow them to be a part of the experience with that codebase or application. For example, how often do you hear a user complain about a solution but then brush it off like that is just how things are?

    Address The List

    The idea behind technical debt is that we have a task we should do, but we kick it down the road instead. If this was not a task we should be ding it would not be technical debt. That is no different from getting an oil change for your car or cleaning air filters. We have a period of time where we can push those tasks off, but eventually they can grow to an emergency situation that must be immediately addressed.

    Just like we need to keep track of debt in general, technical debt should be reviewed regularly and even avoided where we can.

  • Documentation and Reproducible Builds – Critical Pieces Software Solutions

    Documentation and Reproducible Builds – Critical Pieces Software Solutions

    One of the things I see most often plague an organization is the lack of documentation and reproducible builds. That has not been historically an issue. However, when the downsizing and rightsizing of the turn of the century kicked in, many developers moved on or were let go. While those were not bad business decisions, they did allow some critical knowledge to walk out the door. I have come across several organizations post the COVID lockdown that took too many years away from maintaining their systems. They have paid the price for a lack of documentation and reproducible builds. These are two things that are often viewed as academic but are actually critical to the longevity of a solution.

    Why Bother With Documentation And Reproducible Builds?

    If there is a winner for the most common rookie mistake in software development, then this pair most likely tie. I cannot count how often a young software shop changed code on production systems to “save time” or skipped documentation because the code was “easy to read” or intuitive. While there are arguments for these measures, they miss out on the long-term value of a short-term fix. Even worse, an application is useless if we can’t build and deploy it. Those steps almost always require both documentation and reproducible builds.

    There are some very smart technical people in the world. However, even the smartest can look at a solution and be completely perplexed. There are so many moving parts in most modern solutions it can take days or weeks to get an idea of what is used to create a solution. We need documentation, at least, to help us get an idea of what a solution is made of and the mindset of the developers. This is even more essential to taking over a solution that was written with technology that is no longer viable.

    The Skip A Version Approach

    In the early days of software development, there were many companies that embraced the skip-a-version approach to upgrades. This smart compromise kept the company current without getting stuck in an endless upgrade cycle. It was easy to get into a rut where upgrades came so fast it felt like you were always learning a new system. That frequency often eliminated productivity gains and frustrated users. We still can see this challenge occur when software is updated “too often” and users are just getting comfortable with a version when an update comes out. That is why some people turn off automatic software updates and seem far more productive than those on the leading edge.

    While a version or two can be a smart decision, software often changes dramatically over a few versions. There also is a challenge of getting old versions that become more of an issue as software ages out of use. Sometimes, releases like Windows XP stick around for several years. However, that is the outlier and not the norm. Software can be almost unobtainable a few years after release in some cases. That can make it almost impossible to build or update that custom solution you paid so much to build a few years ago.

    Provide A Regular Check-In

    Disaster recovery plans critical tools like fire extinguishers should be tested periodically. When you fail to ensure they are current you leave yourself open to experiencing them failing at the worst time. Software and technical solutions are very similar to this. You need to periodically ensure they are current enough to be ahead of disappearing technology. Operating systems are a very common example of this. Your application may run fine on a specific operating system. However, that OS will age and eventually become unsupported. That alone is a reason to upgrade your system. Even worse, there are things that can happen that make OS sunsetting look like a walk in the park.

    Many solutions are created on a language or framework that has specific version requirements. As the language and frameworks age they may or may not be as compatible. Your solution may require some libraries to be updated. On the other hand, the libraries required may no longer be available. Technologies fade and die. That can put you in a situation where your current application no longer works and you have no way forward other than creating it from scratch.

    I have come across more than a few examples of this. In some cases, the original documentation and source code was lost. That caused the company to have to re-imagine the solution based on how they remembered it working. If that sounds difficult then you are correct. It is better to forget the old solution existed in that case as you end up second guessing every feature and how it needs to be implemented.

    How Did I Do That?

    Have you ever looked back at a task from months or years ago and asked yourself how you did it? The forgotten aspects may be a critical step or piece of information. This problem is why we take notes. We want a way to remind ourself of what we did and how we did it. Documentation and reproducible builds provide a way to take detailed notes for a developer to use in learning how another developer got the job done. The end product is almost never enough. There are hidden details in the code and even the build process. Deciphering these details can cost even a seasoned developer weeks of trial and error. Sometimes the original approach is lost just like dead languages or other bits of knowledge that can not be recovered.

    Next Steps

    Now that you are sufficiently warned, you are asking yourself what you can do to ensure that documentation and reproducible builds have been adequately created or provided for. The simplest solution is to ask for them from your developer or team. They will either explain why those do not exist or point you to their answer. For the non-technical among us, there are a few questions you can ask to help vet the documentation and build process without learning the system inside and out.

    • Ask how someone can access the source code. You might even request a copy to store somewhere safe.
    • Look for a list of logins, passwords, and server details. These should include ways to access the server as well.
    • Verify there are steps to build the solution documented somewhere. You might even attempt them or hire a third party to do so.
    • Request the developer or team to do a “clean install” or build. Things can be forgotten so forcing the developers to build the solution on another machine can highlight the gaps.
    • Ensure a list of technical details are provided. This includes languages used, version numbers, libraries, frameworks, etc. These can be critical to staying legal and avoiding surprise license issues or costs.

    About RB Consulting

    Feel free to schedule a time to discuss your next project with us and see if we might be the perfect partner for you. We take these relationships seriously and are happy to point you in the right direction if we are not a good fit. Years of being on both sides of these relationships have taught us a lot. That initial call is free, and there are no obligations. You have nothing to lose. 

    Our experience has taught us a lot about the pitfalls and challenges of custom software. Likewise, we have an e-book that can help you explore all the steps in building software, including a few templates. However, we ask that you share an e-mail address so we can send you a copy. We will add you to our monthly newsletter, but you can unsubscribe anytime. Your data is not shared with anyone else. Learn more about our book here.