《Spring Boot 實戰紀實》之如何攥寫需求文檔

目錄

  • 前言
  • (思惟篇)人人都是產品經理
    • 1.需求文檔
    • 2 原型設計
      • 2.1 缺失的邏輯
      • 2.2 讓想法躍然紙上
    • 3 開發設計文檔
      • 3.1 功能梳理
      • 3.2 數據庫設計
    • 4 制定開發任務和計劃
      • 4.1 時間管理
      • 4.2 任務管理(任務拆分+排期)
  • (技術篇) 碼農的自我修養
  • 5 Java基礎
    • 5.1 Java環境搭建
    • 5.2 Java基本語法
    • 5.3 Java流程控制
    • 5.4 Java 集合
    • 5.5 Java 類與對象
    • 5.6 構造方法
    • 5.7 封裝,繼承,多態
    • 5.8 Java抽象/接口
    • 5.9 Java經常使用類
    • 5.10 Java異常處理
    • 5.11 異常的定義及捕獲
    • 5.12 Java多線程/線程池
    • 5.13 Java的反射機制
    • 5.14 Java的23種設計模式
  • 6 Spring框架
    • 6.1 瞭解spring
    • 6.2 Spring帶給Java開發的便利
    • 6.2 Spring ioc/aop
  • 7 SpringMVC
    • 7.1 瞭解springMVC
  • 8 SpringBoot
    • 8.1 MVC 模型
    • 8.2 攔截器
    • 8.3 過濾器
    • 8.4 POJO
    • 8.5 controller
  • 9 MyBaits plus
  • 8 Web基礎
    • html+css
    • javascript
    • bootstrap
  • (實戰篇) 打造本身的輪子
    • 10 項目架構
    • 11 網站母版構建
      • 11.1 thymeleaf介紹
      • 11.2 使用thymeleaf構建網站模板
    • 12 首頁
      • 12.1 banner
      • 12.2 輪播圖
      • 12.3 文章分頁
      • 12.4 編碼實現
    • 13 登陸
      • 13.1 功能點介紹
      • 13.2 知識點
      • 13.3 編碼實現
    • 14 註冊
      • 14.1 功能點介紹
      • 14.2 知識點
      • 14.3 編碼實現
    • 15 用戶管理
      • 10.1 功能點介紹
      • 10.2 知識點
      • 10.3 編碼實現
    • 16 權限控制
      • 10.1 功能點介紹
      • 10.2 知識點
      • 10.3 編碼實現
    • 17 權限控制
      • 11.1 功能點介紹
      • 10.2 知識點
      • 10.3 編碼實現
  • 總結
  • 源碼
  • 參考

導航

  • 永遠考慮那個擁有更強寫做能力的人
  • 工欲善其事,必先利其器
    • markdown
    • 思惟導圖
    • 流程圖
  • 換位思考
  • 這個需求,「不作」
  • 閉環
  • 寫做套路
    • 鋪墊
    • 下定義
    • 邏輯清晰
    • 說人話
    • 視角
    • 版本延續性
  • 結語

Reading makes a full man, conference a ready man, and writing an exact man.javascript

永遠考慮那個擁有更強寫做能力的人

  若是一個崗位有幾個候選人,永遠考慮那個擁有更強寫做能力的人。不管這我的是設計師、程序員、市場或銷售人員,寫做能力老是能夠帶來回報的。有效、簡潔的寫做能帶來有效、簡潔的代碼、設計、郵件、即時通信等等。css

  寫做帶來:
更深度的思考,更認真的生活,更清晰的溝通,更有效的社交, 更強大的心裏。html

工欲善其事,必先利其器

君子生非異也,善假於物也java

  思想當然重要,可是善於藉助工具表達本身的思想也很重要。這裏介紹一些好用的寫做方面的工具。git

Markdown

  根據百度百科-markdown,Markdown是一種輕量級標記語言,創始人爲約翰·格魯伯(英語:John Gruber)。 它容許人們使用易讀易寫的純文本格式編寫文檔,而後轉換成有效的XHTML(或者HTML)文檔。程序員

  Markdown是一種簡單的格式化文本的方法,讓排版變得簡答,在任何設備上看起來都很棒。有道筆記,印象筆記,博客園,vscode,github,碼雲等都支持markdown語法。github

  相關教程spring



思惟導圖

  對於某些需求涵蓋功能點較多,後者分支較多場景,使用思惟導圖呈現更直觀。好比,這是我整理的考試系統的前期需求的一個思惟導圖:



  如今有不少工具都支持畫思惟導圖:

流程圖

  程序員童鞋對流程圖確定不會陌生,常見程序流程圖設計應該是信手拈來。針對複雜需求,有時候使用語言和文字難以描述清楚。這個時候,流程圖該上場了。



  流程圖在整個需求的整理中的核心,他能將產品業務背後的邏輯展現出來。這個須要你對吃透需求,而後內化,加工,再輸出。說句題外話,若是你參與了這個需求,必定要摳細節,流程越細化,越有助於成功的實現需求。

  這裏推薦幾個經常使用的流程圖工具:

換位思考

接到需求以後,技術同窗每每會先思考技術實現,而後陷入技術細節,這也是大多數技術人的通病。

  在此前的文章《需求管理》中,我曾指出技術同窗要放下傲慢和偏見,跳出技術思惟。這對於需求的理解和整理相當重要。

  跳出技術思惟,而後換位思考,這有助於全方位,多角度的理解需求。一個功能可能由不一樣的角色人員使用,視角不一樣,需求不一樣。你須要像導演拍電影同樣,針對不一樣角色,一個場景一個場景的拍攝,最終串聯成一個完整的電影做品。

