Clever Code Is Hard to Maintain

Clever Code Is Hard to Maintain

David Wood Fredericksburg, Virginia, U.S.
DEvEloPERS ARE oFTEn ASKED To CREATE MIRAClES. They must find clever ways to make today’s project code work with yesterday’s antiquated legacy software containing multiple patches. And through skill and ingenuity, they may create numerous lines of clever code that finally get the job done. But clever code may only create future maintenance problems due to the code’s length and complexity. There may be a better way.
If you are a project manager new to software development, don’t be afraid to let developers explore new languages and development tools. Allow them this freedom, because this is how they discover innovative ways to improve their coding practices and results. They may be able to design a software solution to your legacy interface problem that is faster and has fewer lines of code to test and maintain. This is certainly an advantage to your project.
There are innovative new programming languages that can perform the same functions as your current ones with substantially fewer lines of code. This is valuable in that a simpler code structure is easier to test, can be self-defining, is smaller to store, and is easier to maintain.
Obviously, there are some concerns about adding new languages and platforms within your organization. Will this new code truly solve the problem for the cur- rent software or upgrade under development? Will it interface long-term with the existing software used in your legacy databases, user interfaces within the organi- zation, and third-party software in which the company has already invested?

Are there other developers on the team or the department who will be able to create software in this language or on this platform? Is there adequate product support from language authors? Will there be timely updates and improvements?
Even if you are not familiar with programming yourself, don’t be reluctant to allow programmers to embrace new languages. If the new language can trace its tortured lineages back to C or Java (or any other common way of doing things), it is probably going to be relatively painless to merge it into your cur- rent practices.
However, be sure to document any new practices within your code. Otherwise, your code base and the documentation about the code may diverge to the point that the best way to understand the system is to look at the code itself. This is called a “loss of coupling” between the software components and sys- tem metadata. And when there is inadequate documentation to maintain your software system, it must be replaced.
Encourage your project team developers to be innovative, but not clever to the point of excessive complexity. Being too clever makes it hard on those who follow. If later developers can’t read the code, how can they be expected to maintain it? Any given programmer may try to be clever to enhance his job security, but no project manager will benefit from it.
Code that is too clever will ultimately be too hard to maintain. That leads to maintenance failure and a costly reworking of your software systems.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值