任务管理平台-Teambition使用指南

前言:最近一段时间都没什么空,正好有个美好的周末.然后就泡在工作室了.突然发现工作室的新人都不怎么会用teambition管理任务.于是就写了这一篇文章.

介绍: Teambition 是一个协作化的项目管理平台,帮助企业以实时协作的⽅式实现更高效的项目管理。在 Teambition 上,所有项目成员都可以实时了解到项目的最新进展,一起推动项目。 –摘自Teambition开始使用

使用指南:

  1. 登录和注册账号(务必要记住自己注册的账号和密码,或者最直接用微信登录)
    2016-07-30 09:48:36屏幕截图
  2. 向工作室内负责项目管理的童鞋发出邀请申请.
    管理者会通过下面的方式给你发出邀请:
    (1) 你已经在红满堂工作室企业版了,所以管理者可以直接邀请(或者是跟项目管理人合作过的).
    2016-07-30 10:01:35屏幕截图
    (
    2)或者提供你自己的邮箱(注意!是注册teambition的邮箱)给管理者.
    2016-07-30 10:09:41屏幕截图
    (3)扫二维码或者访问邀请链接.
    1
  3. 使用.
    2016-07-30 10:20:13屏幕截图
    (1)每一个灰色块都是任务的阶段,可以自定义名称.一般有”待处理”,”进行中”,”已完成”三个阶段.
    (2)每个灰色块里有任务列表,你可以通过点击下面”添加任务“来添加自己的任务.
    a.如果这个任务是多人协作,那么就可以在参与者那里添加你的队友.这样你的队友就会收到teambition的任务提示.
    b.可以点击”更多“来设置截止时间,优先级和重复周期.
    2016-07-30 10:26:24屏幕截图  2016-07-30 10:28:04屏幕截图
    (3)如果项目负责人已经分好任务的话,你所需要做的就是领任务,设置截止时间.
    a.看好你能接什么任务,衡量自己的能力.点击执行者,将执行者改成你自己,给自己设定一个完成任务的时间.
    ps:如果是小任务的话,那就将点击下面小任务对应的头像,改成你自己的头像
    b.如果你对任务不太了解,或者说有疑惑,可以在下面评论区@人,留下你的疑问.(评论区的记录可以保留,有备份,这样对项目有很大帮助的)
    2016-07-30 10:34:44屏幕截图
    (4)最好下载一个teambition的手机客户端,以便随时收到任务信息和其他队友的进度反馈(以便项目管理者可以管理)
  4. 进阶~
    teambition官方文档指南
  5. 肥老板的话~
    Teambition用来分配任务,设定开发时间节点,任务我们一般我们不主动安排指定给某个人,我们希望大家能发挥主观能动性,主动领取任务,领取任务后,记得把任务执行者改为自己的头像,这样代表这个任务已经被领取,避免两个人在不知情的情况下同时做同一个任务,设置任务执行者之后,记得把任务拉到“进行中”这个项目阶段,以便项目经理知道你当前的工作状态,任务完成后,不能直接勾选任务完成,而是把任务拖到“待测试”项目阶段,以便项目经理做功能测试,如果测试不通过,项目经理把任务拉回“进行中”,并注明不通过原因,回炉再造,如果测试通过,项目经理把项目拉到“已完成”,代表任务测试通过,当所有的任务都投产到生产环境时候,才勾选任务,代表任务完成。
  6. 下期预告~我们的聊天工具–堂聊
    2016-07-30 11:23:21屏幕截图

合租宝开发总结

合租宝一开始的开发构想源于老佛爷和肥老板,一开始我是抱着做着玩玩的心态搞的,刚好上学期招新有一波新人进来,让他们练练手做了一些重构的页面(虽然最后重构的页面还是我做了),UI设计上我是参考了Airbnb,海琦出图,后端基本上就我自己一个人搞了。

一开始的设想很简单,合租信息发布平台。原以为趁着寒假一两个星期就搞定了,结果遇到不少问题,一直延期到五月份才正式上线,效果不是很理想,产品虽然没有说流产但也称不上成功,我希望后续的开发人员或开其他新项目的人员在看到我的总结时能有所收获。

