Tag: software development

  • How Do I Find An IT Solution?

    How Do I Find An IT Solution?

    This post starts a series to walk one through the questions we must answer in finding solutions for business problems. We will focus on IT solutions because so many challenges are best solved through automation. That is where software applications shine. However, there will be situations where your best solution is not found in IT. You will find a path to those other solutions when you answer the questions we explore.

    Start Here

    You can spend a lot of money on software consultants and solution providers. They may or may not guide you to the best solution. Therefore, this free list of questions may be the best investment of your time. It would be best to answer these questions, or at least be aware of them, as you research what works best for you.

    Before continuing, note that the best solution requires investing time and money. A good consultant or provider can guide you, but they must learn how your business works. This is not a summary or overview but will be in-depth. Think of it as building a house. You do not simply say, “I want a house with X bedrooms and Y baths,” there is far more detail you provide. A good business solution is no less complicated. The details will help you find an IT solution that fits you like a custom-tailored suit.

    My Checklist of Questions

    Let’s start with those questions we need to ask. We will explore them in more depth in this and upcoming posts.

    What Is The Problem You Want To Solve?

    This question appears evident at first glance. However, it is often skipped over or not provided the thought it deserves. The challenge in answering this question is to solve a problem and not one of the symptoms. Think of a doctor that treats a fever instead of curing a disease. Unfortunately, that is often what we do in business, particularly in software. An excellent way to approach this is to return to your childhood and ask “why” until you reach the root desire. It is incredible how often this provides not only a better solution but also a far simpler implementation.

    An Example Problem To Solve

    I think an example works best for this aspect. We can start with a customer that wants to be able to copy data from one application to another. The goal is to open application A, do a sort of screen print of data and then be able to paste the data into application B. Awesome, now ask why. They want to paste because they have orders entered into one system and then need to put that data into a fulfillment system. This situation is not uncommon. Multiple systems and data need to flow from one to another.

    Rethink Your Process

    We have a few jumping-off points. However, we will focus on the back end. What happens with the fulfillment system? Why enter data in that? The answer is that the order is printed out and handed to the warehouse for pick and shipping. The shipping information is printed and sent to someone to enter into the fulfillment application. Then, they repeat the process with application A. Then, an order is marked fulfilled, and data is entered into system A to show it was shipped. We can see where there are duplicate entry points and the opportunity for data entry errors. Fortunately, it is not uncommon for us to see a system’s flaws when we walk through it step-by-step. While some organizations require printed forms and data, that is becoming rare. Instead, the case is often that “we always did it that way,” and the challenge is changing rather than a business need. However, you can find an IT solution with less cost than you think.

    Find The Right Perspective

    The example also provides an error in perspective. Too often, we focus on a single problem or pain point and fail to step back and analyze how we got there. In the above case, the problem is not getting data from system A to system B. Instead, it is getting data from a customer through shipping, invoicing, and fulfillment. Software projects can struggle due to a change in scope or focus. The original problem is shown to be insufficient once the project starts. That can lead to many challenges we can avoid by starting with a better handle on our final goal. Instead, we find an IT solution before knowing how to solve the problem correctly.

    The First Question To Answer

    Any successful journey has a starting point and a destination. Every project is the same way. We will improve our chances for success substantially by assessing where we are and where we want to go. Therefore, you must first answer, “What is the problem you want to solve?” There is no need to find an IT solution until you have that answer. While there are consultants that can help you refine your answer or answers, you will be hard-pressed to find the best resources or approach until you have a solid solution to start with. We are available to help you in your journey. However, you can often do yourself a huge favor by asking yourself, “why?” a few more times before you search for someone to solve your problem.

    Improve Software Success

    We have an e-book that can help you explore all the steps in building software, including a few templates. All we ask is that you share an e-mail address so we can send you a copy. We will also 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.

  • Success In The Bad Times – Profit From Chaos

    Success In The Bad Times – Profit From Chaos

    There are stories of leaders and entrepreneurs that always seem to do well. They can advance in the good times as well as the bad. For example, when the stock markets are going down, there are almost always stocks going up. Likewise, other financial systems will benefit from a market downturn. We need to identify and embrace the signs of chaos and downturns to make the best decisions. It may seem counterintuitive. However, we can ride the turbulent waves to success and profit from chaos.

    More Pain Equals More Opportunity

    The technology world is based on solutions. We find pain points and then craft ways to alleviate those discomforts. Entrepreneurs work in almost the same way. They build companies that provide solutions. In a perfect world, we would all be out of business. No one would pay for help doing something that they can do quickly and painlessly. Likewise, we do not want others to do things we like. There is no market for getting paid to go on vacation for others.

    All that is to say that troubled times bring opportunities. These are ways we can profit from chaos. There are unethical ways like price gouging. On the other hand, there are ways to further society, such as creating tools needed during changing times. A good example is the increase in mobile and remote work solutions during COVID lockdowns. Those problems existed before. However, the need was not as great.

    Find The Core Problems To Profit From Chaos

    Tough times may come from a myriad of events or situations. Each one of these is an opportunity. While some may be out of your sphere of control (e.g., global politics), but some may not. The best thing about these challenging times is that when you reduce great pain, even minor improvements are greatly desired. For example, when fuel is unavailable, then getting it to people even at higher costs than average is still a step in the right direction. The dynamics and numbers around solutions change when the environment is in flux. Thus, solutions that would be unrealistic in normal times can be exactly what is needed. There is also the momentum of a product to consider. Sometimes, a solution requires a groundswell, or momentum, to get off the ground before it has long-term viability. Maybe tough times and chaos are precisely what is needed to get that product off the ground.

    Your Chaos List

    An excellent way to take advantage of difficult times (whether on a global scale or within your organization) is to avoid throwing away ideas that are not ready for prime time. There are those ideas that we come up with and might even run up a flag pole that get shot down for a good reason. They may not be cost-effective, may not have a market, or may be too far out in left field. These are all reasons that can change in a heartbeat and may offer short windows for ideas to be implemented. Therefore, it is helpful to keep a list of those ideas that need a different time and place. Better yet, label or categorize ideas so it is easy to find the ones that need a specific budget or margin, as well as those that need resources that might come free amidst the chaos. These options may not require a full pandemic to become viable. Sometimes a short period of a business downturn is enough to free up some needed resources you are already paying for.

    The Fail Fast Approach

    A benefit of trying out ideas during these times is that they typically have a short window before things return to normal. You will know the viability quickly during chaotic times as those times will pass. You also will often have a higher risk tolerance as there is less to lose. When business is dead, it is hard to make things worse. That means it is a perfect time to take a chance on those riskier ideas. Think of it as playing with house money. That is not exactly the case. However, it is close enough.

  • The Value Of Re-inventing The Wheel

    The Value Of Re-inventing The Wheel

    A prior post discussed some of the challenges with using code generators.  One thing we did not cover was the value of re-inventing the wheel.  In particular, this holds true when we are learning problem-solving.  That means one of the ways to become better developers is to solve problems that have already been solved.  The objective is not so much the solution as the process.

    Skipping Ahead Without Re-inventing The Wheel

    Software developers often use frameworks and code generators to improve productivity.  They also can find ways to quickly code a series of common modules through libraries and pre-built scripts.  That approach is obviously a route to rapid development.  However, it also is a potential way to allow skills to rust from lack of use.  We can say we do not need to re-invent the wheel, there is no value in solving something where the solution is known.  However, that is not completely true.  There is value in analyzing a problem and finding a solution even when it is known.  We learn how to think in a critical and logical manner.  There are also repeated patterns in developing solutions.

    Repetition Across Solutions

    The idea of patterns emerging in problem-solving is not often discussed.  They tend to be a sort of obvious secret or maybe even common sense.  Nevertheless, we need to be able to apply these patterns to become better problem solvers.  The stories about Sherlock Holmes show some of these.  Sometimes it is all a matter of deduction, or maybe a process of elimination.  There are these sorts of solution patterns that can be used over and over in solving even very complex problems.  The more we are familiar with these patterns, the more we can combine them into new and complex solutions.  When we skip to the solution on common problems, as we do with code generators, we also pass on that learning opportunity.

    I think that persistence is often undervalued. That is another skill we do not develop when we take the shortest path to a solution. There is value in spending time banging one’s head against a problem while we try to solve it. We also can develop good habits as we struggle through those “simpler” problems. Think of code generators and frameworks as a way of pushing the cost of developing skills down the road. There are times that is needed. However, we may end up paying an exorbitant price in the future. That is not much different from pushing upgrades off to the future and eventually paying a huge price or even being blocked from an upgrade path.

    The Power of Persistence

    One of the traits of a strong developer is persistence.  We encounter all manner of obstacles that require us to persevere as developers.  These are well-known among us and range from simple headaches like a hard-to-find misspelling to magic numbers and complex configuration combinations.  Re-inventing the wheel can be a path to practice such patience and perseverance.  The benefit of these well-known problems is that we have ways to move us forward when we are blocked.  We get to go through the motions with a form of training wheels to help us get past steps that stop our progress.

    These are areas where practice helps us.  Thus, using tools that help us skip ahead on problems can remove that practice and the related benefits.  A similar example is a basketball player that skips free throws because they know they can make them.  We also have mental “muscles” that can be exercised to create muscle memory and better performance in other areas of problem-solving.