迭代开发
技术团队的人员素质,人员配备完整
及时有效的沟通方式,比如 每日会议、广告墙、任务板 等
公开透明和项目技术和项目文档
需求订单 inbox,类似redmine,jira的订单显示方式
业务流程简图
用例驱动开发
良好的处理通知机制
演进可行的基础资源、网络架构,每一步都是可用的
演进可用的人机交互设计
基于组件、插件、扩展的架构设计
结对编程(两个或多个员工沟通顺畅或者对某个业务属性分一个队完成任务)(只是建议)
测试驱动开发(根据测试用例进行开发)(只是建议,需要看团队风格)
代码重构(经常优化代码)
代码安全和规范(后章节有专门工具)
单元编程
并行测试(边开发边测试,模块或者类测试)
完善的测试报告
重要的目标是通过持续地及早交付有价值的软件使客户满意
拥抱需求的变化,乐观面对需求,敏捷掌控软件生命周期
经常地交付可工作的软件,倾向于采取较短的周期
业务人员、开发人员、测试人员必须相互合作,高效沟通
不论团队内外,传递信息效果最好效率也最高的方式是面对面的交谈
可工作的软件是进度的首要度量标准
不断地坚持针对软件开发,架构的优化,敏捷能力由此增强
以简洁为本,它是极力减少不必要工作量的有效手段
团队定期总结经验,反思自身,不断提高团队的专业水平
版本控制 & 协作开发 : GitHub、GitLab、SubVersion、 BitBucket
自动化构建 和 测试: Maven 、Selenium、PyUnit、JUnit、PHPUnit
持续集成&交付: Jenkins
容器平台: Docker、Rocket、 Ubuntu ( LXC)、第三方厂商如(AWS/阿里云)
配置管理: Saltstack、Ansible
容器调度平台(常用于微服务): OpenShift、Cloud Foundry、Kubernetes.Mesosphere、 Docker Swarm
日志管理: Logstash、CollectD、StatsD
监控,警告&分析:Nagios、Ganglia、Sensu、zabbix、ICINGA、Graphite、 Kibana
代表工具 SVN
由一个中央服务器控制所有的文件版本,集中式管理
所有客户端都可以对中央库进行操作,由中央服务器保证版本的统一
特点是安全性不够好,针对中央服务器的通信比较频繁,如果版本库文件过多,服务器压力较

代表工具 GIT(推荐)
本地就是一个中央服务器的完整镜像,直接提交到本地的镜像
不依赖中央服务器的服务,不依赖网络,中央服务器负载压力小特点是 安全性好,每个开发者本地就是一个副本,储存也可以得到分布式架构的优化
