由一把手槍的設計引發的思考

fmms 12年前發布 | 5K 次閱讀 設計

[本文英文原文鏈接: Why You Need Domain Knowledge ]

 

由一把手槍的設計引發的思考

        這是一把小型的 Feinwerkbau P11 空氣壓力手槍。它的售價大概 1500 美元,看起來主要是給競賽活動設計的。黑色的管是槍膛,發射子彈用的。銀色的管裝的是壓縮空氣。

        如果你有一把壓縮空氣動力的手槍,你自然很想知道剩余的空氣還有多少?但我并不認為它的這種設計經過了周全的考慮。

由一把手槍的設計引發的思考

        我對槍的了解并不很專業,但我知道我不喜歡把槍口對著臉來看氣壓值。

        每當我看到這樣的事,我都會停下來思考,是否在軟件開發領域里我也犯了同樣的錯誤。糟糕的設計并不會只出現在槍上。

        業務領域專家 & 軟件

        軟件設計上出現的錯誤并不總是那么容易的被發現,但經常的,錯誤的產生會歸結到同一個問題上。做設計時你必須要知道基本的業務領域知識。這并不是說為了開發一個烹飪網站,你需要成為一個世界著名的烹飪大師,而是你至少需要知道其中的基礎知識。

        如果你不知道這種專業領域知識,那就找一個知道的合作伙伴。過去的這幾年里,我開的一個應用程序就是和一個不懂技術但卻懂得這個行業的人合作 的。人們往往會低估這樣一個不能在編寫代碼上貢獻力量的人的價值,但實際上他的價值很大。他的對行業的專業知識不僅僅能讓我們做出正確的產品,而且他還認識那些可能會有興趣買這個產品的

        一個好的創意和開發軟件的能力并不一定能帶來成功。和一些處在可能會使用這個產品的原始用戶的目標市場中的人合作,會大大的增加你成功的機會。 如果你找對了人,你不僅可以獲得他在這個領域的專業知識,而且能得到他的一個由很多遇到了相當的問題、需要你的軟件替他解決問題的人組成的關系網。

        也許有些人會指出,一個制造槍支的公司很可能擁有很多關于空氣動力槍領域的專家,比我要專業的多。這很可能是事實。我對槍械領域知識有一個基本的了解,聽過一些講座。任何時候我們學習槍械知識,頭一個要知道的事情是,不要把槍口沖著自己的臉。

        這就引起了一個重要的問題。擁有專業領域知識和運用這些知識是兩回事。

        測試軟件

        對于軟件,我們做大量的測試。讓程序能跑起來,然后讓一些人使用它。有時候你會發現,人們使用它的方式和業務領域專家所說的人們會使用它的方式 是脫節的。這并不是說你的專家不專。他們也許在他們的領域里是個專家,但這并不意味著他是一個擅長把他的知識解釋給你聽的專家。經常的在開發過程中,他們 會告訴你,你需要實現X,而當他們使用了開發出的這個功能后,他們改變了想法,告訴你應該實現Y。

        這并不是一件多么糟糕的事情,這是開發出正確東西過程中的一些自然屬性。你所能做的,是讓這些教訓盡早的出現,使遭受到的影響最小化。

        我不久前做了一個項目,我們把大部分的精力都放到了 Web 應用的公眾所面對的前端部分。后端是一團糟。它可以運行,但很運行的很糟。但這樣能讓我們迅速的發布這個應用,獲得真實世界的用戶體驗。此時我們準備重新 開發它的后端,使用過它的用戶對他們需要的東西有了更清楚的認識。很多最初他們認為需要修改的東西,現在看來是不合適的。而當初我們很多的假設現在看來也 是錯誤或需要修改的。

        領域專家通常會給你指引正確的方向,但除非有人真的使用了你的程序,你不會知道是否真的把事情做正確了。來自: 外刊IT評論

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!