在 “学习系统方法论:开篇” 一文中,简要介绍了系统方法论的基本轮廓。 俗话说:学以致用。 先用系统方法论来尝试下管理自己的软件开发活动。
首先给一张之前总结过的软件开发全景的思维导图:
这张思维导图的优点在于:基本囊括了软件开发中的绝大部分活动,无论是宏观还是微观,一览无余。 当然,由于信息量太大,不容易一下子消化;且有些关键信息没有体现在这张导图里。本文将以这张导图为基础,以系统方法论为指导,来加以完善。
如果将软件开发活动管理作为一个系统来看待,那么,其功能和形式分别是什么呢 ?
系统功能通常可以通过 “输入-输出” 模型来审视。软件开发活动的输入,通常是问题、优化、需求、项目、进度同步等,输出通常是软件增强、及时答复等;因此,软件开发活动管理的功能是,高效、准确地将问题、优化、需求、项目、进度同步转化等转换为可以解决问题和帮助他人的软件增强、及时答复等。
这个整体功能是通过大量子功能的组合来完成的,这些子功能包括:需求理解、项目支持、沟通与共识、开发实现、偿还技术债务、运维与护航、放松小憩、总结与写作等。子功能又可以分解为更细粒度的微功能。比如开发实现,可以分解为:详细设计、接口设计、阅读代码、代码实现、单测编写、CodeReview、自测、QA 与预发测试、部署上线。
分解的策略是:将每个子功能分解到在自己能力范围内的微功能为止。如果分解的功能感觉不太有把握,那就继续分解。绝大多数事情,大抵都能分解为:吃饭、睡觉、走路、打电话、看、听、想、动手等基本动作。
该系统的形式是怎样的呢 ? 有哪些元素 ? 元素之间的形式关系是怎样的 ?
首先,找到这个系统里的元素,即操作数。 原始操作数是问题、优化、需求、项目、进度同步, 而要搞定这些,需要通过沟通先转译成具有优先级的目标集和任务集。 而要执行这些目标与任务,则要涉及到协调相关人员,要恰当分配自己的时间、精力、体力和智力、资源,往往还需要工具的辅助。
这样,就析取出了该系统里的若干主要元素: 优先级、目标、任务、人员、时间、精力、体力和智力、资源、工具。通过恰当地分配和组合这些元素,从而能够执行各种子功能,完成目标和任务。
系统是具有层次性的。可以将整个系统划分为两个子系统:规划子系统、调度子系统和执行子系统。
综上,可画出软件开发活动管理系统的基本图:
有了软件开发活动的全景图和管理系统图,就有了工作的基础。接下来,可以讨论一些提升效率的事情。
面对波涛汹涌的需求、项目、问题、事务等,面对各种冲突的争先恐后的事项,如何能够镇定自若、从容不迫地安排好各种事项呢 ? 有哪些可以作为事件的优先级策略呢 ?
最核心的优先级策略是:始终聚焦”关键事项法则“。 哪些事情可以作为关键事项呢 ?
注意,关键事项不一定紧急事项。紧急事项,从某种程度上看,是关键事项有遗漏,导致不能有效应对现实变化产生的结果。可以从紧急事项中推断遗落的关键事项。
沟通,是谋杀时间和低效率的诟病因素之一。 其实,低效率的沟通,往往是一些不自觉的不良习惯导致的。只要尽可能遵循一些基本的准则,就可以逐渐提升沟通的效率。
沟通效率的基本准则有:
原文:https://www.cnblogs.com/lovesqcc/p/12359003.html