团队介绍&学长采访

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

posted @ 2017-10-13 01:39  hotcode5  阅读(762)  评论(3编辑  收藏  举报