软件开发纲要,实际情况具体调整
====================================
编码规范:
字符串存放在数据库中
数据库表:单词小写加下划线
SQL 语句关键字大写
尽量使用存储过程,不硬编码SQL脚本到程序里(使用LINQ技术除外)
项目源代码的分层结构
如果系统需要直接访问第三方数据库,尝试建立SQL SYNONYM,View视图,较少与其耦合
项目中有明显的业务模块区分,且各模块相对独立,尝试在源代码结构、数据库表名前缀等方面加以区分
源代码以“模块\组件”划分;(如Analysis Service\,WebSite\;WebSite下在分业务组件财务和客户)

开发环境:
开发环境配置:测试机、开发机、服务器(个数、配置参数)
程序源代码目录结构(数据库脚本目录[创建表、初始化数据]、公共代码目录、文档、源代码、类库、工具等等)
项目主界面样式
SVN
需要开发软件列表(VS,SQL Server,第三方组件(可能需要审批))
Bugzilla

沟通方式:
人员联系方式(手机、名称、Email)
邮件
电话
如果文档版本更新,或关键组件(共享组件更新)发邮件通知
沟通信息存放于项目文件夹

人员配置:
美工
开发
测试
数据库管理

书写文档:(定义文档格式:字体、首页、目录、版本描述)
系统用户手册
部署文档
概要设计(主机配置:开发环境、产品环境)
详细设计
需求文档
StoryBoard
主要模块设计(界面、接口、功能描述)

开发启动:
code review
测试用例编写
模块功能讨论会议

设计阶段:
任务计划可以使用:Windows Service(自行开发),SQL Server Agent(SQL操作), Windows任务计划+自开发程序等方式

前期准备:
准备项目开发需要的参考资料,放入study文件夹,供组员参考
需求文档格式定义(开发团队仔细确认需求、和客户反复沟通确认),及生成完整的需求文档,制定需求变更控制(客户提交变更申请邮件->开发团队分析变更影响范围、确定工作量(取舍变更项)->开发团队报告上级及客户变更成本->客户及上级确定变更->客户更新需求文档并发送开发团队->开发团队实施变更->双方确认变更)
准备、攻克需要用到的相关技术(筛选或推迟当前技术或工期无法实现的功能)
人力资源安排及角色分配
美工根据需求设计产品主要界面及展现风格(反复和客户确认界面、界面设计确认)
制定合适的开发周期(需求、开发、测试、UAT阶段;版本交付里程碑;验收标准)、交付计划、售后服务期限和范围(合理修改已有产品、不增加新功能)
leader准备已有开发项目或技术的可重用部分,准备项目开发结构和可复用组件),尽可能提高开发效率
建立自动化部署机制,方便开发与测试代码同步,减少部署时间
数据库表结构的定义,生成脚本文件和文档
提交Research结果报告(研究对象有何功能,对项目的作用,如何使用,当前问题,参考文档)
建立项目软件库,所有开发工具、第三方组件、及其关联文档,存放于项目组Software文件夹
提前准备好开发环境、沟通方式

新人培训问题:
制定新人的主要指导人员,最好1对1
定时查看工作成果,即使纠正出现的问题

开发中:
随时同步更新项目成员使用工具功能、所开发模块功能介绍(使整个团队同步项目状态和最新技术)
注意代码质量,前期进行code review,规范源代码签入描述信息
测试要注意以下方面:产品界面、业务逻辑、数据正确性、产品性能;必要时学习使用SQL Profiler验证每个操作的SQL 访问性能
定时沟通(如DailyMeeting形式):报告开发进度、当前问题、确定下一步计划;测试报告测试情况、已完成测试任务
定时制定部署时间,交测试验证,同步当前开发进度与质量

通用功能:
验证、安全
日志
权限系统