敏捷开发之技术债务

1.什么是敏捷开发和技术债务

敏捷开发是一种从20世纪90年代开始逐渐引起广泛关注的一些新型软件开发方法。在国内也是近10年来才被积极应用到生产环境中,目标是提高开发效率和响应能力,以应对快速变化的需求。在当今急速发展的互联网环境下有着极高的实用性。

但随着版本的快速迭代交付,也会出现一些常规软件开发过程中未完全暴露的问题——技术债务。

所谓技术债务是指对不适合做法的补救成本的总和。通俗的讲就是为了快速响应需求而引入的非最优或临时性的解决方案,在之后的开发过程中,不得不承担因此所产生的副作用。

2.技术债务的主要外在表现

技术债务的累积会有一些较明显的外在表现,主要体现在:

● 系统加载的时间越来越长;

● 某个模块缺陷率不断增加;

● 相同的问题在不同的模块或者组件中出现;

● 新的功能数量增加,引发新的 bug数量持续增加;

● 修复 bug的时间越来越长;

● 团队对某个模块或者组件抱怨很难理解或者很难测试;

● 某个模块的源代码频繁被修改。

结果经常会给产品组同学和其它管理人员一种很奇怪的感受——新功能开发完了而开发人员却更忙了,特别是在要求高执行力的团队中更容易出现,这段时间内听到最多的词就是“重构”、“统一”、“调整”、“优化”等等。

3.技术债务的几种类型

▲关于技术债务的类型和可能会导致的影响

其中,技术鸿沟(Gap)是指最初的技术方案可能在当时是正确的,但是随着时间、市场、技术等不断更进,这个技术决定已经出现了很多的问题。

代码异味包括:

● 长方法:一个非常长的方法、函数或者过程。

● 巨类:一个非常庞大的类

● 太多的参数:函数或者过程冗长的参数列表使得代码可读性和质量非常差

● 特性依恋:一个类过度的使用另一个类的方法

● 亲密关系: 一个类依赖另一个类的实现细节

● 拒绝继承:子类以一种“拒绝”的态度,覆盖基类中的方法,换句话说就是,子类不想继承父类中的方法。

● 冗余类 : 代码重复或功能相似,或者功能太少的类。

● 人为的复杂:在简单设计已经满足需求的时候,强迫使用极度复杂的设计模式。

● 超长标识符:未按统一命名规则命名导致歧义

● 超短标识符:变量或方法无法通过名称来理解其作用

架构债务是最值得注意的,其带来的最严重后果就是导致某个模块或整个系统无法正常支撑当前业务运行的需要,不得不推倒重做。当然,这种后果并非难以接受。

4.合理偿还技术债务的几种方式

关于合理偿还技术债务有一些常规方法:

(1) 把技术债务作为技术需求对待,在保证正常交付的情况下分批偿还。

(2) 平衡技术债务的影响和快速交付的要求

(3) 技术鸿沟和架构债务,越晚修复成本越高,在产品规划过程中应积极做好需求沟通,在特定情况下可考虑通过非功能性迭代完成。

(4) 代码复杂性、编码风格混乱等可以通过代码分析工具辅助解决。

(5) 相关联开发组成员应积极沟通,必要情况下以正式文件形式通知各成员。

其实,技术债务和人们生活中遇到的资金债务有些类似,很难避免,除非你的需求变化慢、资金利用率低。

合理、优雅地处理债务问题,甚至债务投资,也是提高生产力、凝聚团队向心力的一种途径。

作者简介:周鹏,英文名Ideson,校导网Android Team Leader,在嵌入式应用、服务端、移动应用开发领域有着丰富的开发和项目管理经验,曾任北京某创业公司技术总监。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容

  • 1.埋点是做什么的 2.如何进行埋点 3.埋点方案的设计 近期常被问到这个问题,我担心我的答案会将一些天真烂漫的孩...
    lxg阅读 2,012评论 0 1
  • 关于技术债务的讨论时而蔓延时而消退,技术债务仿佛是个筐,什么东西都可以往里装,然而当我们企图倒光筐里东西的时候,却...
    abel_cao阅读 782评论 0 0
  • 阅读Tips: 本文是我根据这么多年来的实际开发、技术管理经验的一些总结,完整阅读需要30分钟,已经整理成简书专题...
    hirainchen阅读 8,342评论 12 118
  • 山东省医师协会足踝外科学组成立以来,经学组委员多次讨论后,决定定期举办学术沙龙活动以促进本省足踝外科医师的学术交流...
    云中瑞麟阅读 360评论 0 0
  • 文/小小瓶 关上门,关上窗户,屏蔽一切嘈杂。 起初,她并不想住在这里的,本以为只有一个月的时间,只有一个月的忍耐。...
    小小瓶阅读 311评论 0 3