Tag: projects

  • Do You Have Resources To Support The Solution

    Do You Have Resources To Support The Solution

    Our question checklist focuses on getting our problem solved and crafting that solution. However, we also need to support the solution. We want to avoid many pitfalls; the most difficult one to recover from is a lack of foresight. This challenge comes from keeping our focus on the initial solution without considering its downstream and long-term impact. 

    Impact Of The Solution

    When we answer the other questions in our checklist, we examine how we might need to create or change processes. Likewise, we incorporate the immediate impact. We often will project the value of those changes beyond the product launch. However, customers often overlook the need to support and maintain a system. That burden can rest entirely on the vendor, but often there is no way to avoid some of it falling on the end users or the customer. These burdens include everyday tasks like support and training that are easy to highlight and discuss. Nevertheless, they are often overlooked. Likewise, systems costs such as hosting, storage, backup, updates, and security are frequently missed. 

    Items Needed To Support The Solution

    Everyone loves a list in an article like this. So here are some questions we want to address to support the solution properly.

    • How is the source code hosted or version controlled?
    • Who owns the rights to the source code?
    • Where will the solution be hosted? What are the estimated costs for it?
    • How will backups and disaster recovery be handled?
    • What user support is provided/expected? What SLA is expected?
    • How will user data be administered?
    • What sort of staffing is expected of the customer? (or available)
    • How will future updates and maintenance be supported?

    Now And Future Resource Needs

    We need to address implementation resources before we go too far into discussing post-deployment questions. The decision of build vs. buy and initial configuration can be limited or at least weighted by current resources. For example, there is a significant difference in a company deciding to build their solution when they have an IT department instead of when they do not. Be warned this can apply to purchased solutions as well.

    Modern software is often complex and touches other systems. Integrating current or legacy systems can require advanced coding skills or a matter of drag and drop in a graphical user interface. The expectations and available resources must be identified early in the problem definition process. Those times might need some lead time or significantly impact costs and timelines.

    Determine Ownership Of The Solution

    The questions above help us define who will own the solution once it is deployed. That includes support and maintenance as well as future enhancements. While some of that can be deferred to later (e.g., version 2.0), it is essential to know who will be involved post-production. There are many reasons to want to own the support of a project. On the other hand, there are also many reasons to desire support to be outsourced. The vision for the system can be as crucial to your plans after deployment as it is running up to that deployment.

    Source code and related questions, including artifacts like technical documentation and build scripts, are commonly overlooked. However, I find most customers only do that once. It can be a harsh lesson to learn. That applies to whether you are handed the keys to the solutions and do not want them or when you want them and have to pay extra for that privilege. These details are critical to your decisions about how to support the solution once it is in production.

    Training, Documentation, and Building The System

    A final area it is worth highlighting is the above deliverables. It is not as common that the delivery of the artifacts is unclear as it is the expectations. There is a broad range of ways one can deliver documentation, train users, and build the final product. Be clear about what is expected and discuss it early in the project. I have seen many projects get to the end on time, and then training and documentation sink the project. Do not allow these to be pushed to the end of the project. Demand that there is work done towards these goals and time to review the materials well before the end of the schedule. Avoid these artifacts being delivered in a rushed fashion after the implementation group thinks they are done.

    Improve Software Success

    We have an e-book that can help you explore all the steps in building software, including a few templates. 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. We are happy to help you in your journey if you would like to invest a little more time into planning for your project. We offer free consulting to avoid seeing avoidable mistakes. Please take advantage of it and avoid being the next cautionary tale.

  • Are There Industry Requirements Or Regulations

    Are There Industry Requirements Or Regulations

    We can have an incredible vision for a product and then fall short due to additional requirements. Industry requirements or regulations burden our solution and can even make it unviable. Likewise, these are often constraints on our solution that cannot be avoided or ignored. They might add to the cost and force the design to be done in a way that would not be our first choice. Therefore, we need to list any such requirements from the start and provide the correct context for our solution.

    Plan For Requirements Or Regulations

    One of the costly mistakes we can make is getting started on a project and then changing course. While those costs can sometimes be avoided, that is not possible if there are regulations or compliance factors for our solution. Thus, this is an area where the mistake is completely avoidable. All it takes is asking the question. Once we know the industry or corporate requirements or regulations, we can determine how they impact our solution.

    Common Compliance Requirements

    There are many ways a system can be required to be in compliance with regulations. They are not all game-changing needs. However, several common constraints are best addressed from the start. We want to ensure these detailed questions have been thoroughly answered before proceeding with our design.

    • Are there particular security constraints? This can range from complex password requirements to encryption levels and remote access. For example, that can include steps to ensure we know who a user is and that they are a valid customer (geographic, age, or other restrictions)
    • Do we need any additional requirements for our data? There might be a limit to what data is shown (PII/PHI and account numbers) or where it can be stored. We might be required to encrypt all data, store it separately from an account identifying number, or be allowed to transfer data across boundaries.
    • Do we need to utilize data updates? This need can be as simple as grabbing the latest valid zip codes or ICD10 values or something much more complex like current tax calculations.
    • Do we need multilingual support and unique access? These sorts of requirements can range from allowing users to use the application in their native language to access for blind or other impaired users that take advantage of screen readers and other technology.

    Data and Reporting Requirements

    • Part 1: Are there additional reporting requirements? This may seem like a minor addition. However, we cannot report on data we do not have. Thus, we may need to store more data than we intended. That can include audit information and complex data change logging.
    • Part 2: Are there additional reporting requirements? For example, we might need to integrate with systems to report tax, sales, or other data.
    • Are there disaster recovery or backup specifications to be met? Not all software has a life-or-death level problem it address. However, industry requirements exist for our systems’ availability or at least some confidence that the data will not be lost.
    • Do we need to keep records for a certain length of time? Data can pile up quickly, and sometimes it is easiest to purge old data from a system regularly. Unfortunately, that is not always possible. There are reporting requirements that can go back five or more years.

    Need To Know

    The difference with industry requirements or regulations is that we can not get around them. Some restrictions can make it very difficult to retrofit our design to support them. When we plan with these in mind, it is very helpful. It might even be a critical factor in our success. Likewise, no one likes to be deep into a project and hear, “oh, did I forget to mention this requirement?”

    Signing Off On This Question

    This question may be as simple as a “no” answer or require a document. HIPPA and other compliance requirements can be lengthy and require an expert to help you navigate how to build a compliant product. A project can start without a complete answer to this question. However, the sooner you have a full response, the better. That minimizes the chances that the design needs to be reworked down the road.

    Improve Software Success

    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 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.

  • Finding A Solution With Limited Resources

    Finding A Solution With Limited Resources

    We all have times and projects that are beyond the available resources.  It is a goal too big or a window too small for our limited resources.  In the world of business, this may be too many tasks and not enough team members.  In our personal lives, it may be a day full of too many tasks and not enough hours.  There are ways to work through these situations.  Fortunately, we can even get a "win" at times by embracing some of these common ways to overcome shortcomings.  These include a lack of resources or a lack of skills.

     Face The Reality of Limited Resources

    The often largest hurdle is to admit you have limited resources for your objectives.  It can be tempting to try to jam a square peg in a round hole.  That includes trying to achieve a goal even with limited resources.  This approach is not different from sticking your fingers in your years and loudly saying "I can't hear you" to avoid bad news.  It is not beneficial and amounts to ignoring the problem.  I have never seen this as a valid approach.  It blocks us from taking productive actions like those that follow.

    Some try to aim for the stars with the idea of at least reaching the moon.  However, it seems like too often, you end up flat on your face.  There has to be at least a plan for hitting that lesser (more reasonable) target.  This approach also helps avoid spending time on tasks or features that end up being unfinished or of lower quality.  

    Adjust Scope

    The easiest way to match resources to a goal is to change the goal.  That may mean accepting a solution that is only 80%.  It may mean waiting longer or spending more money.  Any of these changes may be acceptable.  However, make the hard decisions and adjust your goals.  It allows the team to focus on the new goal and ignore things that do not contribute.  In many projects, this decision can remove tasks from the board and free up time to get to a high-quality and acceptable solution.  In some cases, this will equate to highly marketable versions 1 and 2 of a product instead of a late version 1.

    Sooner Rather Than Later

    The sooner you accept that changes are needed, the better.  I have seen projects go until the figurative final hour before trying to make adjustments.  Many of those projects would have been delivered on time if only they had adjusted the course sooner.  The more time you have left in the journey, the less course correction is required.  In software, this can be a substantial factor.  Early decisions can free up resources in every area, from design and analysis through to testing and deployment.  An excellent example is the choice of platforms.  I have seen projects drop a native mobile requirement late in the game that literally could have reduced the overall cost and timeframe by half if done sooner.

    Wait For The Estimates And Accept Them

    Estimation can be time-consuming.  Nevertheless, it is precious.  Good estimates can warn you of issues in scope or timing long before they become a true obstacle.  Take the time to estimate tasks and effort.  Then, accept those estimates.  When you have estimates that put you beyond a target, adjust the target, do not push back on the estimates.  This process will create a bad environment where people provide what you want to hear instead of reality.  That can lead to the emperor having no clothes, and you are the emperor in that case.

    Working Smarter With Limited Resources

    It is almost a cliche to work smarter, not harder.  Nevertheless, there is a lot of value in this approach when you have limited resources.  We often have extra things that are done as part of a project.  These tasks include estimation, planning, administration, polishing, and other items that may not be needed.  While they may have value, they may slow you down.  We can see this in race cars.  They strip down the vehicle to only what is necessary for the race.  When you lack the resources to do it perfectly, find the ways you can cut to the core.  

    A project that requires people to give up weekends or work long weeks of overtime should also reduce scope and clutter.  That means every task and the scheduled meeting should contribute to the goal.  The time for checking off a box or making someone feel comfortable was probably passed a while back.  That includes up to a CEO that wants to check in on progress all the time.  When those check-ins start to take the team away from the goals, be honest and find a less intrusive way to keep them informed.  Likewise, if something has been going bad or taking you off track (including specific resources), then do not be afraid to make adjustments.  A bad trend is likely to continue until you make a change.

    The Shortest Path

    The bottom line is that you need to focus on the goal.  Make sure you have a clear picture of what is necessary and what is not.  Then plot the shortest route to get to the end.  Drop everything not completely necessary first.  Once the simplest path (and tasks) is defined, you can add back in things that are likely to keep you on track.  When you do this, cut deep.  It is easier and more effective to add something back in later if time permits than cut something out down the road.