專業程序員訓練營執行計劃

這是我們訓練營的正式計劃,該計劃描述了我們的目標、過程、各腳色的責任,也給出了我們的自我訓練用虛擬項目和所需的開發環境。另外,雖然作者E文很糟糕,但還是用E文編寫本計劃的目的就是爲了讓大家更接近專業程序員的實際工作環境。作爲專業程序員,我們的理想就是給世界各個角落的人們帶來優秀的產品,而因爲E文是事實上的世界通用語言,所以無論喜歡不喜歡我們都無法迴避,而且通常產品的第一版應該是英文的。同時,作者也希望所有參與者堅持使用E文編寫正式的相關文檔。

  Self-Training Camp Plan

Date: 2007-11-25

1.      Overview

To help growing developers understand the requirements for a professional developer in real world, Yong set up a virtual self-training camp for attendees to discuss and to complete the training courses. This document described the training goals, virtual project, process and metrics.

 

1.1 Goals

Our main goal is help attendees deeply understand the strict requirements for a software developer. However, we also expect that attendees can build up some sense about following goals.
-           Logic and Abstract Thinking
-           Use the knowledge to Solve Problem
-           Modern Software Development Process
-           Customer Focus
-           Self-Critical
-           International Development
-           Developer Growing Path
 

1.2 Non Goals

Though we have to deal with some programming skills, but coding knowledge is not our goal. Comparing with immense technical knowledge across different domains, we believe above goals is more important for growing professional developers. If we know the basic principle to develop excellent software and if we know how to solve problem in general way, other stuffs left are simple enough - finding appropriate tools, knowledge, data structures to implement it! We call it as “Result Driven”. 

1.3 Roles

Attendees:  Understand the tasks (reading, coding or document) of each phrase described by organizer. Complete and upload owned tasks with high qualities in time. Review tasks completed by other attendees and respectively give some comments. All attendees are responsible to answer questions asked by other attendees.

Organizer: As a virtual mentor, the organizer is responsible to push the process moving on. Organizer should make attendees clearly understand the requirements of each development phase. He also should review the tasks completed by first top-N attendees and give some feedback. Organizer is also responsible to answer some common questions or write some topics in different phase if necessary.

  

2.      Development Process

To be a professional developer, writing a great program in weekend is not our goal anymore. That’s not a way to help software enterprise gaining long-term success.

In our training camp, we’ll simulate the iterative development process generated from software industry practice. We will break the process into following mile stones:

M0:

Start with brain storm and visions (See section of “Virtual Project” below).

Then set up our goals and make an executive plan (See section of “Schedule” below).

Write overall and M1 Spec (analysis the market and competitors, user scenarios, describe key features and function boundary, feature list, security consideration).

M1:

Design Document - Architecture, Basic Interface, Important Components, Basic Data Structures.

Coding – Coding for M1 features, bug fix and code reviewing (written by others).

Testing – Unit Testing (Developer owned), Feature Testing, Automation Testing

M2:

M2 Spec

Similar to M1, complete M2 features.

CC: Code Complete. All features should be done or cut off.

RC: Release Candidate. After smoking testing and bug fix, verify if we get the quality of RTM.

RTM: Release to market. Start to plan for next iteration.

Comments: usually there are 3 roles working together in above process – Program Manager (PM) is responsible for spec, Developer is responsible for implementation and Tester is responsible for qualities. However, don’t think it as pipelining. Developers are required to have contribution to features, implementation and qualities. Actually, experienced developers need some PM traits and sometimes developers are all in one for some small projects like following virtual project.

Comments: We will set several check points inside each mile stone to sync status and to do some tunings.

 

3.      Virtual Project

Our virtual project is a private English learning tool - codename “Spadger”.  It’s main features include but not limited to:

 Build private English dictionary with real sample sentences generated from private collections – Books, Office documents, Emails, Web pages… Because those words and sample sentences has tight relationship to user’s real world (for e.g., working environments, personal interest, etc), so it’s more useful for users to learn English than popular words book.

 Allow user to generate different dictionary for different field, such as “Verbal English”, “Programming”, “Email”, etc.

 Provide Windows-based UI for user to explore, query and learn words across multiple private dictionaries.

 Integration with 3rd part online dictionary to play pronunciation and further more explanations.

 

Though the “Spadger” is small, however it has each attribute of a big system. We should design and implement it as a robust, flexible “product”. Actually, we can expand it for other complex user scenarios in the future such as “Intellisense” – auto list sample sentences when writing English document (See Google search box). We can also improve it by machine learning-based technologies to auto cluster user dictionaries or build it as a key part of personal desktop search.

 

 

4.      Schedule

At this moment, we only can list overall schedules and we will review it during execution.

Mile Stone
Due Date
Check List
M0
Dec.2 2007
1.        Overall Spec; 2.  M1 Spec
M1
Dec 31 2007
1.        M1 Design; 2. Dev Plan; 3. Coding; 4. Unit Testing; 5. Bug Report/Fix
M2
Feb 4 2008
1.        M2 Spec; 2. M2 Design; 3. Dev Plan; 4. Coding; 5. Unit Testing; 6. Bug
CC
Feb 18 2008
1.        Feature Check; 2. Code Sign Off; 3. Smoking Testing; 4. Testing Coverage Report; 5. Start Bug Triage
RC
Mar 10 2008
1.        Beta Testing; 2. Strict Bug Triage; 3. Smoking Testing
RTM
Mar 30 2008
1.        Sign Off for RTM; 2. List known issues; 3. Plan for next iteration

Detailed schedule will be given before the beginning of each mile stone. Developers are responsible to break down and then assign priorities of owned tasks.

 
 

5.      Development Environments

Platform: Windows 2000, Windows XP, Windows Server 2003 or Vista. Those platforms are also our target platforms of the virtual project. 

Tools: at least VC 2005 with MSDN. Prefer to install VC 2008 Express Edition– It’s free! (It’s ok to implement UI components in C# if like).

VC 2008 Express Edition! (Free): http://msdn.microsoft.com/vstudio/express/visualc/

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章