summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHui Lan <lanhui@zjnu.edu.cn>2020-03-17 17:27:40 +0800
committerHui Lan <lanhui@zjnu.edu.cn>2020-03-17 17:27:40 +0800
commit04128d6ccf1d176c81106c0f14d3930941f14910 (patch)
tree95a8e2cea9900942a4c234c853e800086b52c359
parent6c1e0fd7a97fe7e77a25aa905d2ed590c43aabad (diff)
DialogOnSoftwareProjectManagement.rst: spm lecture notes on 13 March 2020 - instruction language: Chinese.
-rw-r--r--DialogOnSoftwareProjectManagement.rst429
1 files changed, 428 insertions, 1 deletions
diff --git a/DialogOnSoftwareProjectManagement.rst b/DialogOnSoftwareProjectManagement.rst
index ef84594..f067190 100644
--- a/DialogOnSoftwareProjectManagement.rst
+++ b/DialogOnSoftwareProjectManagement.rst
@@ -4,7 +4,7 @@ Dialog On Software Project Management
:Authors: Hui Lan (lanhui at zjnu.edu.cn)
-:Version: 0.0.1 of 2020/03/16
+:Version: 0.0.2 of 2020/03/17
.. contents:: Table of content
@@ -17,6 +17,433 @@ This book contains a series of special lecture notes in a dialog form on softwar
+
+Friday, 13 March 2020
+=====================
+
+*Quiz review - The Cathedral and the Bazaar - Project management software - Kanboard - Sustained maintenance efforts - Project mission - Standard code tree*
+
+Morning section
+----------------
+
+2020-03-13 7:57:26 初阳软工171 伍泰炜(2728735169)
+[表情]
+
+2020-03-13 7:57:45 网络171许晓鹏(892376699)
+[表情]
+
+2020-03-13 8:00:05 初阳软工171 伍泰炜(2728735169)
+201736900125
+
+2020-03-13 8:00:10 软工初阳171 刘莉莉(1196448461)
+201736900108
+
+2020-03-13 8:00:17 软件工程 张珣(1955357976)
+201732120109
+
+2020-03-13 8:00:18 初阳软工171 吴贞娴(1395588359)
+201732120108
+
+2020-03-13 8:00:22 初阳软工171 余慧(945168786)
+201736900117
+
+2020-03-13 8:00:22 初阳软工171叶红霞(1655602611)
+201736900115
+
+2020-03-13 8:00:23 初阳软工171袁世家(1515245651)
+201739230123
+
+2020-03-13 8:00:23 软工初阳171周佳威<zhouwys@qq.com>
+201736900130
+
+2020-03-13 8:00:24 初阳软工171 王海榕(1012635788)
+201732120105
+
+2020-03-13 8:00:24 初阳软工171 蒋佳玲(1850424414)
+201732120103
+
+2020-03-13 8:00:28 系统消息(10000)
+初阳软工171 陈俊蕾撤回了一条消息
+
+2020-03-13 8:00:28 唐叶尔(1768559501)
+201736900111
+
+2020-03-13 8:00:30 网络171许晓鹏(892376699)
+201730210128
+
+2020-03-13 8:00:33 软件工程初阳1701 徐梦旗(2663479778)
+201732120124
+
+2020-03-13 8:00:37 初阳软工171 陈俊蕾(1223259604)
+201736900103
+
+2020-03-13 8:00:40 重新做人(1344914885)
+201736900113
+
+2020-03-13 8:00:40 软件工程 王雪洁(249795581)
+201732120106
+
+2020-03-13 8:00:44 初阳软工171 陈肖飞(1662727361)
+20173690104
+
+2020-03-13 8:00:46 蓝珲(1348141770) 大家早上好
+
+2020-03-13 8:00:52 网络171—董文文(2373706002)
+201730210303
+
+2020-03-13 8:01:00 初阳软工171 徐闰钞(374526027)
+201736900127
+
+2020-03-13 8:01:03 网络171许晓鹏(892376699)
+早上好
+
+蓝珲(1348141770) ===============================================
+
+蓝珲(1348141770) 我们上次课讲了开源软件的收费模式,以及开源软件的许可证。
+
+蓝珲(1348141770) 还做了一个Quiz。
+
+蓝珲(1348141770) ::
+
+ [True/False] Free software means zero-cost software.
+ [True/False] Zero-cost software cannot be proprietary.
+ [True/False] If the source code is visible, then the software is open source.
+ [True/False] Open Source software cannot be used for commercial purposes.
+
+蓝珲(1348141770) 我觉得答案都是F。
+
+蓝珲(1348141770) 大家有没有不同意见的?
+
+蓝珲(1348141770) Free software means zero-cost software. 说得过于绝对。 RStudio就可以收费啊。
+
+蓝珲(1348141770) Zero-cost software cannot be proprietary. 如果这个zero-cost是对用户来说的话,其实大家在Apple Store免费下载的很多软件都是私有的。
+
+2020-03-13 8:05:10 计非181 王智洋(1162466610)
+201830220719
+
+2020-03-13 8:05:18 网络171-侯新苗(953957823)
+20173021034
+
+蓝珲(1348141770) Simple Note是不是私有的?
+
+蓝珲(1348141770) https://simplenote.com/
+
+蓝珲(1348141770) 看一下它的主页,好像没有说是open source的,许可证的信息也没有。
+
+蓝珲(1348141770) Simple Note下载使用是免费的,有些额外功能需要付费。
+
+蓝珲(1348141770) If the source code is visible, then the software is open source. 如果仅仅是代码可见,但是许可证是私有的话,就不是open source的。
+
+蓝珲(1348141770) Open Source software cannot be used for commercial purposes. 这个也是False。 RStudio就是例子。它有不同的收费计划(pricing plan),收费是用于商业目的。
+
+蓝珲(1348141770) 以上是Quiz的内容。
+
+蓝珲(1348141770) 我还要求你们去读课本的第二章。大家都已经读完了吧?
+
+蓝珲(1348141770) https://producingoss.com/en/getting-started.html
+
+蓝珲(1348141770) 我估计有部分同学还没有开始读 -- 还没有开始读的要开始读起来了。
+
+蓝珲(1348141770) 你们中文版的那个可以做成电子书吗?
+
+蓝珲(1348141770) https://producingoss.com/zh/
+
+2020-03-13 8:12:34 软工初阳171 应舸(1434305984)
+哪个中文版[表情]
+
+蓝珲(1348141770) https://producingoss.com/zh/ch02.xml
+
+蓝珲(1348141770) 就是上面这个。
+
+蓝珲(1348141770) https://producingoss.com/zh/
+
+蓝珲(1348141770) 把整个文件夹拷贝下来,应该是可以做成电子书的。
+
+蓝珲(1348141770) 大家可以试试看。我试过,没有成功。
+
+蓝珲(1348141770) 如果有人成功了,可以分享一下。
+
+蓝珲(1348141770) 因为我的英文比较好,所以英文看起来比较顺畅。
+
+蓝珲(1348141770) 但是阅读速度,还是读中文快的。
+
+蓝珲(1348141770) 中文的话,可以上下扫描。英文,只能老老实实一句一句读了。
+
+蓝珲(1348141770) 也有好处。
+
+蓝珲(1348141770) 另外一个阅读任务也出来了
+
+蓝珲(1348141770) http://catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/index.html
+
+蓝珲(1348141770) The Cathedral and the Bazaar
+
+蓝珲(1348141770) 大教堂与集市
+
+蓝珲(1348141770) 这个是比较有名了,讲两种软件开发模式。 篇幅较长。
+
+蓝珲(1348141770) 我也是教这门课才看一遍,以前听说过,一直没看,以为是讲生活信仰的。
+
+蓝珲(1348141770) [图片]
+
+.. image:: Cathedral-and-Bazaar-ToC.png
+ :height: 100
+ :alt: required reading sections
+
+
+蓝珲(1348141770) 你们只需要把箭头经过的章节读一下,其他的不用读(主要在讲fetchmail的开发细节)。
+
+蓝珲(1348141770) 这个,中文版也是有的,但是网上说翻译的比较烂。
+
+蓝珲(1348141770) 确实也不好翻译。
+
+蓝珲(1348141770) b站的一些字幕组来翻译估计会翻译的更好。
+
+蓝珲(1348141770) 我们先休息5分钟。
+
+2020-03-13 8:21:12 软工初阳171 何可人(1461938594)
+201736900106
+
+2020-03-13 8:21:40 软工初阳171 应舸(1434305984)
+201736900128
+
+2020-03-13 8:22:21 初阳软工171方梓安(2453122992)
+201736900105
+
+蓝珲(1348141770) ===============================================
+
+蓝珲(1348141770) 还有其他一些好书,Peopleware 之类的。
+
+蓝珲(1348141770) 这个大家工作后可以读读。
+
+蓝珲(1348141770) [文件]
+
+蓝珲(1348141770) 上面这个文件主要是专访熊节的文字实录。大家课后可以看看。
+
+蓝珲(1348141770) 不做要求。
+
+蓝珲(1348141770) 对了,你们的 Decide areas for improvement 还没有交。
+
+蓝珲(1348141770) 是我忘记在对分易创建提交目录了。
+
+蓝珲(1348141770) 现在已经创建,你们在下周一之前交上去。别忘了包括组员信息,这样方便我给分。这个是2分。
+
+蓝珲(1348141770) 看板 - Kanboard
+
+蓝珲(1348141770) 我想让你们用看板来管理软件项目。
+
+蓝珲(1348141770) 你们的账号密码我已经创建。
+
+蓝珲(1348141770) [图片]
+
+.. image:: TIM20200316180248.png
+ :height: 100
+ :alt: Kanboard for undergraduate thesis supervision
+
+蓝珲(1348141770) 我的看板是长上面这个样子的。
+
+蓝珲(1348141770) 卡片可以拖动到不同的泳道(swim lane)。
+
+蓝珲(1348141770) 有4个泳道。
+
+2020-03-13 8:37:28 初阳软工171 伍泰炜(2728735169)
+然而这是Github已经包含的一部分功能……
+
+蓝珲(1348141770) 原则上是“进行中(In Progress)”那个泳道卡片(任务)不能超过2个。这是为了避免 Multi-tasking。
+
+蓝珲(1348141770) Github只是拿来做代码版本管理的。
+
+蓝珲(1348141770) 看板肯定没有这个做得好。
+
+蓝珲(1348141770) 个人观点。
+
+蓝珲(1348141770) 我的目的是,我要看到你们管理项目的动态。
+
+蓝珲(1348141770) 也许你已经有动态了,但是我不知道。
+
+蓝珲(1348141770) 所以你要记录下来。
+
+蓝珲(1348141770) 看板这个功能很多团队协作工具都有的,比如Trello,JIRA。
+
+蓝珲(1348141770) 我们用的这个 kanboard 胜在轻量,简洁明快。
+
+蓝珲(1348141770) 你们以后去公司工作,可以自己部署在公司服务器。
+
+蓝珲(1348141770) 最多花一天时间,就可以部署好了。
+
+蓝珲(1348141770) 所以,你们从今天开始,就可以慢慢在看板上(http://118.25.96.118/kanboard)添加卡片了。
+
+蓝珲(1348141770) [图片]
+蓝珲(1348141770) [图片]
+
+蓝珲(1348141770) 每个卡片点进去是这样的。可以添加评论。
+
+蓝珲(1348141770) [图片]
+
+蓝珲(1348141770) 这个软件是个开源软件,法国人开发的,但是参与项目的人数前前后后也有200人了吧。
+
+2020-03-13 8:44:30 系统消息(10000)
+初阳软工171 伍泰炜撤回了一条消息
+
+2020-03-13 8:44:45 初阳软工171 伍泰炜(2728735169)
+[图片]
+
+蓝珲(1348141770) 你们登录一下试试。
+
+蓝珲(1348141770) 我们先休息5分钟。
+
+2020-03-13 8:45:40 软件工程 常思琦(995959606)
+201732120101
+
+蓝珲(1348141770) ===============================================
+
+蓝珲(1348141770) [图片]
+
+蓝珲(1348141770) 我们要做软件,首先要想想自己手里头有什么。
+
+蓝珲(1348141770) 现在老是喊创新。
+
+蓝珲(1348141770) 创新哪里有那么容易。
+
+蓝珲(1348141770) 根据辩证法,创旧到极致就是创新。
+
+蓝珲(1348141770) 很多所谓的创新,那叫一个惨不忍睹。
+
+蓝珲(1348141770) 我手头上有一个软件,我要把它开源,公之于众,怎么个搞法?
+
+蓝珲(1348141770) 把代码往github一扔,就完事了?
+
+蓝珲(1348141770) 在现阶段,你们搞开源,其实更多的目的是对自己的一种鞭策。
+
+蓝珲(1348141770) 看看自己有几天没有打卡了。
+
+蓝珲(1348141770) 比如这个 Benno Schulenberg 就是几乎天天都在打卡。
+
+蓝珲(1348141770) https://git.savannah.gnu.org/cgit/nano.git/log/
+
+蓝珲(1348141770) [图片]
+
+
+.. image:: nano-git-log.png
+ :height: 100
+ :alt: Benno Schulenberg's nano maintenance activity
+
+
+蓝珲(1348141770) 十年如一日的打卡,这样做出来的产品会不行?
+
+蓝珲(1348141770) Benno Schulenberg 是在创旧啊。
+
+蓝珲(1348141770) 说实话,我很佩服这个老哥的做事精神。
+
+蓝珲(1348141770) 这才是做软件,才是管理软件嘛。
+
+蓝珲(1348141770) 都是一行一行,实打实出来的嘛。
+
+蓝珲(1348141770) 开源后,要告诉这个世界你的软件是做什么用的。
+
+蓝珲(1348141770) 这个是 mission statement 里要包含的东西。
+
+蓝珲(1348141770) 还有比较重要的是描述你的软件的特色,
+
+蓝珲(1348141770) 与不足。
+
+蓝珲(1348141770) 特色大家都不会忘记。
+
+蓝珲(1348141770) 不足大家都不愿意提及。但是,这个确实是要提及的,而且是有帮助的。
+
+蓝珲(1348141770) 能够拉近人与人的距离。
+
+蓝珲(1348141770) 我们与圣人的距离很远,因为他的不足很少。
+
+蓝珲(1348141770) 我们提不足,其实是锚定期望值。
+
+蓝珲(1348141770) “我事先告诉你了哦,我的软件可能会随时崩溃,你可要经常存盘哦。”
+
+蓝珲(1348141770) 当然,我们把不足描述了以后,也是为了给以后的改进提供方向。
+
+蓝珲(1348141770) 介绍软件要尽量简洁明了,让别人理解你的软件。
+
+蓝珲(1348141770) 别炫技。
+
+蓝珲(1348141770) 把代码公开后,也有助你一开时就注意采取比较好的开发目录。
+
+蓝珲(1348141770) 不要把所有的文件都丢在一个文件夹下。
+
+蓝珲(1348141770) 除非你的项目只有很少的文件。
+
+蓝珲(1348141770) [图片]
+
+
+.. image:: courseobjectivesatisfaction-git-log.png
+ :height: 100
+ :alt: source tree for Course Objective Satisfaction
+
+
+蓝珲(1348141770) 比如我这个,只有两个文件,所以放在一个文件夹下也可以。
+
+蓝珲(1348141770) 项目的名字就是 “课程目标达成度”。
+
+蓝珲(1348141770) 不是很好的名字,是个功能性的名字。
+
+蓝珲(1348141770) 就是根据同学的各项成绩,算出一个班级的课程达成度。
+
+蓝珲(1348141770) 不过这个指标是有 bug 的。
+
+蓝珲(1348141770) 什么bug大家自己想。(参见 Goodhart's Law)
+
+蓝珲(1348141770) Code tree: src/, bin/, lib/, etc/, include/, test/, share/, data/, example/, doc/, README, LICENSE, COPYING, MANUAL, TUTORIAL, FAQ, ...
+
+蓝珲(1348141770) 大型一点的软件,一般会有下面的子文件夹与文件。
+
+蓝珲(1348141770) Code tree就是代码的目录结构。
+
+蓝珲(1348141770) src里面放源代码,.c, .py, .java之类。
+
+蓝珲(1348141770) bin里面放可执行文件。这个一般可以提供,也可以不提供,不提供的话,要确保用户能够很容易自己生成可执行文件。
+
+蓝珲(1348141770) 提供的话,就要考虑不同的CPU架构、操作系统了。
+
+蓝珲(1348141770) etc里放些杂七杂八的东西。
+
+蓝珲(1348141770) doc放文档。
+
+蓝珲(1348141770) LICENSE与COPYING选一个就好了,放许可证。
+
+蓝珲(1348141770) 现在我看到的情况是,COPYING用得比较多。
+
+蓝珲(1348141770) 这种标准化的软件项目目录是比较好的结构。
+
+蓝珲(1348141770) 我们休息5分钟。
+
+2020-03-13 9:15:03 初阳软工171 伍泰炜(2728735169)
+@蓝珲 应该没有行不行一说,Nano在做简单文本文件编辑时是不错。但不要希望用它来做复杂的编辑工作。其它的编辑器诸如'emacs','vim','gedit'都提供了文本着色以及自动文本格式化。而Nano只做最基本的编 辑操作,而不提供其它功能。而用户只要有需求就会尝试符合需求的软件。Linux平台的文本编辑器还有很多,vim,geditor,emacs等等,nano不是唯一的选择,也不能说是做的最好的。而且,nano的作者没有关心可怜的乌干达儿童。(玩笑)
+
+蓝珲(1348141770) ===============================================
+
+蓝珲(1348141770) 凡我不能做到的正义之事皆值得敬佩。
+
+蓝珲(1348141770) 10年在维护一个“简单”的东西,你说他图啥?
+
+蓝珲(1348141770) 值得深思。
+
+蓝珲(1348141770) 下课。
+
+蓝珲(1348141770) 这个大家看看。
+
+蓝珲(1348141770) 10-year Rule https://www.joelonsoftware.com/2001/07/21/good-software-takes-ten-years-get-used-to-it/
+
+
+.. image:: 10-year-rule-spolsky.png
+ :height: 100
+ :alt: Good Software Takes Ten Years. Get Used To it. JULY 21, 2001 by JOEL SPOLSKY
+
+蓝珲(1348141770) 我们下次课讲。
+
+2020-03-13 9:32:23 初阳软工171 伍泰炜(2728735169)
+英雄联盟也很厉害的,他从2009年美服开服,一直维护到今天,版本号从0到10。大家也来敬佩敬佩[表情]
+
+
+
+
Monday, 16 March 2020
=====================