Redmine 是 Issue Tracking 還是監控管理的工具?!

** 本文同步發表於 FB 社團-軟體設計鮮思維 **

Redmine, Redmine...,它是一套優秀的 Issue Tracking 工具,但是只要有管理階層介入,一切就都變了調。

我親眼見識過已經有好幾個單位的主管/CEO,利用它來做:

1. 開發時程控管,展現看起來很像一回事的甘蔗圖。

2. 更甚者,要開發人員在其上填寫 TimeSheet,老闆要量化監控每位工奴的工時紀錄 (即使小貓沒有幾隻,但老闆可是在乎得很每個人表面的量化)。

結果理應是開發者之間很好的開發溝通機制,針對最根本開發過程中會遇到的 Issue/Bug/Feature 作有效的紀錄/傳承/學習,更可以與版控系統其內程式碼的提交 (commit)流暢地建立關聯。

一旦淪落為監控/管理的工具,Issue Tracking 大致上就毀了~ 開發者就少有人會願意主動拋出 Issue,如此就遑論可以建立起平行的學習型組織了;即使老闆都這麼說-我尊重與鼓勵每位 Member 踴躍地拋出議題,讓團隊得以永續成長...。

[實作筆記] Visual Studio 2012 新增 MVC 5 Project

Visual Studio 2012 系列並沒有支援 ASP.NET MVC 5 的專案樣版 (template),目前仍僅提供 MVC 3/4 的樣版。

MVC 5 的新功能 (New Features)可參考:What's New in ASP.NET MVC 5。主要因為 MVC 5 直接支援 Bootstrap 作為 Layout and Theme 的 View Framework;且支持的 Bootstrap 版本為 3.02,而原來支持的 2.x 與 3.x 的 CSS Tag 可說大幅翻修,所以若是開發新的 Web 專案,還是乾脆以 MVC 5 作為樣版較為合適。

如需要讓 Visual 2012 可以使用 MVC 5 的樣版,需要:

不過安裝完成後,雖然可以新增 MVC 5 專案樣版,但卻只能選擇-「ASP.NET MVC 5 Empty Project」樣版,也就是只為空的樣版框架,並沒有像如 MVC 4 可以選擇完整 Web 的框架。

可以參考這一篇-Extended Template for ASP.NET MVC 5 from Visual Studio 2012。下載該篇作者所提供的樣版檔案,並複製至下述目錄 (需依該目錄結構):

%USERPROFILE%\Documents\Visual Studio 2012\Templates\Project Templates\Visual C#\Web

閱讀全文 »

{書稿} 建置 Android 開發環境-02

安裝與設定 Eclipse EGit

什麼是 EGit?

EGit 是 Eclipse 的一個團隊提供者 (team provider)套件,它可以讓開發人員直接在 Eclipse IDE 環境內使用 Git 版本控制系統。

EGit 是基於 JGit 套件 (library)所發展,而 JGit 係以 Java 來實現 Git 完整功能的輕量級 (lighweight)套件庫。

安裝 EGit

自 Eclipse 4.2 以後版本,EGit 已成為核心組件,並不需要另行安裝;而若使用 Eclipse 較舊版本,則 EGit 是被視為外掛 (plug-in),可以透過 Eclipse 安裝管理員 (installation manager)安裝。

在 Eclipse 選單上點選【Help】→【Install New Software...】,在出現的對話框內,輸入下列 URL 位址: http://download.eclipse.org/egit/updates

然後按照對話框提示的訊息完成安裝。

圖、安裝 EGit 外掛

圖、安裝 EGit 外掛

閱讀全文 »

{書稿} 建置 Android 開發環境-01

安裝 Android 開發工具

Android App 開發環境只要設置下列兩個開發套件即可:

  • Java SE (Standard Edition)。
  • ADT (Android Development Tools) Bundle。

Java SE

Android App 是以 Java 語言撰寫的,自然需先下載 JDK (Java Development Kit) 的編譯環境。

請至 https://developer.android.com/sdk/index.html 下載 JDK 最新版本;注意下所對應的作業系統、以及 32或64 位元的版本檔案,然後下載直接執行安裝即可。

