軟件項目是有很長的生命周期的欢唾,歸根結底是那一行行的代碼且警,軟件項目的生命力就是代碼和團隊的聯系,代碼越是難以維護礁遣,那生命力就越弱斑芜,生命力越弱進化得就越慢,進化得越慢也就越難以應變需求……怎樣讓軟件項目更有生命力呢祟霍?
現代人怎么評價身體的健康情況呢杏头?我的感受是:身輕體健沸呐!軟件也好像身體一樣大州,要花些時間鍛煉和減肥,改善己有的零件和基礎的筋骨垂谢,然后再適度增加新功能厦画,如果拖著疲憊甚至病患的身體再不斷地增加負荷,自然是無法輕快前行的滥朱,反而會變得似乎奔波勞碌根暑,但卻低效無功……
現今很多的軟件公司都在實踐敏捷,操作Scrum徙邻,一個Sprint接著一個Sprint排嫌,可是很多項目在最初的階段,并沒有打下很好的基礎缰犁,欠下了很多的技術債淳地,而同時又不斷追求快速添加需求和功能,在進度的重壓之下帅容,根本沒有時間去還債颇象,而由于欠缺一些基礎的功能組件和架構設計,導致為趕進度而不斷采用不夠優(yōu)雅的方案和投機取巧的代碼并徘,從而陷入惡性循環(huán)遣钳,由于代碼的可維護性、可重用性很差麦乞,開發(fā)的進度越來越緩慢蕴茴,軟件的質量也越來越不穩(wěn)定,團隊成員似乎也越來越繁忙姐直,但軟件本身的生命力卻在不斷枯竭倦淀,積重難返……
這似乎也是工程師文化主導的公司為什么會在很多方面異軍突起的原因之一吧!在這些公司里声畏,高層領導更懂軟件開發(fā)的客觀規(guī)律撞叽,更理解軟件產品的核心價值所在,不急于一時的功能豐富,不追求大而全的金玉其外能扒,更注重核心架構的優(yōu)美和長期可持續(xù)開發(fā)的特性佣渴,更追求小而精的輕量迭代,真正把握敏捷的精髓初斑,而不僅僅是落于各種會議的形式辛润。
因此,軟件項目誕生于開發(fā)它的團隊见秤,而它生命力的強與弱砂竖,很大程度決定于項目帶頭人的眼界和認知高度,大多數時候普通的開發(fā)人員是無奈的鹃答,在特定的開發(fā)環(huán)境和業(yè)務至上的重壓下乎澄,做著各種變形的動作……
項目帶頭人如果對此并無感覺,自然走上那條惡性循環(huán)之路测摔,更好的開發(fā)人員因無法忍受病入膏肓的軟件代碼而離開置济,再招進更多經驗欠缺的開發(fā)人員不斷通過加班勉力維持,直到某一天新的維護和開發(fā)成本已經遠遠大于收益锋八,即宣布這個軟件項目的壽終正寢浙于。