The Longevity of Interim Solutions

The Longevity of Interim Solutions

Klaus Marquardt

WHY DO WE CREATE iNTERiM SOLUTiONS?

Typically, there is some immediate problem to solve. It might be internal to the development team, some tooling that fills a gap in the toolchain. It might be exter- nal, visible to end users, such as a workaround that addresses missing functionality.

In most systems and teams, you will find some software that is somewhat segregated from the system, that is considered a draft to be changed sometime, that does not fol- low the standards and guidelines that shaped the rest of the code. Inevitably, you will hear developers complaining about these. The reasons for their creation are many and varied, but the key to an interim solution’s success is simple: it is useful.

Interim solutions, however, acquire inertia (or momentum, depending on your point of view). Because they are there, ultimately useful and widely accepted, there is no immediate need to do anything else. Whenever a stakeholder has to decide what action adds the most value, there will be many that are ranked higher than proper integration of an interim solution. Why? Because it is there, it works, and it is accepted. The only perceived downside is that it does not fol- low the chosen standards and guidelines—except for a few niche markets, this is not considered to be a significant force.

So the interim solution remains in place. Forever.

And if problems arise with that interim solution, it is unlikely that there will be provision for an update that brings it into line with accepted production qual- ity. What to do? A quick interim update on that interim solution often does the job, and will most likely be well received. It exhibits the same strengths as the initial interim solution…it is just more up to date.

Is this a problem?

The answer depends on your project, and on your personal stake in the produc- tion code standards. When the system contains too many interim solutions, its

??108 97 Things Every Programmer Should Know

?

???????????????entropy or internal complexity grows and its maintainability decreases. How- ever, this is probably the wrong question to ask first. Remember that we are talk- ing about a solution. It may not be your preferred solution—it is unlikely to be anyone’s preferred solution—but the motivation to rework this solution is weak.

So what can we do if we see a problem?

1. Avoid creating an interim solution in the first place.

2. Change the forces that influence the decision of the project manager.

3. Leave it as is.

Let’s examine these options more closely:

1. Avoidance is simply not an option in many cases. There is an actual prob- lem to solve, and the standards have turned out to be too restrictive. You might spend some energy trying to change the standards—an honorable, albeit tedious, endeavor—and that change will not be effective in time for your problem at hand.

2. The forces are rooted in the project culture, which resists volitional change. It could be successful in very small projects—especially if it’s only you—and you just happen to clean the mess without asking in advance. It could also be successful if the project is such a mess that it is visibly stalled, and some time for cleaning up is commonly accepted.

3. The status quo automatically applies if the previous option does not.

You will create many solutions; some of them will be interim, most of them will be useful. The best way to overcome interim solutions is to make them super- fluous, to provide a more elegant and useful solution. May you be granted the serenity to accept the things you cannot change, the courage to change the things you can, and the wisdom to know the difference.

时间: 2024-11-05 22:47:18

The Longevity of Interim Solutions的相关文章

ARTS Week 17

Feb 17, 2020 ~ Feb 23, 2020 Algorithm Problem 205.Isomorphic Strings(同构字符串) 题目链接 题目描述:给定两个字符串 s 和 t,判断是否可以通过字符替换从 s 得到 t.顺序不可以改变,同时不允许两个字符映射到同一个字符,但允许一个字符映射到它自身.举例如下: Input: s = "egg", t = "add" Output: true Input: s = "foo",

HFT公司分析——Informatix Solutions

Informatix Solutions CEO Richard Croucher Focus: Bank IT & Cloud low-latency http://www.informatix-sol.com/low-latency.html TCP_bypass http://www.informatix-sol.com/docs/TCP_bypass.pdf Overview of Bypassing TCP, comparing different options and API's,

Solutions to fix IDM has been registered with a fake serial number

Solutions to fix IDM has been registered with a fake serial number: There are two methods to fix IDM has been registered with a fake serial number error. Prefer using the first one method as it is the better trick to fix the error. If the first metho

UVA - 12005 Find Solutions (最小因子分解)

Description  Find Solutions  Look at the following equation: c = ab - + 1 Now given the value of c, how many possible values of and a and b are there (a and b must be positive integers)? That is you will have to find the number of pairs (a, b) which

Solutions Log (2014-06)

2014-06-24:页面弹出层有很多种方式:iframe和div方式.iframe分页相对简单,作为独立页面操作的空间很大:对div实现的弹出层,要实现不刷新分页,可以参考jQuery插件pagination.主要原理:去除<a>标签中的href属性,用自定义的javascript函数替代直接网址.如:<a href="javascript:go_to_page();">My Link</a> Solutions Log (2014-06),布布扣

Apache Design Solutions RedHawk v10.1.2 SP1 Linux64 1CD

CADWorx Design Review 2010 1CD CIMCO.Software.Suite v6.01.07 1CD IVS.3D.Fledermaus.Professional.v7.2.1a.437 1CD IVS.3D.Fledermaus.Professional.v7.2.1a.437 X64 1CD  3DQuickPress v5.1.0 for SolidWorks 2009-2011 Win32 1CD Agilent GodenGate v4.3.8 Linux

Optimal.Solutions.Sculptor.v3.6.150616 x64航天航空工业的图形

Optimal.Solutions.Sculptor.v3.6.150616 x64航天航空工业的图形一款用于航天航空工业的图形软件.用来完成不自然的标塔变形,自动优化,加上对CFD代码的分析工具, 将会更好的减小失误,节省时间 Gibbscam.2015.V11.0.9.0.Win64 虚拟加工系统 Golden.Software.Voxler.v4.0.476 FTI.Sculptured.Die.Face.3.1.Win64 Technical.Toolboxes.Pipeline.Too

[转自codeforces] How to come up with the solutions: techniques

As I work with students I often face the situation when if a problem doesn't seem clear to a student at the first sight, it makes them unable to solve it. Indeed, you always hear about specific methods and techniques. But you don't hear about how to

Kaggle Competition Past Solutions

Kaggle Competition Past Solutions We learn more from code, and from great code. Not necessarily always the 1st ranking solution, because we also learn what makes a stellar and just a good solution. I will post solutions I came upon so we can all lear