探索需求的重要性
Sep 2, 2018 · 2 min read
领域驱动设计精简版(全新修订)
http://www.infoq.com/cn/minibooks/domain-driven-design-quickly-new
计算机之所以很有用,是因为通过使用计算机软件能够解决人们所从事的某个领域的问题。然而,假如软件的开发人员并没有深入理解软件所处的领域,软件就无法很好地解决该领域的问题,其实用价值就会大打折扣。因此对于业务软件的开发人员,应该时常提醒自己的一句话是:“笨蛋,问题是领域”。深入理解领域的开发人员,即使使用过时技术所开发出来的软件,也远远好过完全不理解领域的开发人员,使用最时髦技术所开发出来的软件。
遗憾的是,这个很明显的道理,在软件开发人员中并没有被普遍接受。在很多兴趣驱动的开发人员看来,深入理解领域中的业务逻辑,是一件枯燥乏味的事情。他首先会考虑:“我要在这个项目中使用苹果公司新推出的Swift编程语言,在服务器端要使用Hadoop,最好再尝试一下深度学习方面的技术”,然后就一头扎进这些时髦和高大上的技术之中。三个月后,你去问他需要解决的领域中的真实问题是什么,他还是一脸茫然。
上面是修訂版的序言摘錄
我曾經做過一個批發商的購物網站,批發商的下游是店家
所以他的需求會像是這樣
- 每個店家都會有不同的批發價,彼此間不能看到對方的價格
- 因為是大量採買,所以介面上要能夠用表格的方式批次填寫
- 店家會定期購買產品,所以要能夠有快速查詢的方式來帶出這些商品
而我忽視需求,弄了一個「常見的」購物車
其實規格書上是有提到的,只是廣度比較大(因為要先簽約)
有很多細節是需要探索的
我跳過了這個探索過程,甚至規格書都沒有細看就無腦地把既有的東西照搬導致上面的需求沒有一點做到,理所當然地被客戶罵了一頓
幸好雙方都願意再討論和修正,不過最終上線的時程也 delay 了有一年…
然後也體會到二件事
在需求確認清楚之前,千萬不要動手去寫程式
以及
別因為熟悉而放棄思考
