专业程序员训练营执行计划
2007-11-25 15:37
267 查看
这是我们训练营的正式计划,该计划描述了我们的目标、过程、各脚色的责任,也给出了我们的自我训练用虚拟项目和所需的开发环境。另外,虽然作者E文很糟糕,但还是用E文编写本计划的目的就是为了让大家更接近专业程序员的实际工作环境。作为专业程序员,我们的理想就是给世界各个角落的人们带来优秀的产品,而因为E文是事实上的世界通用语言,所以无论喜欢不喜欢我们都无法回避,而且通常产品的第一版应该是英文的。同时,作者也希望所有参与者坚持使用E文编写正式的相关文档。
Self-Training Camp Plan
Author: Yong_Zhang (Alias – 坚如磐石)
Camp: http://groups.csdn.net/devs
Date: 2007-11-25
- Logic and Abstract Thinking
- Use the knowledge to Solve Problem
- Modern Software Development Process
- Customer Focus
- Self-Critical
- International Development
- Developer Growing Path
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.
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.
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.
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.
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/
Self-Training Camp Plan
Author: Yong_Zhang (Alias – 坚如磐石)
Camp: http://groups.csdn.net/devs
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 |
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/
相关文章推荐
- 程序员眼中的 SQL Server-执行计划教会我如何创建索引?
- 程序员眼中的 SQL Server-执行计划教会我如何创建索引?
- 程序员眼中的 SQL Server-执行计划教会我如何创建索引?
- 欢迎参与“专业程序员训练营”实验活动!
- 查看已经执行过的sql的执行计划
- Event 10053 执行计划 绑定变量 Bind peeking
- mongodb 执行计划
- 为准确生成执行计划更新统计信息-analyze与dbms_stats
- linux下shell执行秒级计划任务
- 获得执行计划方法三-sql_trace
- 获得执行计划方法四-使用10046事件
- MySQL执行计划解读
- 你的计划为什么执行不下去?怎么破?
- windows server 2012 R2任务计划不执行解决方法
- 学习如何看懂SQL Server执行计划(一)——数据查询篇
- Hive0.14在left outer join多级连接中,执行计划生成BUG记录
- 浅析SQL SERVER执行计划中的各类怪相
- 设置windows服务器计划任务定时执行PHP文件详细步骤
- 简介如何查看执行计划以及执行计划的准确性
- oracle如何获得客户端sql执行计划以便优化sql(三)