技术标签: 对比 项目管理软件 禅道 coding 项目管理 码云
作为一个软件公司的管理人员,在项目和人员多起来后,就需要通过系统来对项目和人员进行管理。
我们是典型的软件外包公司,专为客户定制软件,所以我们的业务都是项目型的。因此,在管理模式上,我们就要用所谓的敏捷开发。
到目前为止,我们同时进行的项目有四五个,人员有十来个。
我们都是土枪土炮,PM(Project Manage)的管理不是专业出生,对敏捷开发的模式和精髓也是一知半解。因此,寻找一款适合我们使用的项目管理软件,就需要试用筛选。我们的基本需求有如下几点:
有了以上基本需求,如果还有其他功能,则是锦上添花。
在网上搜索相关资料,并进行了试用的,项目管理软件有:禅道、JIRA、Redmine、Coding,任务协作软件有:Teambition,源码托管的有:Gitee(码云)。
各个产品都有自己的亮点,我只是按照我们自己的需求来进行选择,然后将这个试用体验分享出来,供大家参考。所以没有贬低任何一个产品的意思,也不会有偏向。唯一主观的是,我们自己目前是这么工作的,所以只能选择满足我们工作需求的系统。
国产项目管理软件中,呼声很高。也抱有很高的期望进行试用,并打算购买一套正式使用。但是试用了几天后,还是放弃了。
放弃理由:用起来太累。有一定的学习成本,入门需好好琢磨。
放弃的另外一个重要原因:是项目和产品的关系,不符合我们现在的业务。禅道中的逻辑,是先创建产品,然后再创建项目。一个产品下有多个项目。需求和bug的提交,都要关联到产品,而不是项目。
这让我们很绕,我们没有产品的概念,我们软件外包公司都是项目。需求和bug,都是针对项目。添加需求和缺陷之前,还要创建一个产品层级,多了一层,让我们很苦恼。
我们也在开发自己的产品,但是我们自己的产品,也是以项目的形势进行。这和禅道中定义产品,不是同一个东西。
另外还有几个不适的是:
但是禅道有很多优点:
听说是全球最牛逼的项目管理软件,不得不去体验下。而且对于只有10人以下的,可以自己搭建服务器,只需要10美元就够了。一次性的,还算比较便宜了。
于是就体验了下SaaS版本的功能。最后也还是放弃。
放弃理由:国外的实在不习惯。学习成本和习惯成本,有点高,就没进一步体验了。
另外有些名词翻译过来,叫的也不习惯。比如issue、story,翻译过来,叫待办事项,长篇故事。对于国人,有点懵逼。
这个呼声也比较高,都说简单好用。关键是免费的,所以也要试试。
最后放弃。理由2个:国外的不习惯;另外就是界面实在是太丑了。典型的程序员界面,不考虑任何美观,只考虑实现功能。
同学发来的Coding.net,看了介绍,注册使用,感觉很顺。不过后来还是放弃了。
放弃原因:主要是任务功能,不够直观和全面。
当我们有多个项目,多个人员需要安排任务时。想要查看下属的任务列表时,非常不方便。
但是coding有很多优点:
个人感觉有些方面还可以改进。
这个系统很早之前用过,那时是纯粹的任务协作系统,算不上项目管理软件。现在重新试用了下,发现进行了升级,加入了一些插件,包括项目管理方面的功能,但是没有源码库托管。
teambition的体验,和coding比较类似,前端体验效果很好,速度很快,附件大小无限制,10人以内免费,相比coding的5人免费,还是比较划算的。
teambition的任务功能非常强大,可以从各个维度和角度,来查看和创建任务。领导可以方便的查看自己创建的、自己参与的、自己负责的任务。
打开时间视图,就可以按照时间线给每个下属安排任务。
由于teambition并不专门针对IT软件行业,它的任务系统是针对全行业。虽然项目模板中增加了产品研发,但是使用起来还是感觉有的功能累赘,有的功能缺失。不能完全进行项目管理,还是只能以任务的方式进行推进。
除了不能进行源码托管,其他功能和coding差不多了,甚至是还要比coding做的好。
严格来说,码云都不算项目管理软件。最初我们只是用他的Git源码托管服务。看他们有项目和任务管理,就试用了下。感觉任务这块的功能,还不错。既能托管Git源码,又能试用任务管理,一举两得。
但是针对企业,5人以下免费。人数多了,得收费。
在使用上,我觉得还需要改进地方:
文章下方有评论说没有推荐。那就在这稍微补充一下。
中国特色的企业,就是每家都不一样,都有各的的标准,领导各有各的喜好。管理系统是工具,最终使用的是人,人的偏好不一样,选择工具就不一样。
如果偏重于测试用例的管理,以及团队人数比较多,想从项目开始一直跟踪到完结,那么推荐使用禅道。各个流程环节都很完善。
如果只是偏重于日常任务的管理,以任务形式进行跟踪,那么偏重于teambition。
如果管理Git源码同时,以源码项目形式进行任务、周报的管理,可以选择码云Gitee。
coding结合了teambition和gitee。UI体验很好,和teambition里面类似,但是侧重于IT行业的软件项目管理。
国外的jira、redmine,大型企业用的多,我确实是用不惯。
最后,我们自己是一个都没有采用,开发了自己的管理工具。因为我们侧重于项目成本的管理,根据每个员工的日志汇总,精准核算每个项目的耗费人天,计算项目利润和项目奖金,以财务成本为重。
文章浏览阅读1.9k次。这种情况下就是它的激活出现了问题,如果账号的使用权没有问题的话,就将该插件disable之后再重新enable,重新观察输出,就会看到copilot在重新链接引擎了,一次不行就多进行几次。在使用github copilot的时候,插件不工作,后台出现了这种输出,然后就能重新使用了,_copilot no completions were found
文章浏览阅读175次。1、年月日——日期禁止当天之前的,不包括当天的(带有时间的除外)2、年月日——日期禁用当天之前的(包括当天的)_ant日期组件如下禁用当前之前的时间
文章浏览阅读3.2k次。题目的意思是:一个有序的数列中插入一个数,这个数列依然是有序的。1 3 5 7 9 当插入6时,数列应当变成这样1 3 5 6 7 9算法:原数组从最后一个数开始与number相比较。 如果number大于最后一个数,那么number就会插入到最后一个数后面 (array[j+1]=number),而且比较在这里就会结束了。程序中使用br..._有序的数列中插入若干个数,每插入一个数都要保持有序。
文章浏览阅读1.2k次。这一讲的内容我想通过一个例子来全面比较一下传统测试与敏捷测试的区别,这个例子来自一本书——《凤凰项目:一个 IT 运维的传奇故事》。这是由美国的三位 DevOps 专家撰写的一本关于 IT 运维的小说。有人说,在 IT 咨询业,没读过这本书都不好意思跟人家谈 DevOps。别急,我们这一讲的重点的确不是 DevOps,而是比较传统测试与敏捷测试,一千个人眼里有一千个哈姆雷特,尽管大家对 DevOps 有不同的理解,但是,你要知道,DevOps 其实是敏捷开发向 IT 运维的自然延伸,它的原则和实践与_敏捷测试与传统测试的区别
文章浏览阅读4.5k次。用VS2015中QT VS TOOLS 的Open Qt Project file 选项打开qt工程报错(Import): Generating new project of liteidex.pro file(qmake) : Using: C:\QT\QT5.9.1\5.9.1\MSVC2015\bin\qmake(qmake) : Working Directory: C:\_vs2015 qt tools 报错cmd32.exe
文章浏览阅读131次。DescriptionImplement an iterator over a binary search tree (BST). Your iterator will be initialized with the root node of a BST.Calling next() will return the next smallest number in the BST.Exampl..._implement an iterator over a binary search tree (bst)
文章浏览阅读1.2k次,点赞2次,收藏6次。【代码】[Errno 2] No such file or directory: ‘:/usr/local/cuda-11.7:/usr/local/cuda-11.7/bin/nvcc‘_warnings.warn(msg.format('we could not find ninja.'))
文章浏览阅读888次,点赞16次,收藏14次。人体都有恒定的体温,一般在 37 度,所以会发出特定波长 10uM 左右的红外线,被动式红外探头就是靠探测人体发射的 10uM 左右的红外线而进行工作的。人体发射的 10uM 左右的红外线通过菲泥尔滤光片增强后聚集到红外感应源上。红外感应源通常采用热释电元件,这种元件在接收到人体红外辐射温度发生变化时就会失去电荷平衡,向外释放电荷,后续电路经检测处理后就能产生报警信号。人体红外模块是一种能够检测人或动物发射的红外线而输出电信号的传感器。广泛应用于各种自动化控制装置中。_人体传感器csdn
文章浏览阅读3.9w次,点赞14次,收藏32次。## vector _find方法的使用 不同于map(map有find方法),vector本身是没有 find这一方法的,其find函数是依靠algorithm来实现的 所有要使用#include<algorithm> 例如:vector<int>::iterator it = find(vec.begin(),vec.end(),1); if(it != vec.end()) cout<<"found"<<endl; else _vector find
文章浏览阅读5.4k次,点赞55次,收藏109次。EXTI——外部中断/事件控制器。外部中断简介,EXTI初始化结构体,外部中断控制实验。利用按键输入作为中断的外部输入,产生中断后,进入中断服务函数,实现LED状态的变化。_stm32外部中断上升沿下降沿都触发 如何区分
文章浏览阅读2.1k次,点赞10次,收藏8次。question使用vue-cli(4.5.13) create vue3(3.1.3)npm run servererrorerror in ./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.jssolution1办法1: 编辑配置文件vue.config.js此办法不行// vue.config.jsmodule.exports = { transpileDependencies: ['@vue/reactivi_in ./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js
文章浏览阅读7.2k次,点赞12次,收藏63次。数据采集和数据清洗一、数据清洗1.数据去重(一)相关知识1> pandas读取csv文件-read_csv()2> pandas的去重函数-drop_duplicates()(二)本关任务(三)参考代码2.处理空值(一)相关知识1> DataFrame中空值的表示2> 查找空值及计算空值的个数3> 处理空值-fillna(二)本关任务(三)参考代码一、数据清洗1.数据去重(一)相关知识1> pandas读取csv文件-read_csv() _selenium 自动化数据采集和清洗