本書為 Windows 7 x64 的開發環境,最新的穩定版本為 JDK 7,所下載的參考檔案名稱為 jdk-7u51-windows-x64.exe

ADT Bundle

Google 已為 Android 開發人員準備了一套完整的開發套件-ADT Bundle,可讓開發人員不用再各別安裝與設定開發環境,降低 App 開發的門檻。

關於 Android 開發工具,可參考其開發人員首頁 https://developer.android.com/sdk/index.html 獲取更多相關資訊。

ADT Bundle 包含了下列幾個開發套件:

  • Eclipse + ADT plugin。
  • Android SDK Tools。
  • Android Platform-tools。
  • The latest Android platform。
  • The latest Android system image for the emulator。
下載與設定 ADT Bundle

在上述的網頁,點選【Download】下載取得 SDK ADT Bundle for Windows (32/64 位元)。

將所下載的壓縮檔 (檔名為 adt-bundle-.zip) 解壓縮至合適的位置內並可更名較簡短的資料夾名稱 (e.g. C:\adt-bundle-windows)。

開啟資料夾內 /eclipse/ 目錄並執行 eclipse.exe,設定工作區 (workspace)專案儲存目錄 (e.g. C:\Projects\workspace),如此即完成 ADT 的初始配置。

{書稿} 安裝與設定 Git for Windows

安裝與設定 Git

Note:
本書關於 Git 與 Android 開環環境是假設建基在 Windows-based (e.g. Windows 7/8)的系統下;如為 Linux (e.g. Ununtu/Fedora)、Mac 等其它系統,則可參考該系統相關的安裝指引。

在 Windows 環境下使用 Git,必須先安裝核心組件-msysGit。安裝完成後即可在命令列模式輸入 Git 指令,或是利用它內建的圖形界面操作 Git。

本書所有案例操作會同時以命令列 (command promprt)與圖形使用者界面 (GUI, Graphic User Interface)兩種模式,來說明如何執行 Git 操作。

命令列模式即是開啟「命令提示字元」視窗,並輸入 Git 指令;而圖形界面則以整合在 Eclipse 內的 eGit[1] 來執行 Git 。

Note:
雖然安裝完 msysGit 即有圖形界面,但是它作得很粗糙;所以若不是開發 Eclipse 並使用 eGit 的 Windows 使用者,會選擇另一套更友善的圖形使用界面-TortoiseGit。

不過要注意,TortoiseGit 只是 Git 的一種圖形前導 (frontend)界面,所以仍須先安裝完 msysGit 才能執行 Git 指令。

無論 msysGit、TortoiseGit、eGit,甚或其它第三方 Git Client,彼此之間並不會有任何衝突,都可以對同一 Git 儲庫執行 Git 指令。與其它版本控制系統不一樣的就是,所有的 Git Client 其實僅是 Git 原生組件 (component)的「包裹 (wrapper)」而以,它們其實都是操作同樣的 Git 核心組件。

[1] eGit 是已內建於 Eclipse 的 Git 套件,它可以透過 Eclipse 的界面直接操作 Git 指令。下一節會說明如何設定 eGit 組態。

閱讀全文 »

Howto – 讓 Redmine Issues 關聯 Git Commit 訊息

關於 Redmine 如何將其 Issue (問題)關聯至 Git 的 Commit 訊息,需參考官方這一篇-Redmine Application Settings

* 在專案內,建立問題清單。

Redmine 問題清單

* 對所在的儲庫 (repository),執行提交 (commit)指令時,利用「# + 問題編號」關聯問題。預設的關鍵字有:

  • 參考問題:refs, references, IssueID。
  • 已修正問題:fixes, closes。

例如本次提交係參考問題2(Issue-2),所下的提交指令如下:

$ commit -m "the commit refs #2"
Redmine 問題清單

閱讀全文 »

軟體思維顧問

專職軟體輔導與教育訓練的獨立顧問。輔導企業資訊單位如何有效組織系統開發與維護;輔導開發人員達成有效的專業分工。傳授如何把軟體作軟 (Keeping Software Soft)的技能,得以提昇系統的彈性/延展,並進而創造系統的再利用價值。

Personal