# 前言
在许多成长中的小型公司中,项目经理们在执行CEO战略意图的同时,往往还得处在不得不与技术团队和其他高级经理打交道的位置。通常情况下,即使当工作的非技术因素已经最大程度地影响公司的成败时,开发经理们依旧仅仅关注于技术。伴随着公司的成长,曾经看上去很小的问题也在不断扩散,最终引发成为主要灾难。我写本书的目的,就是为那些新上任的开发经理们提供建议,告诉他们如何成功地应对这些挑战。
小公司中的开发经理在很多方面都不同于在一个稳定的大公司中的同等角色。例如,小公司的开发经理通常不仅要和开发人员一起支撑亟待成熟的产品,还必须与被公司成长过程中面临的挑战所吸引的技术大牛共事。但最重要的是,小公司的开发经理必须对员工、产品、过程、规划、技术以及客户等诸多因素给予广泛的关注。
相对而言,大公司通常支持多种现有产品,他们的过程定义通常比较清楚而且相对稳定。大公司的政策通常限制了开发经理所用的工具、技术及实现方式。相对于小公司的同等角色,大公司的开发经理工作范围更明确而狭窄。
本书作为一本实践指南,为那些经历过初始生存阶段且正在试图进一步发展壮大的小公司中的开发经理们提供了实用的指导原则。其目的是帮助管理者预见问题并在其变得棘手前及时进行处理。这里描述的技能主要适用于销售产品级软件或提供软件服务的小公司,并不针对软件咨询业务。本书不仅提供了总体建议,也提供了具体解决方法以及详细的模板和电子表格,这些内容都非常有助于开发经理们将基本概念应用于具体实践。
由于涉及范围较广,本书的书写方式采用了指令式的风格(prescriptive style)而不是议论型argumentative风格——也就是说,不建议采用广泛的论据来说明这些良好的工作技能如何到位。这方面的资料将大大扩大本书的范围,但同时也会降低它的可读性。
为方便起见,笔者使用“开发经理”和“开发管理人员”贯穿全书,这些术语用于指代高层软件/工程管理人员——不论是首席技术官(CTO)、工程副总裁、工程总监,还是高级工程经理这样特定的工作职位。这个人既要从事软件工程师的管理,还要担负质量保证、文档说明以及项目管理等团队的管理。虽然本书的目标读者是开发总监,不过非技术类管理人员也同样会受益于本书所描述的问题和解决方案。
- 内容提要
- 前言
- 本书的章节结构及相关说明
- 公司发展阶段
- 现实生活的记述
- 电子表格
- 模板
- 致谢
- 专家推荐语
- 第1部分 开发团队
- 第1章 入门
- 1.1 在新工作中找到你的出路
- 1.2 了解人
- 1.3 不愿透露信息
- 1.4 认同企业文化
- 1.5 学习技术、过程和产品
- 1.6 了解客户
- 1.7 了解公司的业务流程
- 1.8 回归重点
- 第2章 管理开发团队
- 2.1 理解你的核心价值
- 2.2 与你的团队沟通
- 2.3 解决冲突
- 2.4 培训
- 2.5 指导
- 2.6 激励你的团队成员
- 2.7 教导问题员工
- 2.8 考核与评价
- 2.9 附加读物
- 第3章 创建一个高效的开发团队
- 3.1 有效的团队组织
- 3.2 程序员的效率
- 3.3 办公空间
- 3.4 如何让其他团队与工程队伍沟通顺畅
- 3.5 新经理,旧习惯
- 3.6 富有乐趣
- 3.7 附加读物
- 第4章 扩充软件团队
- 4.1 设计一个筛选过程
- 4.2 面试特长
- 4.3 汇总
- 4.4 附加读物
- 第2部分 产品和技术
- 第5章 定义产品
- 5.1 产品定义过程
- 5.2 产品定义内容
- 5.3 整体产品概念
- 5.4 利用原型定义产品
- 5.5 与市场部门建立联系
- 5.6 客户对产品的认识
- 5.7 在α版本发布中改善产品
- 5.8 了解现有产品的组成部分
- 5.9 附加读物
- 第6章 驱动版本发布
- 6.1 版本发布计划
- 6.2 版本发布过程
- 6.3 发布版本的标识
- 6.4 附加读物
- 第7章 评估你们的工具和方法
- 7.1 备份知识产权
- 7.2 创建和管理开发文档
- 7.3 源代码版本控制
- 7.4 软件构建方法与时机
- 7.5 软件发布过程
- 7.6 缺陷跟踪系统
- 7.7 选择合适的开发工具
- 7.8 附加读物
- 第8章 评估你们的技术
- 8.1 系统文档
- 8.2 系统可扩展性
- 8.3 故障模式
- 8.4 错误处理和消息
- 8.5 系统的灵活性与可维护性
- 8.6 整合入系统的第三方软件包
- 8.7 系统应用程序接口
- 8.8 安全
- 8.9 数据报表与分析
- 8.10 国际化支持
- 8.11 着眼重点
- 8.12 附加读物
- 第3部分 工程之外
- 第9章 与你的公司一起工作
- 9.1 企业文化和做法
- 9.2 处理团队内部问题
- 9.3 增进同僚关系
- 9.4 尊重工程团队
- 9.5 附加读物
- 第10章 和CEO及执行团队一起工作
- 10.1 支持你的老板
- 10.2 与执行团队合作
- 第11章 倾听客户的声音
- 11.1 客户满意
- 11.2 客户会议
- 11.3 搞定交易
- 11.4 支撑的要求与客户的需求
- 第4部分 为项目、过程以及质量制定工作流程
- 第12章 项目评估
- 12.1 建立一个评估
- 12.2 采集原始项目数据
- 12.3 附加读物
- 第13章 启动一个项目
- 13.1 理解目标
- 13.2 集结项目团队
- 13.3 设置优先级
- 13.4 选择一个框架
- 13.5 制定时间表
- 13.6 创建一个项目计划
- 13.7 启动会议
- 13.8 附加读物
- 第14章 项目执行与跟踪
- 14.1 一个项目的执行管理
- 14.2 项目跟踪方式
- 14.3 变更控制流程
- 14.4 风险管理
- 14.5 附加读物
- 第15章 设计一个软件开发过程
- 15.1 软件开发过程中都涉及哪些内容
- 15.2 开发过程的类型
- 15.3 自定义一个过程
- 15.4 选择一个过程
- 15.5 引进一个过程
- 15.6 附加读物
- 第16章 流程改进
- 16.1 建立一个流程模型
- 16.2 分析流程模型
- 16.3 坚持不懈地走下去
- 16.4 附加读物
- 第17章 理解质量保证
- 17.1 质量的重要性
- 17.2 质量定义
- 17.3 注重质量
- 17.4 质量评估
- 17.5 QA指标
- 17.6 质量与生产力方面的缺陷影响
- 17.7 附加读物
- 第5部分 规划未来
- 第18章 确定发展方向
- 18.1 听取市场部门的意见
- 18.2 创建整体产品
- 18.3 化解技术上的定时炸弹
- 18.4 筹划技术检修
- 18.5 优化客户安装程序
- 第19章 发展战略及路线图
- 19.1 建立产品路线图
- 19.2 对选择进行评价
- 19.3 创建单页纸的评估
- 19.4 附加读物
- 第20章 继续前进
- 附录A 软件公司的组织架构
- 1 公司任务
- 2 典型的个体公司
- 3 典型的两人公司
- 4 12人的软件公司
- 5 24~50人的软件公司
- 6 100多人的软件公司
- 7 结论
- 附录B 国际化
- 1 需要考虑的国际化问题
- 2 国际化的最佳实现方式
- 3 小结
- 附录C 企业工作流程示意图
- 1 创建一张简单的工作流示意图
- 2 工作流实例
- 欢迎来到异步社区!
- 异步社区的来历
- 社区里都有什么?
- 灵活优惠的购书
- 社区里还可以做什么?
- 加入异步
- 版权信息
- 版权声明
- 看完了