除了刷题之外的事 - Project Management

除了刷题之外的事

刷题是练习解决问题的能力的一种方法,而这里的「问题」主要是指演算法问题。但在实务的工作场景当中,「演算法问题」只是程序工作的一小部分而已。我们除了在意「一个问题中的算法怎麽解之外」,我们更在意的「如何把这些算法实现成完整的应用」。因此除了刷题之外的事是如何用「工程化」的方式解决一个真实问题,除了刷题之外想写好程序还有以下几个技能需要掌握:

  • 软件工程 (Software Engineering)
  • 专案管理(Project Management) ← Today
  • 系统架构(System Architecture)

昨天讨论到的「软件工程」在意的是如何从写出「好的程序码品质」近一步写出「好的程序专案」,一个可以运行得当的产品绝对不只是一个跑得动的程序而已。下一个想要讨论的题目是「专案管理(Project Management)」,如何在正确转换使用者需求,进而规划专案进程专案管理在意的点。

专案管理

专案管理是从「专案完成」为大前提的目标下,规划出一系列达到目的的时程安排与交付项目。根据 维基百科 的定义:「领导一个团队在规定时间内实现目标和达到成功标准的过程, 其主要挑战在於在给定的约束条件下实现所有专案目标,在社会科学领域是管理学的一个分支学科。这些信息通常包含於在开发过程初期建立的专案文档中。主要的约束条件是范围、时间、预算其次是优化资源配置的必要投入,并将其应用於实现既定目标。」

专案管理是一门管理的技术,专案管理者(Project Manager)也是程序专案中不可或缺的角色。程序码的品质没有极限,但时间有限。

人月神话

人月神话 是一本关於「专案管理」的必修教科书

这本书当中会用人月(man-month)来量化软件开发的资源,人月指的是「一个人要花几个月」可以完成工作的单位,被用来评估量化该专案的大小与负担,从人力和工时两个维度下去思考。不过人力成本和时间成本并不完全呈现线性的关系,也就是两者并不是被 1:1 的取代。换句话说,同样的专案开发,增加一倍的人力并不代表开发时程可以减少一半。而盲目地增加人力或压力时程,反而有可能造成反效果,这也是许多专案管理上会遇到的误区。

在一本书当中用了许多案例与理论说明常见的专案管理盲点与策略,是一本重要的经典。

让专案管理加速软件生命周期

一个软件从无到有开发过程我们称为「生命周期」,大致上会包含「分析」、「设计」、「实作」与「测试」,有些人也会加上「部署」跟「维护」。常见的开发方法可以分为「瀑布模型(Waterfall Model)」或「敏捷开发(Agile Development)」,如 下图 所示:

软件专案管理是在开发的过程中加入「需求」、「时间」与「人力」三个维度,让整个过程能够:

  • 有效的转化使用者需求
  • 在时间内完成功能开发
  • 稳定的将系统部署上线
  • 平顺的运行与维护服务
  • 持续的优化与迭代专案

如何在正确的时间要求下,将投入资源效益最大化。


嗨,大家好!我是维元,一名擅长网站开发与资料科学的双栖工程师,斜杠於程序社群【JSDC】核心成员及【资料科学家的工作日常】粉专经营。目前在 ALPHACamp 担任资料工程师,同时也在中华电信、工研院与多所学校等单位持续开课。拥有多次大型技术会议讲者与竞赛获奖经验,持续在不同的平台发表对 #资料科学、 #网页开发 或 #软件职涯 相关的分享,邀请你加入 订阅 接收最新资讯。


<<:  近似最短路径 (9)

>>:  Day 28:我的部落格没有人气怎麽办?

从 IT 技术面细说 Search Console 的 27 组数字 KPI (25) :Search Console 可以看到到多少 Ranking Factor 呢?

Search Console 是 Google 用来跟网站经营者沟通对话的报表,呈现 Google ...

[Day10]字符函数

字符函数,又分为大小写转换函数及字符处理函数。 大小写转换函数: 字符处理函数: 下篇会从日期单列函...

简报版-第二章-从ATM提款与刷卡看资安

其实原本最初规画想要做Index方式的纪录,然後多增加一些没写到的面向 不过,总是计画赶不上变化 ...

【D24】制作讯号灯#7:制作个股的MA灯号

前言 加权指数和法人留仓那些都已经完毕了,现在回到个股的讯号灯。这次要做的是MA(移动平均数)的穿越...

浅谈无状态这件事 Stateless

无状态stateless指的是web客户端在发送请求时,到底需不需要一直带着验证资讯,或者是所谓的上...