1. 团队介绍


刘畅

博客园ID:森高Slontia

身份PM

个人介绍:

弹丸粉 || 小说创作爱好者 || 撸猫狂魔

我绝对不知道,我一个写代码的怎么就当PM去了?


张安澜

博客园ID:MinstrelZ

身份:开发

个人介绍:

张安澜,来自北京航空航天大学2015级计算机学院,喜欢旅游,修仙党,lol大乱斗选手,吃鸡萌新,喊666贼6


辛德泰

博客园ID:Alethia

身份开发

个人介绍:

我是ZnTcTi


窦鑫泽

博客园ID:AlenDou

身份开发

个人介绍:

大家好,给大家介绍一下,这是我自己@窦鑫泽。

喜欢在行末尾写左大括号{,

代码字体喜欢consolas,

喜欢空格而非tab,

最喜欢的语言是Python,

//最喜欢的游戏是2k

比较喜欢和大家一起合作做东西,希望可以多向大家学习,共同解决遇到的技术性的困难,做出一个有价值能应用有用户的项目。


赵奕

博客园ID:ohazyi

身份开发

个人介绍:

擅长做梦,喜欢折腾


方科栋

博客园ID:科栋

身份测试

个人介绍:

零经验但喜欢解决问题带来的成就感,抱着“不选软工,枉入六系”的心态选课,愿意为此付出足够时间。

2. 学长采访


  我们有幸采访了Phylab创始人之一的刘乾学长。Phylab的诞生为北航学子在物理实验课程的学习带来不小便利,而它也是我所知的唯一一个被下一届同学接管的项目,我们认为刘乾学长的宝贵经验一定能带来不小的帮助!

  由于14级接手Phylab的Default团队也选择刘乾学长作为采访对象,部分重复的问题我们没有再次询问,这里引用Default团队采访的博文地址:

  http://www.cnblogs.com/Default1406/p/5926458.html

2.1 开发框架是如何选择的?有没有考虑到框架性能和开发难度方面的问题呢?

开发框架的话,主要是从需求和队员熟悉的技术来考虑的。这个主要交给最熟悉的同学来考虑啦,谁最熟悉这个语言,那就听他的决定。当时我们是一个非常擅长写后端的同学来负责项目的后端框架的,我负责总的框架流程。前端的话也是由最熟悉前端的同学来选择就可以。如果大家都是新手,建议就用最简单的,最容易上手的框架。不要轻易尝试坑很多的东西,那些在我们现在紧张的迭代环节里不太适合~

2.2 那对于那些不熟悉网站开发的同学,他们是怎样权衡学习和开发的时间的呢?是提前学习还是边开发边学习呢?

唔,我大概介绍一下我们网站主要需要effort的部分:一个是前后端,这是一部分;另外主要就是python的脚本。每个物理实验都有对应的脚本,在服务端启用Shell调用python脚本得到相应的latex编译文件,再启动latex编译环境生成PDF的。所以我们的重点或者说主要的工作量在后端的脚本部分,前端和用户逻辑的后端部分其实不是很复杂。你们初期也可以规划一下各个部分大概的任务量,然后选定多少个同学来完成。

语言的话尽量找简单易用,以后对工作和学习也很有帮助的。我们当时选用python也是因为这点:当时团队里有python基础的同学不多,最后是我和另外两个同学一起学习,互帮互助做出来的。PM在一开始也要考虑好队员的心理状态。难度技术大的活就交给专家去做,稍微基础的任务就交给初学者去做,最后大家都能有所收获。而且从大家熟悉的语言出发,比如你们OO上比较熟悉的Java语言,就可以选用Tomcat来做。

2.3 这个网站是如何推广开来,让全校同学都知道并使用的呢?

推广这个我们当时也花了一些心思,一开始是从北航贴吧,北航各种系群里转发,以及让学弟转发试用。因为当时物理实验已经开始了,大家也确实有这个需求,所以第一天访问量激增,记得最高的时候一天有1500访问量。我觉得你们也可以从贴吧入手(贴吧的人气还挺高的),建个用户群收集反馈。我们也举办了一些小小的活动,比如寻找网站bug发红包的活动。

2.4 那有没有遇到什么比较致命的bug呢……?最终是如何解决的呢?

有很多的,最终就是...能绕过去的就先绕过去,绕不过去的就努力攻克。

比如我们最开始生成速度还行,但是生成PDF时占用内存太多了,经常导致网站宕机。记得最开始是一个xelatex编译进程就会占用200M内存,跑4个我们的服务器就挂了(阿里云1G内存,自租)。但是并发数是4也太少了,我们就找了许多方案。后来我尝试了许多latex的编译选项,看了一些官方文档,用了LuaLatex来编译,内存占用很少,最后并发数提升到了20左右。然后我们还在前端做了一些小改动,比如说随机等待某个秒数后再发送请求到后端,开始生成。为了用户体验,我们在等待的时候加了一些离线的小游戏,不过后来这个feature因为游戏加载比较慢被砍了。

当时还有一个比较麻烦的问题,网站一直生成不了PDF,就是本地运行latex编译,没问题,但网站请求调用shell,就是用不了。这个后来发现是因为系统默认的Python版本跟Apache的版本不同,有一个软链接设置出现了问题(因为两个版本的某个模块名字一样,但是内部函数接口改了),最后秉承着先能用再说的原则,把系统的默认python改到了Apache的那个。

还有就是守护进程的问题,网站后端的权限是有限的,要考虑存储路径的权限问题。当时这个坑是我跟网站后端同学结对解决的,有些时候两个人的思路真的更加开阔。之前那位后端同学解决了不少时间来解决,后来没找到问题。我跟他一起抽丝剥茧来看,综合两个人的角度与视野来看待问题。两个人犯错误的概率会降低很多,解决问题的思路也会开阔很多。所以建议过几天就结对编程一次,如果团队能一起编程就更好了。据我了解,你们石浩然学长的队伍(就是陈彦吉助教在的队伍)去年基本上保持了团队同时同地开发的节奏,所以我觉得这也是为什么他们选择了一个很新又很有挑战性的框架,但最终却做成了,做得还不错。

2.5 学长在项目开发中有没有什么经验和教训可以分享呢?

(1) 尽早确定框架,不要纠缠过多。确定了就开始学,很纠结就咨询咨询高手。Alpha阶段前有一周空闲时间,不要闲着,大家都动起来。该学习技术的学习技术,该确定需求优先级的确定优先级。PM最好能在这一周前再早一周考虑问题,定制一下整个项目的roadmap,然后把每个人的工作量与实际情况考虑清楚,按照不同人的熟练度分配不同的任务。一句话:PM早开始,多操心;

(2) 如果有人选了编译,会在第七八九周出现离线掉队跟不上的情况。如果提前预知了这种情况,那就让这些同学努努力,提前完成项目的任务。早晚都要完成的,编译没压力,你就在软工上给他们施加一些压力,这样他们后面会感激你的哟;

(3) scrum一定要尽快,不要聊闲话,不要在会议上讨论只涉及到一小部分同学的细节处理方案。有问题下来私聊,scrum就用来汇报情况。当然如果能每天大家都一起去新主二楼协作开发,随时沟通,我觉得scrum会很简短。但是这个适合于体量小的团队,超过4人就不现实了;

(4) Alpha阶段先实现最最最核心的需求,其他一切从简。比如Alpha阶段就没必要实现邮件激活账号,忘记密码找回这种功能了(当然如果框架内置了非常方便的解决方案,那随手一加也可以)。一定要保证核心需求的开发时间占开发总时长的70%以上。我建议是Alpha阶段没结束就release一个版本出来,然后就可以建起用户群,收集反馈等。如果是你们的网站的话,基本上Alpha中期就到了一些课程的结课,建议你们推广从这些课程入手,首先你们寻找一些开9周课的课程资源上传到网站上,限时免费下载等等。先拉到用户,再考虑下一步的需求;

(5) 最后就是,贡献一定要符合实际情况,也不要简单地用时间来衡量。解决一个问题,使用一个框架快速开发这些都是有价值的,提前确定好贡献评估方法。跟大家讲清楚,打酱油是没分的,要想获得首先得付出。

  

  在这里为刘乾学长耐心、细致的回答表示感谢!

  作业实际花费时间记录:1.5h

团队介绍&学长采访的更多相关文章

  1. [软件工程]团队介绍&学长采访

    项目 内容 这个作业属于哪个课程 2019春季计算机学院软件工程(罗杰) 这个作业的要求在哪里 第一次团队作业 - 采访! 我们在这个课程的目标是 团队开发,合作学习 1.团队介绍 岗位 人员& ...

  2. “介绍一下自己吧”——记2020BUAA软工团队介绍和采访

    写在前面 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任建) 这个作业的要求在哪里 团队作业-团队介绍和采访 团队介绍 团队名称 我们是 BUAA软软软件工程小队 ,简称 ...

  3. no_code团队介绍和bingduoduo项目采访

    项目 内容 课程:北航-2020-春-软件工程 博客园班级博客 要求 团队作业-团队介绍和采访 成员简介 name avatar intro PM Dev Test UI/Front-End 伦泽标 ...

  4. [敏捷软工团队博客]The Agiles 团队介绍&团队采访

    项目 内容 课程:北航-2020-春-敏捷软工 博客园班级博客 作业要求 团队作业-团队介绍和采访 团队名称来源 The Agile is The Agile. 敏捷就是敏捷.我们只是敏捷的践行者罢了 ...

  5. 【BUAA软工】第一次团队作业——团队介绍

    项目 内容 班级:北航2020春软件工程 博客园班级博客 作业:团队介绍与采访往届团队 团队作业-团队介绍和采访 Part I 团队成员介绍 有图有真(jia)相 大名 个人介绍 角色意向 李PX 来 ...

  6. 团队介绍 | 魅动 Magic Motion

    团队介绍 | 魅动 Magic Motion 魅动 Magic Motion 是专注于研发.设计和生产智能化私密生活用品的创新品牌.魅动 Magic Motion 将无线移动通信技术与私密生活产品相结 ...

  7. 用Django做一个团队介绍

    所用工具 Pycharm 社区版 Django 2.x Python 3.6.4 总目录 settings中的设置 总的路由设置 templates中的index.html文件 <!DOCTYP ...

  8. MzzTxx——团队介绍

    项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 团队项目-团队介绍 我在这个课程的目标是 提升工程能力和团队意识,熟悉软件开发的流程 这个作业在哪 ...

  9. BUAA防脱发第一抗连——团队介绍

    项目 内容 这个作业属于哪个课程 2021学年春季软件工程(罗杰 任健) 这个作业的要求在哪里 团队项目-团队介绍 我在这个课程的目标是 锻炼在大规模开发中的团队协作能力 这个作业在哪个具体方面帮助我 ...

