Underlying Software-Development-Problems Should be Identified, Using Multiple Factors

Collin Rusk
Geek Culture
Published in
6 min readOct 15, 2021

--

An organization solves a complex software-development-problem, using the same techniques it applies to intricate difficulties in other areas. Those methods can be deployed to correct systemic issues, which are complicated. Yet, an institution might not be able to determine, from a quick inspection, whether a particular headache is an isolated unit or part of a system. If that business commits the time and resources to unearthing a fundamental failure, it risks significant expenditures on a wild goose chase. To avoid being stuck in a tar pit, it is cautious about digging for systemic problems. It might be even more hesitant to hunt for underlying software-development issues, because it already spends its resources poorly, in that area. Yet, application construction is bound by the same general rules applicable to other domains. Those laws help an organization determine, if it has a deep-rooted problem. If it uses those guidelines, it decreases the likelihood of engaging in a snipe hunt. To avoid wild goose chases, it should apply those methods. A fundamental problem in software development looks similar to an institution, to ones in other sectors.

Issues outside of programming are centered around schedule, resource allocation, and meeting a goal. If a project misses its due date, exceeds its budget, or does not meet its goal, then it is a failure. Defeats are what an organization wants to avoid. An institution especially wants to sidestep frequent losses. It is highly concerned about the systemic difficulties leading to those stumbles. If a problem causes an endeavor to miss its due date, then a company is likely interested in it. That business might have lost money or respect. If an organization experiences enough losses, then it could lose much from those attributes. Frequent defeats are costly, so they interest an institution greatly. If a company determines those stumbles are the result of an underlying problem, it becomes highly focused on that issue. Those difficulties in software development involve investigating schedule, budget, and objective, just as they do in other areas. A fundamental obstacle in application construction holds a great attraction for a business, and it looks very similar to troubles in different domains.

Regardless of sector, fundamental complications are not identifiable by an organization through simple means. For example, an institution might notice that its projects fail at a certain rate. Yet, that frequency alone is not enough to determine whether a company has a rudimentary issue, unless that percentage is extremely high (e.g., 95%). That business needs to weigh multiple factors to determine, if it has an underlying difficulty. For example, it would need to know how badly its endeavors failed to have a clearer picture of its landscape. If its undertakings miss their mark frequently but in small ways, then it might not have an issue with its approach. However, it might have a problem, if its projects fail infrequently but in significant ways. An organization needs multiple attributes to identify systemic difficulties correctly.

One of those aspects is regularity. As an institution’s failure rate rises, the likelihood it has a fundamental problem increases. If that business engages in software development, a high density of defeats is also a good indicator that it has a rudimentary issue, in that area. For example, a company’s endeavors miss their schedules, exceed their budgets, and/or do not meet their objectives frequently. That organization likely has a systemic difficulty with application construction. Programming can have a high degree of uncertainty, making its undertakings difficult to estimate accurately. Any endeavor that makes commitments beyond its level of certainty risks failure. If an institution makes such promises with regularity, its projects will fail consistently. An organization must consider frequency, to determine whether it has a systemic software-development issue.

Yet, a fundamental flaw cannot be derived, outside of extremes, by a company, using repetition alone. An institution must consider the degree of its failures and their frequency, to determine whether it has an underlying problem. A business is unlikely to falter, with enough regularity to render the other factors moot. That institution must consider the magnitude of its defeat to get a clearer picture. For example, an organization might have half its projects stumble but in minor ways. Another business might have a tenth of its projects collapse but in gigantic fashion. The first company might not have a systemic problem, while the second one does. If that institution does software development, then the magnitude of its defeats are tied to the discrepancy between its commitments and its certainty in them. If it is not sure about an aspect of a project and it makes large promises around that element, then it is likely to suffer significant stumbles, with regard to that endeavor’s schedule, budget, and/or objectives. If a programming undertaking makes premature obligations, then it must engage in rework, which affects time, resources, and the ability to meet a goal. The size of those revisions is directly proportional to the gap between an undertaking’s certainty and its commitments. As the edits grow larger, the magnitude of an organization’s defeats increases. An institution must consider the degree of its failures and their frequency, to determine whether it has a systemic application-construction-problem.

That company must examine more than repetition and scale to judge whether it has a rudimentary problem. Consistency of cause is a factor in whether a business has a fundamental issue. Its failures might not be sizeable or egregiously common, but they could still result from a unifying flaw. If a sizeable amount of an organization’s defeats stem from a consistent set of causes, then it has a underlying issue, even if its losses are infrequently and unsevere. If those stumbles are in software development, then that institution still has a foundational problem. Application construction can involve significant ambiguity. Some companies fail to account for that variance, leading to repeated failures in the same area such as the project planning. Their endeavors might not fail frequently or badly but for related reasons. Consistency of cause is a factor in whether a business has a systemic software-development issue.

That organization must also consider unpredictability in the cause of its failures. If it cannot guess the potential sources of its defeats, then it receives a signal about the existence of a fundamental issue. A rudimentary obstacle is indicated as much by chaos, as it is by orderliness. If that struggle involves application construction, then an institution is likely failing to handle variability, in its projects. Each faltering endeavor manifests that company’s misstep in a different way. For example, a business might get an undertaking’s scope and timeline correct but fail to assign enough resources to meet that schedule. Yet, it might easily determine, in a different instance, a venture’s breadth and resources correctly, while misjudging that endeavor’s calendar. Many efforts in programming involve uncertainty. If that aspect is a fundamental struggle for an organization, then its failures will make themselves known, in unpredictable ways. Chaos in root causes is an element of a systemic software-development difficulty.

Yet, an underling issue has many aspects. It cannot be identified by an institution, through simple means. A single factor could identify a foundational struggle but only if it lies at the extreme edge. Inside that boundary, a company should use an approach that weighs multiple elements. A business will likely need to weigh chaos, predictability, frequency of failure, and the magnitude of defeats, unless any one of them is an edge case. The way an organization should consider them for software development is not explored in this article. This piece does not describe what an institution should do, if it believes it has a systemic problem. Those topics will be addressed in future works.

Follow ExperTech Insights on Twitter and subscribe to its Substack newsletter.

This article originally appeared in the Software Development Journal hosted by ExperTech Insights.

--

--

Collin Rusk
Geek Culture

Software Architect with a specialty in enterprise systems and founder of ExperTech Insights (https://expertechinsights.com)