软件项目管理心得工具癖程序员

那些拯救程序员的「神器」| 自动化敏捷开发

2017-07-17  本文已影响465人  是小岸

程序猿们,如果你感觉到总是在做反复的、机械的工作,你或许可以考虑找些工具帮帮你了。如果你所在的团队号称在做「敏捷开发」,但还是有做不完的重复劳动,也许你们还不够敏捷。

敏捷开发所谓的快指的是「反应快」。敏捷的优势在于用更短的迭代周期去应对不断变更的需求,持续地交付可用的软件。而要在短短的两周或者一个月内交付可用的软件,同样意味着在这个周期内要完成集成、部署、测试等一系列的工作。如果把这些工作都交给开发人员去做,那还有什么时间好好地开发呢?

本文将从沟通、开发、质量这几个方面来介绍一些常用和可靠的工具和它们的使用场景,它们不仅仅适用于敏捷开发。一起看看到底有哪些「重复劳动」可以被工具干掉。


自动化「沟通」

生命周期管理

Lifecycle Management

如果你的项目的需求、任务都还放在长长的Word、Excel文档里,那么是时候找一个项目管理工具了。项目管理工具帮助跟踪和控制项目的整个生命周期:

常用的项目管理工具有:Jira, Redmine, Trello, Teambition, Visual Studio Team Foundation Server

消灭重复劳动:手工分析和跟踪项目进度、从长长的文档中找两行关于自己工作的需求
预计每周节省时间: 5小时

聊天工具

Communication Tool

很多人可能都会用QQ、微信、Skype for Business来交流工作,他们也许是够用了,可是就是有这么一个软件异军突起,专注于企业级的聊天工具——Slack,连微软都不得不做了一个仿制品。Slack这类的聊天工具的特别之处在于:

不管是Slack还是Microsoft Teams,都让沟通更加的透明、高效,「边聊天边工作」吧。

消灭重复劳动:打开各个工具平台查看通知、发送一句话邮件
预计每周节省时间: 4小时


自动化「开发」

版本控制

Version Control

版本控制系统是自动化开发的基础。这里不赘述版本控制的重要性了。

常用的版本控制工具有:SVN, Bitbucket, Gitlab, GitHub, Perforce

消灭重复劳动:集成代码、版本回溯
预计每周节省时间: 8小时

依赖管理

Dependency Management

开发中很常见的外部依赖,你还在手动下载和导入吗?如果你不是一个人在开发呢,如果版本更新了呢,这种传统的方式会变成一种噩梦吧。相信还在这样做的团队已经非常少了。

这里介绍一些常用的工具:

编程语言 工具
Java Maven, Ant
Node.js NPM (Node Package Manager)
JavaScript Grunt
iOS SPM (Swift Package Manager), CocoaPods, Carthage

拿Maven来说,把各类依赖集中地放在「仓库」,只需要简单的配置文件,就可以帮助开发人员自动管理和下载依赖。如果你的工程需要一个集成一些重复利用率很高的依赖的基础模板,Maven也可以做到。

通常来说,依赖管理工具同时也是构建工具,Maven可以进行编译、单元测试、部署,一个按钮加一条预设的命令脚本,搞定!

消灭重复劳动:下载和导入依赖、保持最新依赖版本
预计每周节省时间: 2小时

持续集成

Continuous Integration

由于软件通常是由多个模块组成的,集成它们是生成交付软件的必经过程。怎么持续集成?简单来讲就是把刚刚提到的版本控制和依赖管理结合起来,放到一个平台上,持续地对代码进行合并、审查、测试、编译、部署,可视化的平台还可以有效的减少项目人员的沟通成本。

持续集成并不是一个工具的名字,更重要的是使用者的思维。如果你所谓的「持续」是每天登录平台手动点一下「构建」的话,那恐怕就南辕北辙了。两点建议:

常用的CI工具有:Jenkins, GoCD, Travis CI, Bamboo

消灭重复劳动:枯燥的集成和审查流程、服务器部署
预计每周节省时间: 8小时


自动化「质量」

静态分析

Static Analysis

自动化质量很容让人联想到「自动化测试」,实际上代码审查也可以自动化。静态分析(也叫静态检查、静态扫描)不直接执行程序本身,而是对现有的代码结构进行分析、预测,最终生成一个报告,包含可能出现的缺陷以及对代码规范、质量等的各项评定。

常用的静态分析工具有:Coverity, CheckStyle, FindBugs, PMD, JSLint, ESLint

除此以外,很多IDE本身也集成了相关的功能。

消灭重复劳动:代码规范检查、基本代码审查
预计每周节省时间: 4小时

自动化测试

Automation Testing

由于敏捷的迭代的特性,每次迭代的交付都必须经过重复性很强的测试,不论是集成测试、回归测试以及基本的性能测试,如果能自动完成,就是再好不过了。

常用的自动化测试工具有:Selenium, Mocha, QTP, AutoRunner, RFT

消灭重复劳动:复用率高的手工测试
预计每周节省时间: 5小时

静态分析工具和自动化测试工具还可以和持续集成环境配合使用,从而达到真正高校的自动化。


结语

减少枯燥乏味的重复劳动,项目成员才能真正的享受在工作之中。当然,别让使用工具成为另一种负担。

本文提到的工具很有限,欢迎大家留言指正和交流

想了解敏捷开发,你还可以参考
《敏捷开发从信任团队开始》
《「便利贴」里的项目管理 | 利用看板提升沟通效率》

上一篇 下一篇

猜你喜欢

热点阅读