热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

架构师学习笔记13开发管理

70%的失败软件项目是因为管理不善,而不是技术。技术只会影响到局部。加强项目管理,可以控制财务成本、提高资源利用率;改进客户关系

70%的失败软件项目是因为管理不善,而不是技术。技术只会影响到局部。

加强项目管理,可以控制财务成本、提高资源利用率;改进客户关系,缩短开发时间,降低成本,提高利润、生产率、产品质量和可靠性,完善公司内部协调等。

软件开发管理分为

软件范围管理
软件进度管理
软件成本管理
软件配置管理
软件质量管理
软件风险管理
开发人员管理

7个方面。

一、项目的范围、时间和成本

(一)项目范围管理
项目的任务是什么?发起人要通过项目获得什么样的产品和服务?这些都属于项目范围的范畴。

包括

项目启动、范围计划编制、范围定义、范围核实和范围变更控制

5个部分。其中正确的范围定义是项目成功的关键。

1、项目启动
2、范围计划编制
将项目所需工作渐进明细和形成文件
3、范围定义
将项目需要交付的成果细化。
正确的范围定义是项目成功的关键,如果范围定义不明确,变更会使成本大大超出预算,破坏项目开发节奏,打击士气。
4、范围核实
项目干系人(发起人、客户)正式接受项目范围的过程。范围核实需要审查可交付成果和工作结果(即验收?),如果项目被提前终止,范围核实过程应当对项目完成程度建立文档。
5、范围变更
确认变更范围和是否已发生,确保各方对变更的接纳,以及对变更进行管理。
变更管理必须与其他管理结合一起使用,如成本控制,进度控制、质量控制。

(二)项目成本管理
项目需要花费多少?资金来源如何?
项目成本不仅包括开发成本,也包括开发之前立项阶段及软件在运行中的费用,以及培训、各种硬件设施费用等。
所谓项目成本管理,是保证在批准预算内完成项目所需要的过程。包括

资源计划编制、成本估算、成本预算、成本控制

4个主要部分内容。
成本控制必须与其他管理结合,如成本偏差应对不当,容易引起质量和进度问题,甚至项目后期出现无法接受的风险。

(三)项目时间管理
项目需要多长时间?进度如何安排?
时间管理确保项目按时完成。包括

活动定义、活动排序、活动历时估算、进度计划编制、进度控制

5个部分。

二、配置管理与文档管理
(一)软件配置管理
记录产品历史,维护产品版本。工具比如有VSS,SVN等。

(二)软件文档管理
包括

开发文档、产品文档、管理文档

三、软件需求管理
需求管理的目的是控制和维持事先约定,保证项目开发过程的一致性,使用户能获得最终想得到的产品。

(一)需求变更
新增或改变原有需求。
1、项目启动阶段的变更预防
需求分析阶段工作越到位,变更就越少,即使有,则可能是超出合同范围,需要另外处理。
2、项目实施阶段的变更处理
看变更是否可控。应该树立变更必然、可控、有益。需要注意以下几点:
1)需求与投入有关。需求变,则软件投入也要变,是有代价的,否则客户得寸进尺。
2)需求变更要经过出资者的认可,使变更有成本概念
3)变更再小,也要经过正规需求管理流程
4)注意沟通技巧

(二)需求跟踪
定义需求变更流程,分析需求变更影响,控制变化的版本,维护需求变更记录,跟踪每项需求状态。

四、软件开发的质量与风险
(一)软件质量管理
1、质量计划
在计划阶段,主要做计划,定义优先级,提供相应准备或资源

2、质量保证
对软件质量进行测量、分析,提供质量改进的依据。

3、质量控制
评审、调试和测试,监视项目,判断是否达标,杜绝导致项目不合格的根源。

(二)项目风险管理
1、项目风险
1)内部技术风险
新技术,不切实际的要求
2)内部非技术风险
公司战略,预算等非技术因素
3)外部法律风险
许可,专利等
4)外部非法律风险
政治,天灾人祸,影响最大

2、风险管理
1)风险列表
这里写图片描述

这里写图片描述
2)风险分析
3)风险应对
4)风险监控

、人力资源管理
追求最有效地使用项目人员。
(一)组织规划
划分项目角色、职责等。组织形式有三种方案:

1、垂直团队
团队成员多为多面手,一人身兼数职。功能模块分配给个人或小组,负责完成。
优点:功能实现目标清晰,人员得到锻炼;
缺点:可能不是最有效率的,完成的质量也不是最好的。

2、水平团队
团队成员多为专家。一人或小组同时处理多个功能模块,每个成员负责自己擅长部分。
优点:效率、质量高
缺点:沟通成本高,项目管理难度大

3、混合团队
专家和多面手联合。多面手完整负责一个功能模块,专家在其间合纵连横。优点和缺点都是前两个的联合。

项目推进过程中,团队成员数量应该不是恒定的,否则会出现头尾过剩,中间不足的情况。

(二)人员招募
项目经理是团队的核心,直接影响项目的成败。一般要求其具备以下能力:
1、领导力
1)授权与分配职责
2)善于激励
3)以身作则
4)正确的抉择

2、沟通
及时沟通,集思广益,