分为以下几个方面:

  • 做好产品的定位。
  • 确定好开发分工。
  • 如何循序渐进迭代完善一个系统。
  • 代码的安全性与信息加密。
  • 前后端的插件化与模板化。
  • 部署上线注意事项。

一、做好产品的定位

听起来很虚,实际上很重要,在做一个新项目的时候,一定要做好产品的定位。什么是产品的定位?那就是我这个东西开发出来的目标人群是谁?核心功能是什么?如何为用户提供他们想要的服务?

之所以把它列在总结的第一位,因为合租宝1.0开发出来之后我才发现好像不是很符合我们最初的构想,明明是合租信息发布平台,变成了房源信息发布平台,就这样丧失了合租的特色和竞争力,果然推出来效果很不理想。很多时候我们做东西不假思索,没有想清楚就干了,最终结果往往不尽如人意,做出来的东西要是白做了那还有什么意义,所以想清楚,做好定位非常重要!!!

二、如何做好开发分工

我一直说我们项目开发的模式有点土八路,随心所欲地发布任务,随心所欲地写代码,随心所欲地在某个时间点提交任务,又随心所欲地在某个时间点审查任务完成的状况。

如何消灭这种随心所欲?让一切开发的流程变得有条理井然有序是我一直在想的。很多时候我们的随心所欲来源于项目的目标感、流程感不够强烈,由于开发经验不够丰富,很多时候又被开发中遇到的各种问题产生的延迟掩盖了目标感和流程感,这一切都需要项目leader做好一个整体的把控。

一个项目开始做了,嗯,为了避免后期出现更多问题,leader首先应该想清楚设计好了没有?可行性考虑好了没?可扩展性怎么样?

接着,项目一共分为哪些功能模块?实现的难度怎么样?开发成员的开发能力与水平怎么样?功能模块下面又分为哪些子模块?这些也是leader需要考虑的,做好开发难度、开发周期的评估,当然这种非常精确的评估是很难的,但起码做到不能偏差地太远,而且需要leader在开发的过程中不断做调整。特别是开发周期的评估特别重要,做好有弹性而又能给成员带来紧迫感压力的开发周期评估。

OK,下来才是终于到分工了,无非是设计出图、重构、前后端对接、测试、上线。我们希望项目组的每个成员都能在开发中不断调整自己的评估能力,比如说设计,这几天有哪些时间有空,能完成多少出图的任务,leader也要及时跟进,说哪天完成一定要交货。同时做到合理分配,不要让某个成员干等着另一个成员浪费时间,不要让任何一个人闲下来!!!

在出图-重构-前后端对接-测试-上线这个链条上,越后面的环节发现前面的环节出现问题时应及时找前面的人解决,责任到人,精确定位。做好这几个环节的对接把控,出来的货质量会高很多,特别注意在前后端对接上,商量好接口,最好是以文档的形式定下来,这样到后面有利于系统的维护和扩展。举个例子:

比如前端就显示用户个人资料要后台一个接口,OK,那么文档应该是这样子的:

接口功能:返回用户个人资料

接口url: hzb.scau.edu.cn?c=user&a=getUserInfo&jsoncallback=?

需要参数:{ uid:用户id(必须)  user:用户昵称(必须)  para:其他参数(可

选) }

返回数据:{ age:年龄  tel:手机  email:邮箱 …}

这样子,按照这个标准去对接,然后各司其职就OK了,而且以后我们在扩展系统比如说需要修改返回用户信息代码,返回更多其他信息时,一看文档,很明确,到user控制器里修改getUser方法即可,并更新文档。

 

 

三、如何循序渐进迭代完善一个系统

之所以上面说那么多,因为我们有太多项目延期和烂尾。

这是一个我一开始就犯了的毛病,刚开发时就想太多我要实现怎样的功能,开发过程中又想到我要开发那个功能,结果,想太多,尾大不掉真正实现出来寥寥无几,严重的是影响原有的开发周期和规律,希望大家以我为鉴。

