有句話說:“字不如表,表不如圖”。

作為開發者,我們通常與鍵盤,滑鼠為伴。我們每天坐在工作站和筆記本電腦前,将代碼輸入到文本編輯器,然後切換螢幕運作。
我們可能感覺,圖表似乎是個不太常見的行為。但是,對于了解 ,促進溝通和思想彙總,特别是開發人員在解決複雜問題時,會經常處理各種想法,圖表在個人和團隊中都是相當有用工具。
在本文中,基于我多年的經驗與實際觀察,通過圖表來描寫這些關鍵用途,通過其解釋一些關鍵詞和優點,并做一些提示來改進圖表實踐的提示。
圖表的用途
圖表的三種常見用途如下:
1)了解問題/解決方案
2)幫助團隊/小組互相溝通
3)合并想法
在深入研究圖表技巧和竅門之前,我們來一起總強一下圖表的用法。
了解問題/解決方案
圖表法可以幫助我們了解和處理一個複雜的問題,用圖表把它換成更直覺的表現方式。
根據我個人的經驗,在我小憩、散步或吃點零食、飲料時畫一我還圖表,作為解除壓倒性思維的有效方法。通過做一些與平常不同的事兒,你的思想就能馬上突破,并可以恢複一大片能量。
當我們在想解決一個難解的問題時,這種心理的解鎖是非常必要的。有時,我們會在問題上固化思維,頭腦會陷入一種循環。代碼尤其如此。當問題隻以代碼表現時,思維就會被鎖定在問題的一種外在表現形式上,并且無法脫身。通過用不同的媒介來展現一個問題,
協助小組溝通
圖表同時也是鼓勵和促進兩個或一群人之間交流的好方法。
對于我們來講,身體方面的需要尤其如此。我們的工具,筆記本電腦或台式的設計不太适合多個人間的共享。
個人電腦是為單使用者設計的,鍵盤,鍵盤和螢幕全部并排在一列中,用于同一個主視線。即使有兩個或兩個以上的人看同一個螢幕,也不可避免地會出現一些彎腰駝背,這對大多數人來說是不舒服的,更不用說人體工程學了。
這種“預感因素”更适用于手持裝置,如手機和平闆電腦。
圖表,特别是實體圖表,就可以讓多個人更容易合作。一張紙可以讓坐在長椅的兩個人之間迅速傳遞。
或者多個人可以坐在桌子旁邊,在他們自己的床單上畫畫,沒有插入式螢幕阻止他們看到彼此的臉和手勢。 或者,人們可以站在白闆周圍,每個白闆上都有一個标記,然後輪流移動畫出一些東西,然後移出來調查總繪圖。
随着每個人都感覺身體更舒适一點,并有空間做出貢獻和參與,精神力量更有可能流動,每個成員的最佳想法都會貢獻給整體。
合并想法
圖表可以幫助參與者分享想法,還可以幫參與者擴充自己的想法。
如果以某種方式繪制圖表,在某點就會發現很多空白。
這個空白就可以在參與者的腦海中提供了一個貢獻的空間。當一個參與者想到他們想要貢獻的東西時,他們可以跳進來,在空間的一個空白區域中填充自己的想法和表現。
他們可以将它連接配接到圖的其他部分,進而建立在圖的現有概念結構上,但增加了一個新功能或巧妙地改變了它的方向。 這種開放式綜合可以成為開創性新思想的基礎。
圖表與媒介
我觀察到的最常見的四種圖表媒介是:
1)筆和紙
2)虛拟筆和紙(例如iPad或帶觸控筆的表面)
3)白闆
4)滑鼠/鍵盤控制的軟體
5)從代碼中生成
筆和紙
這是最常用和最廣泛使用的媒介。 書寫工具通常價格便宜,并且容易抓住,從A4紙到筆記本中的各種書寫材料也是如此。
傳統的筆和紙有許多優點。它們便宜,廣泛可用,對大多數人都易于使用,人們可以同步的方式協調思維與手勢,直接快速。
它也是實體和觸覺的,而其他媒介則不是。 對于某些人來說,繪畫或寫作的實體行為可以幫助實作認知“流動”狀态。
它非常靈活。 筆可以在兩個方面繪制幾乎任何東西,而不受像文本檔案那樣被字元集限制。 它甚至可以結合不同的筆劃厚度和顔色。 這張紙可以在人們之間傳遞,粘在另一張紙上或切成小塊或張貼在某處。 它可以通過手機或相機拍攝并随時轉換為數字資産。
電子筆和紙
這種媒介使用筆/鉛筆和紙的比喻和許多實體特征,但是以數字和虛拟形式。 通常它采用手持式平闆電腦和觸控筆的形式,例如iPad Pro。
此媒介有筆紙的優點,也存在一些缺點:
它在成本和耗能方面比筆紙要貴得多。
它在大多數現代裝置上都具有與筆相同的直接性,在拖拽繪圖裝置表面上加适當的标記之間沒有延遲。
它比筆的觸感稍差。
它比筆稍微少一些靈活性。比如說,你不能把一塊平闆電腦粘到另一塊電路闆上,或者幹脆把它切成兩半。
但是如果您有列印機,可以将圖檔列印到紙上,然後也具有上面所有的靈活性。
白闆
這種媒介在辦公室、大學中很常見。對于任何類型的團隊,用它來畫圖表都是很棒的。
白闆有一些自己的特殊優勢。大尺寸與可直立使一個團隊合作更容易,可以根據需要跳入和跳出來做标記。
與虛拟筆和紙一樣,标記也容易删除重寫,可快速靈活地疊代和修正圖表。
滑鼠/鍵盤控制軟體
在這種媒介中,我們使用桌面或移動應用程式來建立圖表。這通常涉及和滑鼠/觸控闆的拖放式互動。其次,通常有一些鍵盤快捷鍵可用于執行常見操作(例如,删除元素)。
以下是我見過的一些最常用的繪圖應用程式:
YED
AsciiFlow
Google Draw
Axure RP
Lucidchart
Microsoft Visio
與前兩種相比,這種媒介有一些獨特的優勢。
1)可以轉換為一些有用的形式。例如。 yEd和Visio允許将圖表轉換為另一種形式,如XML,可用于生成實際的可執行代碼。
2)批量操作。 例如,快速選擇多個項目(鍵盤修改器+滑鼠單擊或使用滑鼠拖動矩形框),然後執行批量操作(如删除)。 或通過複制/粘貼複制元素。
3)導入數字資源。例如,您可以在網絡上找到圖像,将其複制/粘貼到圖表中,然後進一步操作(調整大小,裁剪等)。
從代碼中生成
這個媒介與前一個媒介有些相似,不同之處在于我們不用滑鼠/觸控闆來建立圖表,而是使用鍵盤編寫代碼,然後讓軟體将該代碼轉換為圖表。
以下是我見過的一些最常用的應用程式:
WebSequenceDiagrams
yUML
Code2Flow
方法和提示
以下是我幾年來總結的一些有價值的提示。
在畫圖之前請先暫停片刻,确認自己想要表達什麼。當然,如果你不想進入分析癱瘓狀态,至少提前想清楚你可要畫的前三個元素。
考慮好這些,這将幫您從清晰明了的實體開始,使圖表更具可讀性并且保持視覺清晰。
工作先在中心向外繪制。通過聚焦頁面或表面中間的前幾個元素,可以留出空間以任意方向(上,下,左,右)來擴充圖表。 大多數情況下,你可能事先不知道需要添加哪些元素以及将連接配接到何處,是以盡量保留一些空間。
可以使用直線,直角線。這可能有點個人偏好,但我發現一直使用直角線的圖更容易遵循。如果線條都遵循該規則,則圖表看起來更“幹淨”或更少噪音,并且更容易關注内容。
您可能更喜歡線條的不同形狀,但在大多數情況下,保持一緻性,将提高圖表的可讀性。
留出大量空白。如果在元素之間留下相當大的差距,那麼填寫新元素或交叉元素和添加替換元素也更容易。如果是一群人在同一個圖上工作,這是非常友善的,因為不同的人可能想添加不同的元素。
繪制圖表時請一定寫清楚,簡單明了。
我無法了解,為什麼有些人在标注圖表時會急于求成。畫圖并不是一場速度競賽,再多花幾秒鐘就可以清晰明了地寫出來。
學習繪制簡單的字形或圖示。通過包含對象的簡單視覺表示,可以極大地增強圖表效果。比如人物模型可以由人物的簡筆畫,消息的信封和狀态可以由三維矩形塊表示。
如果可以,也使用多種顔色的筆,而不僅僅用黑色。
比如一個小組在圖上進行協作,每個人都各自不同彩色的筆,這樣很容易知道是哪些人添加了什麼内容。 如果圖表傳達多層資訊,每種顔色可以代表一個圖層。例如,一種色彩用于資料,一種色彩用于代碼。
實踐會讓圖表更完善。我們不斷重複繪制圖表,逐漸合并上面的提示,觀察自己的圖表技能會随着時間的推移而改善。 即使嘗試一些簡單的重複練習,也會幫你更清晰,更對稱和更有信心。
何時用畫圖
在任務開始時,在編碼之前。用它來找出問題,找到解決方案的關鍵組成部分及其連接配接方式。
當出現障礙時,你會注意到陷入了某種陷阱。另外,當你想到問題或解決方案似乎都會變得越來越複雜時。把時間都放在紙上了!
當人們需要合作時,任何時候都需要多個人聚在一起工作。
無論是多學科團隊圍繞創意工作,開發者與其他多人使用的API,還是由多個團隊共同設計一件事物,都需要畫圖來幫助。