3、人际交往
协调、争取资源

4、抗压

5、培养

6、时间管理

(三)团队建设
形成一个有战斗力的团队。

六、软件的运行与评价
软件交付后,用户的打分。通常,关注以下几点:
1、稳定性和可靠性
2、是否满足需求
3、带来的好处

七、软件过程改进
有CMM、CMMI、ISO9000等模型。


推荐阅读
  • 服务器虚拟化存储设计,完美规划储存与资源,部署高性能虚拟化桌面
    规划部署虚拟桌面环境前,必须先估算目前所使用实体桌面环境的工作负载与IOPS性能,并慎选储存设备。唯有谨慎估算贴近实际的IOPS性能,才能 ... [详细]
  • Asynchronous JavaScript and XML (AJAX) 的流行很大程度上得益于 Google 在其产品如 Google Suggest 和 Google Maps 中的应用。本文将深入探讨 AJAX 在 .NET 环境下的工作原理及其实现方法。 ... [详细]
  • 为何Compose与Swarm之后仍有Kubernetes的诞生?
    探讨在已有Compose和Swarm的情况下,Kubernetes是如何以其独特的设计理念和技术优势脱颖而出,成为容器编排领域的领航者。 ... [详细]
  • 本文详细介绍如何在华为鲲鹏平台上构建和使用适配ARM架构的Redis Docker镜像,解决常见错误并提供优化建议。 ... [详细]
  • 深入解析:存储技术的演变与发展
    本文探讨了从单机文件系统到分布式文件系统的存储技术发展过程,详细解释了各种存储模型及其特点。 ... [详细]
  • 协程作为一种并发设计模式,能有效简化Android平台上的异步代码处理。自Kotlin 1.3版本引入协程以来,这一特性基于其他语言的成熟理念,为开发者提供了新的工具,以增强应用的响应性和效率。 ... [详细]
  • 本文探讨了一种统一的语义数据模型,旨在支持物联网、建筑及企业环境下的数据转换。该模型强调简洁性和可扩展性,以促进不同行业间的插件化和互操作性。对于智能硬件开发者而言,这一模型提供了重要的参考价值。 ... [详细]
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • 本文深入探讨了 Git 与 SVN 的高效使用技巧,旨在帮助开发者轻松应对版本控制中的各种挑战。通过详细解析两种工具的核心功能与最佳实践,读者将能够更好地掌握版本管理的精髓,提高开发效率。 ... [详细]
  • 本文深入解析了Spring Cloud路由网关Zuul的核心功能及其典型应用场景。通过对方志朋老师教材的学习和实践,详细探讨了Zuul在微服务架构中的重要作用,包括请求路由、过滤器链管理以及服务动态扩展等关键特性。同时,结合实际案例,展示了Zuul在高并发和复杂业务场景下的应用优势,为读者提供了全面的技术参考。 ... [详细]
  • AppFog 是一个基于 CloudFoundry 的多语言 PaaS(平台即服务)提供商,允许用户在其平台上轻松构建和部署 Web 应用程序。本文将通过详细的图文步骤,指导读者如何在 AppFog 免费云平台上成功部署 WordPress,帮助用户快速搭建个人博客或网站。 ... [详细]
  • 分布式开源任务调度框架 TBSchedule 深度解析与应用实践
    本文深入解析了分布式开源任务调度框架 TBSchedule 的核心原理与应用场景,并通过实际案例详细介绍了其部署与使用方法。首先,从源码下载开始,详细阐述了 TBSchedule 的安装步骤和配置要点。接着,探讨了该框架在大规模分布式环境中的性能优化策略,以及如何通过灵活的任务调度机制提升系统效率。最后,结合具体实例,展示了 TBSchedule 在实际项目中的应用效果,为开发者提供了宝贵的实践经验。 ... [详细]
  • 最近,我在CentOS 5服务器上成功部署了GForge 5.7 Community Edition。与Advanced Server版本相比,虽然功能略有简化,但仍然能够满足大多数开源项目管理的需求。为了确保数据安全,我开发了一套全自动备份脚本,该脚本能够定期备份GForge的数据和配置文件,并将其存储在远程服务器上,以防止数据丢失。此外,该脚本还具备错误检测和日志记录功能,便于故障排查和维护。 ... [详细]
  • Jenkins学习精华:自动化构建与持续集成入门指南
    本文综合了网络资源及同事分享的PPT内容,详细介绍了Jenkins在自动化构建与持续集成中的应用。首先涵盖了Jenkins的安装与配置流程,接着阐述了如何根据项目需求设定自动化编译任务,包括确定开发环境、选择合适的编译工具以及实现代码的自动更新等关键步骤。特别强调了在SVN环境中通过命令行实现代码自动拉取的最佳实践。 ... [详细]
  • 在Mac操作系统中,.svn文件夹作为隐藏文件,逐个手动删除相当繁琐。为了提高效率,可以通过简单的Linux命令实现批量删除。具体操作为:打开终端,切换至目标项目目录(此步骤至关重要),然后执行相应命令以彻底清除所有.svn文件夹。此外,建议在执行前备份重要数据,以防误删。 ... [详细]
author-avatar
手机用户2502905647
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有