比较合理地做法是,在产品什么代码都还没有的时候,想一个最简单的产品原型,先不要想什么其他杂七杂八的功能,先不要考虑UI要多么完美,直指项目的核心功能,把它实现,OK实现了,定为v1.0版本。

接着进入第二轮迭代,小修小补在大版本号后加小版本号,比如在1.0版本上做些小修改,完成变成v1.1版本;如果是大版本的迭代,增添了很多功能,修改很大,完成变成v2.0。

这样版本迭代的好处在于,在不同阶段集中精力做好应该做的事情,有点类似于敏捷开发的原理,我不要求毕其功于一役,做出来的东西完全符合最初系统的设计,我每一轮迭代定好要完成的目标,循序渐进,不断添砖加瓦,每次完成既定的目标,当你迭代到一定轮数的时候会发现,系统这座建筑慢慢变得壮丽起来了ヾ(o◕∀◕)ノヾ,离你的目标越来越近了。

四、代码的安全性和信息加密

这是很多童鞋一开始开发的时候会漏掉但又非常重要的东西。

代码怎么写比较安全?这是个非常高深的问题,可以说,没有代码是绝对安全的,正如白帽子说的,安全的本质是信任,你要划分好哪些东西是在信任域内,哪些东西不在信任域内,以信任域内的东西为基础,才能让安全成为有源的活水。

在web开发中,最重要的安全理念就是不要相信任何客户端浏览器提交的数据,这也就意味着你需要多用户提交的任何数据和文件进行审核过滤。在代码实现中具体表现为:

1、验证用户提交数据的合法性

比如用户提交了一个信息,在我们的预想中它应该是一个整数,但是假如恶意的用户提交的是html代码呢?或者js代码,或者其他字符,这个时候就需要对其进行过滤,在TP中使用I方法加数据类型号,至于其他类型的数据一次类推。其实过滤的效果就是检查用户提交的数据是否符合你的预想,如果不符合,强制转换成符合你预想的数据格式,如果转换失败,抛出异常报警。这是安全中最基本的常识,做好这一步,你已经可以过滤掉相当一部分的SQL注入和XSS攻击。

2、防止SQL注入

这是个老生常谈的问题,也是WEB开发中最受重视的安全问题,因为数据库就是你的web应用的核心,数据挂了,数据没了,你就什么都没了!

防止SQL注入,需要做好字段验证,执行SQL语句时查询尽量使用数组作为查询条件,充分利用各大框架的预处理机制,慎重直接使用SQL语句操作数据库。

3、文件上传安全

其实原理也是一样的,防止恶意用户上传恶意脚本攻击服务器,需要对文件后缀、文件类型、文件大小以及上传图片文件的合法性检查,比如合租里就有上传图片文件的大小、类型等校验

4、信息加密

信息加密最大的作用是防止别人爬你的站点的数据,核心是加密算法,特别是跟账号相关的信息和其他队机密性要求比较高的信息需要在js按照约定好的加密算法加密,再在后端进行解密和验证。

五、前后端的插件化和模板化

在开发的时候,要注意代码的复用,不要重复造轮子。在前端体现为将经常使用的js代码功能块插件化,需要使用相应功能的时候引用即可;在后端的代码逻辑上体现为模板化,可以配置化的东西或数据操作尽量做成可配置化,特别注意不要在控制层操作数据,model可以根据业务逻辑的特点进行一定程度的抽象化和封装。

六、部署上线的注意事项

合租宝上线前两个星期遇到非常多的问题,还受到攻击,期间数据库挂掉一次,让我印象深刻,特别注意几个问题,数据库权限控制、防火墙、目录操作权限控制、数据备份,其他的小问题可以参考:

http://mp.weixin.qq.com/s?__biz=MzA4MDMwOTk0OQ==&mid=510706784&idx=1&sn=346fbb220b7c8fbe5db7436e399e4c40&scene=20#wechat_redirect

PS.建议装个安全狗