随机推荐

  1. DBA手记-BBED 的说明

    在10g中连接生成bbed:cd $ORACLE_HOME/rdbms/libmake -f ins_rdbms.mk $ORACLE_HOME/rdbms/lib/bbed 11g中缺省未提供BBE ...

  2. BZOJ 2648: SJY摆棋子(K-D Tree)

    Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 6051  Solved: 2113[Submit][Status][Discuss] Descript ...

  3. 【Linux】日志分析及管理

    日志的作用   用于记录系统.程序运行中发生的各种事件   eg: [root@localhost ~]# yum install -y httpd [root@localhost ~]# tail ...

  4. $.trim() 去除空格方法 (验证使用)

  5. webpack管理输出

    管理html的bundle依赖 html-webpack-plugin可以自动给html添加bundle文件 npm install --save-dev html-webpack-plugin co ...

  6. PHP中的递增/递减运算符

    看这段代码 <?php $a=10; $b=++$a; //此语句等同于 ; $a=$a+1 ; $b=$a echo $a."<br>"; echo $b; ? ...

  7. HIve数据存储

    表 Table 内部表 Partition 分区表 External Table 外部表 Bucket Table 桶表 内部表 分区表 parttion对应于数据库中的Partition列的密集索引 ...

  8. hadoop docker集群搭建

    获取镜像 #本机内 docker pull ubuntu:16.04 编排镜像 启动一个容器 #本机内 docker run -i -t --name master ubuntu:16.04 在容器内 ...

  9. 物联网通信 - RESTDemo示例程序(Python版本)

    QQ:505645074 下载地址: https://pan.baidu.com/s/1VHtni6rVslXkSBTW26jXTg GET接口 http://127.0.0.1:5000/test/ ...

  10. ILOVEYOU代码

    代码确实很简单...我是初学者,练手的. /* 文件名: Love.c 描 述: 打印字母和图形 */ #include<stdio.h> #include<windows.h> ...