這個需求,「不作」

懂得拒絕是一門藝術。

  技術人不是一個沒有靈魂的代碼工具。"這是需求爸爸提的,我無法拒絕","這是產品爸爸喊作的,無論個人事"。當出現問題的時候,咱們常常聽到技術同窗這樣說。

  不合理的需求,對用戶不友好的需求,低收益,高投入的需求,要勇於拒絕。固然,拒絕也是一門藝術,這就是與人溝通的藝術。若是通過深思熟慮,你可以給出比較合理的解釋或者提出更有建設性的方案,我想這樣纔會更加容易讓人接受。

閉環

閉環這個詞,真是互聯網領域的萬金油。可是,筆者這裏特指產品需求邏輯的閉環。

  筆者曾經待過一個互聯網教育創業公司。由於參與人不少都是TOB行業經驗的人。你們都是知道,TOB公司的產品賣出去不少時候是線下的操做。好比,微軟公司,我作操做系統一流,我贏家通吃。可是,TOC就不必定了,個體用戶更加註重用戶體驗,好比曾經的電商百團大戰的競爭,後面的共享單車的競爭,消費者能夠直接用腳投票的。

  咱們作了一個課程官網,包括課程展現,訂閱充值的官網。官網上線以後,市場同事也作了宣傳,可是發現基本上沒人註冊,不少用戶都是讓咱們幫忙註冊。通過研究發現了緣由:

  • 由於集成Azure註冊慢,登陸頁面,並且極不友好。 這致使用戶放棄註冊。
  • 官網沒有展現客服諮詢電話,只有一個用戶建議表單。沒法實時聯繫客服。

  這個案例,很典型。從市場到技術,咱們作了不少工做,可是最終效果不理想。最大的願意就是產品不閉環。用戶想學習課程,可是登陸和註冊體驗太差,這就已經擋住了大部分的用戶。

寫做套路

  前面咱們講了不少坑和避坑策略,那要如何才能寫好需求文檔呢?

鋪墊

根據百度百科-鋪墊法。戲劇情節結構的一種手法。在戲劇的進展中,對於某些將要出現的關鍵性情節和起關鍵做用的人物,必須在事前有所準備、暗示;爲情節的展開,爲高潮的到來,醞釀氣氛,做好準備,鋪平道路。這種手法叫埋伏或伏筆。

  其實能夠簡單理解爲背景說明。在需求文檔中,增長必定的背景表述,能夠加強事物間的因果聯繫和完整性,不顯突兀。

  通常能夠在你的需求前增長一個背景交代,



  這樣的好處是,其一,讓以前沒有參與的人有個背景認識;其二,爲本身後續的觀點(或者設計思路)提供可信依據,至少不知本身拍腦殼想出來的。

下定義

  對於不一樣的業務,有時候會有一些專有名詞,或者是你本身了說明某個事物而定義的名詞。若是不作一些定義的解釋,很難理解。好比,在設計IM聊天時候,可能會有一些定義,能夠給出定義。



邏輯清晰

  需求文檔,不是日記,切記流水帳。排版工整,重難點突出。邏輯清晰,富有層次感。

  利用圖表配合文字,有條不紊的表達出合理地邏輯。這樣你們閱讀起來,一目瞭然。

說人話

針對不一樣的人羣必定要設計不一樣的話術

  這裏的人是指不一樣的受衆。考慮到需求文檔面向的對象較多,有技術,業務,測試等,須要拋棄過於專業的技術語言,好比不要出現技術設計的細節,儘可能要用天然語言表達。

  說句題外話,其實嚴格意義上,需求文檔多是要寫兩份,一類是給技術同窗看的,一類是給非技術同窗看的。對於前者,你固然能夠用相似抽象的uml圖或者直接給出僞代碼來講明。

視角

子非魚,安知魚之樂

  你覺得的就是你覺得的嗎?不少時候,需求的來源並不單一,好比公司要作一個工單系統,這個工單系統的使用者幾乎涵蓋了公司的各個部門。按照"用戶第一"的要求,咱們須要考慮到不一樣業務方的訴求和用戶習慣。

  咱們在作需求的時候,就要提早想到。不然,後面的設計必定會違背使用者的意圖。前面,講過的換位思考,或者多角色思考該排上用場了。

  在文檔中,如何體現呢?一般,能夠按照不通視角來描述。這就是相似程序的switch...case...

  切記站在上帝視角看待問題。

版本延續性

  需求文檔不多一次性就讓各方滿意的,或多或少都會有補充和調整。比較好的習慣是使用修訂版原本記錄。

  修訂歷史是一個版本的可追溯源,對需求變動歷程有一個清晰的認識。

  新建默認爲相應模塊的首次使用,對於文檔的修改以及增長的地方可加入超連接,同時在增長與修改的具體地方進行顏色標示或者其餘標誌來進行區分,方便其餘人員進行查詢。



結語

  寫好一個需求文檔,讓人以爲很專業有不少東西須要學習。這裏筆者只根據我的多年的工做經驗,拋磚引玉,歡迎你們怕批評和斧正。

相關文章
相關標籤/搜索