軟件工程:迭代與創(chuàng)新(不要指望一次成功)

字號:

軟件的復(fù)雜性的一個重要方面的需求的復(fù)雜性。只要一個軟件稍具規(guī)模,就很少有人能把這個軟件成型之后的樣子一下子想明白。更嚴重的時候,人們甚至不知道要解決的業(yè)務(wù)是什么樣的。
    當(dāng)人們嘗試通過軟件手段來改善企業(yè)流程,提升企業(yè)的工作效率,首先需要對現(xiàn)有的業(yè)務(wù)有清醒的認識。沒有這個認識就不可能知道目前的問題是什么。不知道目前的問題是什么,也就無法確定項目要達到的目標(biāo)。了解了當(dāng)前的業(yè)務(wù)以及當(dāng)前業(yè)務(wù)中的問題之后,需要針對問題對業(yè)務(wù)流程進行優(yōu)化,重新設(shè)計其中的部分或全部業(yè)務(wù)流程。這看起來是順其自然的事情。然而,實際上這在很多情況下是很難進行的。越是不成熟的行業(yè)和企業(yè),這種工作就越難進行。
    想要在短時間內(nèi)解決這種問題是不太容易的。我們需要一種機制讓人們可以很容易地開始,然后通過一個路徑能夠逐漸逼近理想的目標(biāo),就如同學(xué)習(xí)數(shù)學(xué)要先從學(xué)習(xí)數(shù)字開始一樣。認識是一個逐步深化的過程,而實踐則為認識提供反饋,可以讓人們對事物的認識更正確。
    可以把這個逐步逼近的過程類比為科學(xué)研究。先提出一個設(shè)想,然后做一些試驗去驗證這個設(shè)想,發(fā)現(xiàn)一些不合理,然后再修正原先的設(shè)想,然后開始下一次試驗。這樣一個循環(huán)的過程就是迭代的過程。
    軟件的迭代式開發(fā)亦如此??茖W(xué)家搞研究的過程是創(chuàng)新的過程,軟件的開發(fā)也需要這樣的過程。對于上述的業(yè)務(wù)不明確,需求不明確的問題,我們首先需要有“不要指望一次成功”的態(tài)度,其次,我們不能懼怕失敗,然后,我們要堅持不懈,而且,我們需要反饋、反思和修正。迭代使我們通過不斷的設(shè)想、試驗、反饋、修正這樣一個基本過程的多次循環(huán),最終達到我們想要的結(jié)果。這個過程是一個創(chuàng)新的過程,因為這是我們對未知問題的探索。這個過程讓我們始終對未來充滿希望,因為我們知道我們正在逼近目標(biāo)。這個過程能夠讓我們勇敢地面對失敗,成為一個真正的戰(zhàn)士。
    迭代吧