您的位置:首页 > 其它

8个敏捷开发的最佳实践

2017-02-06 09:34 393 查看
总结的国外的敏捷开发资料且翻译成中文:The CIO’s Guide to Becoming a Trailblazer

资料下载:http://download.csdn.net/detail/u011774517/9747734

下面谈谈我对翻译的内容“8个敏捷开发的最佳实践”的理解,我会逐条写下自己的理解

敏捷应用开发的最佳实践

1、专注于客户--注重客户或者说是重视应用的最终用户体验

开发团队需要深入了解客户需求并进行相应调整。领导者可以通过授权开发团队去掌握并衡量端到端客户体验,公司才可能创新。

2、为开发人员提供思考的安全边界--培养团队的创新能力,应该给每个成员一个安全的环境提出自己的想法,成员无需担心报复和尴尬;并且避免群体思考。

CIO可以采取的措施:给职员一定的安全空间,使职员之间不会产生摩擦;CIO应在数据整合上投资,让员工可以自由访问正确的数据,然后让职员根据自己的需求策划。

3、基于IT资源的适当的创新

根据已有的IT开发人员、以及使用各种语言的开发团队等IT资源来适当的创新

4、利用阴影IT

Shadow IT(shadow information technology)是企业中的硬件或软件,但是它不受组织的中央IT部门支持。尽管标签本身是中性的,但该术语通常带有负面含义,因为它意味着IT部门尚未批准该技术或甚至不知道员工正在使用它。(维基:影子IT通常用于描述在没有明确组织批准的情况下在组织内部构建和使用的信息技术系统和解决方案)

利用阴影IT为这些非IT用户提供可视化应用开发工具,使他们能够以“低代码”和“无代码”视觉编程环境来开发apps。 在这种方法中,用户可以构建而IT人员维护监督,以确保安全性和法规遵从性,并且还保留其他内部数据。 这样,更多的员工可以开发有用的产品性质的应用程序,并且熟练的开发人员可以迅速创建应用程序

有篇介绍影子IT(影子信息技术)的文章不错:http://searchcloudcomputing.techtarget.com/definition/shadow-IT-shadow-information-technology

5、DevOps的好处

DevOps: Development和Operations的组合DevOps(英文Development和Operations的组合)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。可以把DevOps看作开发(软件工程)、技术运营和质量保障(QA)三者的交集。

使用敏捷开发时要引入DevOps , 培养DevOps精神,需将共享角色和责任的精神逐步灌输给企业中的每个人。 为了保持速度和敏捷性,业务团队和IT团队需要尽可能快地移动,这意味着业务团队和IT团队要作为一个单元移动。

Elasticbox 整理了 60+ 开源工具与分类,其中包括版本控制&协作开发工具、自动化构建和测试工具、持续集成&交付工具、部署工具、维护工具、监控,警告&分析工具等等, 
补充了一些国内的服务,可以让你更好的执行实施 DevOps 工作流。

* 版本控制&协作开发:GitHub、GitLab、BitBucket、SubVersion、Coding、Bazaar


* 自动化构建和测试:Apache Ant、Maven 、Selenium、PyUnit、QUnit、JMeter、Gradle、PHPUnit


* 持续集成&交付:Jenkins、Capistrano、BuildBot、Fabric、Tinderbox、Travis CI、flow.ci Continuum、LuntBuild、CruiseControl、Integrity、Gump、Go


* 容器平台: Docker、Rocket、Ubuntu(LXC)、第三方厂商如(AWS/阿里云)


* 配置管理:Chef、Puppet、CFengine、Bash、Rudder、Powershell、RunDeck、Saltstack、Ansible


* 微服务平台:OpenShift、Cloud Foundry、Kubernetes、Mesosphere


* 服务开通:Puppet、Docker Swarm、Vagrant、Powershell、OpenStack Heat


* 日志管理:Logstash、CollectD、StatsD


* 监控,警告&分析:Nagios、Ganglia、Sensu、zabbix、ICINGA、Graphite、Kibana


DevOps BookMarks里面涉及了DevOps方方面面的工具和内容,有兴趣的同学可以前去学习。

6、使用微服务方法开发

微服务架构模式(Microservices Architecture Pattern)的目的是将大型的、复杂的、长期运行的应用程序构建为一组相互配合的服务,每个服务都可以很容易得局部改良。


然而,在微服务架构带来可独立部署、高扩展与伸缩、自由选择开发语言、高效利用资源、故障隔离等优点,同时也因为服务多带来分布式事务、服务之间通信、监控、部署等新的问题。



提到微服务架构与单体架构进行比较,单体架构存在如下缺点:代码维护难度大,臃肿的部署,局限的弹性与扩展能力,阻碍团队与技术革新等等;微服务架构存在如下优点:代码维护简化,可独立部署,高扩展与伸缩,自由选择开发语言等优点。

翻译的敏捷开发的最佳实践中提到“微服务驱动方法通过将功能分离为可被其他团队重用或使用的组件和服务,来实现松散耦合的应用程序体系结构。这样,当新入职的员工或有人需要构建一个包含新功能的应用程序时,他或她可以将这些预先构建的服务集成进新的功能中”。

7、持续交付

持续交付包含几个方面:集成、持续、部署、交付。

持续交付(Continuous Delivery)是一系列的开发实践方法,用来确保让代码能够快速、安全的部署到产品环境中,它通过将每一次改动都提交到一个模拟产品环境中,使用严格 的自动化测试,确保业务应用和服务能符合预期。因为使用完全的自动化过程来把每个变更自动的提交到测试环境中,所以当业务开发完成时,你有信心只需要按一 次按钮就能将应用安全的部署到产品环境中。

张程荣在演讲中主要为大家介绍了阿里云持续交付的经验。

https://yq.aliyun.com/product/713?utm_medium=text&utm_source=baidu&utm_campaign=YQDZ&utm_content=se_302289

8、捕获部落知识

部落知识是在一个组织内已知的信息或知识,但在其外部常常是未知的。从企业的角度来看,“部落知识或技能是组织的集体智慧,是所有人的所有知识和能力的总和,部落知识可能对产品的生产或服务的表现至关重要。

企业要建立好自己企业的部落知识,不仅使每个开发人员可以获取正确的数据或资源,还可以更容易更快的分享我们的工作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息