最新敏捷調查報告

TIB發表於2011-05-02

敏捷開發方法已經有近10年的歷史了。最近Capgemini釋出的2010-2011年度世界質量報告指出:敏捷之路並不容易。

 

採用敏捷開發模式的企業中,歐洲地區的企業有近60%的比例,北美地區是59%,亞洲地區是56%。

 

在新研發的大型專案中採用敏捷開發模式的企業比較多。

 

 

根據調查,企業認為採用敏捷帶來的好處包括:
1、Time-to-market - 37%
2、Quality of Application - 26%
3、Resource utilization - 23%
4、Cost savings - 14%

 
成功應用敏捷的公司總結的最佳實踐包括:
1、Set realistic expectations 設定合理的預期目標
Agile can help significantly improve application quality,productivity and time-to-market, but it is not a cure-all remedy. Perhaps the most significant benefit of agile is that it provides a much more realistic measure of progress. Instead of gauging the effort, developers are measuring true progress, which brings them closer to the business and makes them more aligned with the stakeholders’ expectations.

Survey respondents say that time-to-market is the greatest benefit that their organizations realized by adopting agile. Agile is helping IT teams deliver applications on time and within budget while minimizing rework due to its iterative
and predictable nature, greater productivity and faster reactn to change.

 

2、Do not ignore quality 不要忽略質量
Many companies claim that they are moving away from waterfall because they are discovering issues too late in the application development process when it is too costly to do anything about them. Unfortunately when they move to agile, they find themselves falling into the same routine –develop in fast sprints, but still test at the end of an iteration, or even after several iterations.

Quality should be part of every step of any agile development process. Each sprint should be composed of some amount of development and testing. This is the only
way to identify issues and project risks earlier in the lifecycle. With the right approach, agile organizations can achieve significant improvements in quality. In fact, surveyed companies perceive quality improvements as the second biggest benefit of agile – behind only time-to-market advancement.

 

3、Find the right skill set 對敏捷測試人員的技能要求
Agile brings development and testing functions closer together, but it does not automatically turn developers into good testers, or make testers more familiar with the development process. Organizations need to take a closer look at the skill set required by the QA team to effectively support agile methods.

Agile testers need to be more versatile than traditional testers. On the one hand, they must be more technical, more familiar with development practices, and comfortable with using non-traditional test automation tools to validate Graphical User Interface (GUI)-less applications. On the other hand, they need to be close to the business to
understand the requirements, work with end-users throughout the project, react quickly to change and tie application quality directly to business value. Because agile teams are typically small (six to twelve people) or a collection of smaller teams (“scrum of scrums”), an agile tester can be compared to someone working in a small company where everyone wears multiple hats. With the right skill set and a strong understanding of all aspects of the business, development and testing, QA can truly make agile an effective and successful method for the company.

 

4、Emphasize communication 強調溝通
Some agile “purists” may say that companies cannot have agile when they have distributed teams. In contrast, the survey results confirm that the reality of today’s business is distributed teams, and many of them are successfully adopting agile methods. Nearly half (46%) of all respondents leverage offshore resources in their agile delivery. These results clearly indicate that it is possible to be distributed
and be agile. The key is to stay connected. The two biggest challenges when working on agile projects with outsourced partners are poor communication and lack of mutually
accepted collaboration technologies. (See Figure 10.) It is our experience that in offshore situations, companies must emphasize the management of cultural and language
differences since they often directly contribute to communication problems.

Through proper work planning, team structure, central asset repositories and open communication, distributed teams can achieve agile success.

 

5、Achieve speed through automation 通過自動化提高速度
Agile thrives on efficiency. Agile delivery teams need to make their processes as efficient as possible, and this means increasing the leverage of automation frameworks and test optimization techniques such as risk-based testing and orthogonal arrays. Developing and managing requirements, generating test data, storing project assets, building and running tests – all tasks that are run routinely – cannot stay
manual without slowing down the process and creating unnecessary burden on the teams. Technologies and techniques that are considered “nice to haves” in the traditional application lifecycle have become necessary enablers of agile success.

Traditionally, test automation in an agile environment was difficult due to lack of application UI. Most available automation tools required a GUI to start building test
components and scripts. However, the emergence of the new generation of test automation solutions allows testers to begin automating much earlier in the process, without the need for the UI to be completed. This significantly improves the speed, quality and consistency of agile testing and contributes directly to higher application quality.

 

6、Organizations may need to find their own, unique form of agile 企業要找到適合自己的敏捷方法
Agile can be more complicated than traditional development methods, and the complexity is not only about writing code and testing at a faster pace. Agile changes the very way IT interacts with the business. Adopting agile means finding the balance between speed and quality, responsiveness and predictability, embracing change and economies of scale, minimal documentation and accurate reporting.

Many organizations find success in taking the best of traditional methodologies and applying them to their agile projects, creating a unique hybrid model that works for
them. Perhaps some testers are more used to gathering requirements than user stories, or specific project teams need more granular reporting to satisfy regulatory compliance. Companies can find an agile method that’s right for them.The main principles of agile – building in small iterations,hands-on communication with the stakeholders, rigorous testing and receptiveness to change – are going to continue
to work, even if teams add elements from other methods.The end result will be higher quality applications and greater business value.

For the testing organization, agile represents both an opportunity and a challenge. The majority of surveyed organizations (67%) are not currently using agile-specific
testing methods to support agile application delivery, which suggests that the role of the agile tester is still not well defined. For years, testers have been trying to ensure that application quality be considered earlier in the lifecycle.
With agile, QA can help make it happen by providing the right skill set, including technical knowledge of the development process and strong business process expertise.

Agile is requiring teams to work with a greater degree of collaboration. It collapses the silos making the entire team feel ownership of the product. Testers no longer have the back-seat role where they are forced to wait until the application is delivered to them. They are actively engaged from beginning to end. Agile is a different way of working. It requires a new level of competency and commitment from the QA organization, because it is not agile development, but rather agile delivery that ultimately makes projects successful.

 

 
注:2010-2011年度世界質量報告 已放到資源共享:
http://www.automationqa.com/resources/117-worldqualityreport2010-2011.html

 

 

 

 

 

 

 

相關文章