团队介绍&学长采访
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
团队介绍&学长采访的更多相关文章
- [软件工程]团队介绍&学长采访
项目 内容 这个作业属于哪个课程 2019春季计算机学院软件工程(罗杰) 这个作业的要求在哪里 第一次团队作业 - 采访! 我们在这个课程的目标是 团队开发,合作学习 1.团队介绍 岗位 人员& ...
- “介绍一下自己吧”——记2020BUAA软工团队介绍和采访
写在前面 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任建) 这个作业的要求在哪里 团队作业-团队介绍和采访 团队介绍 团队名称 我们是 BUAA软软软件工程小队 ,简称 ...
- no_code团队介绍和bingduoduo项目采访
项目 内容 课程:北航-2020-春-软件工程 博客园班级博客 要求 团队作业-团队介绍和采访 成员简介 name avatar intro PM Dev Test UI/Front-End 伦泽标 ...
- [敏捷软工团队博客]The Agiles 团队介绍&团队采访
项目 内容 课程:北航-2020-春-敏捷软工 博客园班级博客 作业要求 团队作业-团队介绍和采访 团队名称来源 The Agile is The Agile. 敏捷就是敏捷.我们只是敏捷的践行者罢了 ...
- 【BUAA软工】第一次团队作业——团队介绍
项目 内容 班级:北航2020春软件工程 博客园班级博客 作业:团队介绍与采访往届团队 团队作业-团队介绍和采访 Part I 团队成员介绍 有图有真(jia)相 大名 个人介绍 角色意向 李PX 来 ...
- 团队介绍 | 魅动 Magic Motion
团队介绍 | 魅动 Magic Motion 魅动 Magic Motion 是专注于研发.设计和生产智能化私密生活用品的创新品牌.魅动 Magic Motion 将无线移动通信技术与私密生活产品相结 ...
- 用Django做一个团队介绍
所用工具 Pycharm 社区版 Django 2.x Python 3.6.4 总目录 settings中的设置 总的路由设置 templates中的index.html文件 <!DOCTYP ...
- MzzTxx——团队介绍
项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 团队项目-团队介绍 我在这个课程的目标是 提升工程能力和团队意识,熟悉软件开发的流程 这个作业在哪 ...
- BUAA防脱发第一抗连——团队介绍
项目 内容 这个作业属于哪个课程 2021学年春季软件工程(罗杰 任健) 这个作业的要求在哪里 团队项目-团队介绍 我在这个课程的目标是 锻炼在大规模开发中的团队协作能力 这个作业在哪个具体方面帮助我 ...
随机推荐
- 删除 center os7 openjdk
卸载CentOS7-x64自带的OpenJDK并安装Sun的JDK7的方法 第一步:查看并卸载CentOS自带的OpenJDK 安装好的CentOS会自带OpenJdk,用命令 java -ver ...
- C# 反射 Reflection Assembly
本章节带来的是反射,反射反射程序员的快乐. 一.什么叫反射 反射:是.net Framework提供给的一个方面metadata的帮助类,可以获取信息并且使用 反射的有点:动态 反射的缺点:1:稍微麻 ...
- mysql如何把一个表直接拷贝到一个新的表
一:在新表已经建立好的情况下 1,拷贝所有的字段 insert into new_table select * from old_table 2,拷贝部分字段表 insert into new_tab ...
- 【DB2数据库在windows平台上的安装】
- react脚手架环境搭建流程
1.安装与配置node.js:1.1软件下载地址:https://nodejs.org/en/,推荐下载.msi文件,其中npm已经集成在了node.js中.1.2 双击下载的.msi文件进行安装,安 ...
- 分享:Unity3D模型跟随鼠标移动功能的小脚本 (屏幕坐标和三维空间坐标转换)
using UnityEngine; using System.Collections; public class ModelsPosChange : MonoBehaviour { RaycastH ...
- 11-while循环基本使用
hm_02_第一个while循环.py def main(): i = 1 while i <= 3: print(i, 'Hello world') i += 1 print(i) 1 Hel ...
- jenkins + ansible + docker 代码集成发布
一.环境搭建 1. 安装Java 配java_home, /etc/profile 2.安装Jenkins 下载war包,用 Java -jar Jenkins.war或者 把war包放tomca ...
- Pytorch之Variable求导机制
自动求导机制是pytorch中非常重要的性质,免去了手动计算导数,为构建模型节省了时间.下面介绍自动求导机制的基本用法. #自动求导机制 import torch from torch.autogra ...
- 20155306 2016-2017-2 《Java程序设计》第1周学习总结
20155306 2006-2007-2 <Java程序设计>第1周学习总结 教材学习内容总结 第一章 Java有三大平台:Java EE, Java SE, Java ME Java S ...