Agile Software Development in China

What is Agile Software Development?

Agile Software Development (ASD) is a set of software development methods based on iterative and incremental development [1]. It is designed for addressing the ever-changing requirements from users. Compared with other non-agile methods, ASD emphasizes the cooperation and communication between programming team and specialists of a specific area, frequently updating of new version software, self-organized and small-scale team and coding and organizing methods for adapting requirements change.

The main value of ASD, which was announced by The Agile Manifesto, plays a vital role in Agile development processes, as follow:

  •   Individuals and interactions over Processes and tools
  •   Working software over Comprehensive documentation
  •   Customer collaboration over Contract negotiation
  •   Responding to change over Following a plan

That is, while there is value in the items on the right, we value the items on the left more.[2]

1

Figure 1. Process of Agile Software Developmenta

Why do we use Agile Software Development?

Meeting the ever-changing requirements of users is a challenge for software developments. Classical waterfall model has acceptable performance during an iteration cycle. In case of amending by requirements, the waterfall model reveals its weakness. Iterations are used in ASD to meet the demands. The purpose of developments during every iteration cycle is to offer an available and deployable system. This system is used to test by users and generate as much as possible feedbacks. In the next iteration cycle, the advices of the exist version and the new requirements are implemented and integrated. In order to handle users’ new requirements and feedbacks, the iteration cycle becomes as short as possible[3] .

 

There are following advantages of Agile Software Development[4]:\

1.Precise

The waterfall model generally plans a routine from the starter of production to the requirements. With the passage of time and other external factors, users notice that the destination is not they want after reached. Nevertheless Agile model transfers the long –term running into many small rush, which means the destination and mythologies are modified with the change of demands.

2.Quality

Because of heavy workload caused by much iteration, the quality of ASD is doubted. Agile Model programming requires high quality on each iteration process. Some agile methods, such as extreme programming, use test-driven development, which means implementing testing code before function code, to ensure the quality of development.

3.Speed

The teams of ASD only focus on most necessary and valuable part at present. Individuals can soon concentrate on development. As consequence, the speed of the process will be increased. More additionally, owing to short and frequent iteration cycle, team member can immerse in a work state rapidly.

4.Higher Investment Return

During ASD, the most treasured parts will be implemented and developed preferentially. Clients will gain higher investment return.

5.Efficient self-organized team

Every team member should be proactive and self-organized. Working in this kind of team enriches the experience of individuals. It also enhances technique, communication, social, expression and leading skills.

 

Agile Software Development in China

Chinese software development groups start using ASD and its methods in recent year. Many companies and organizations do not use ASD, while many multinational companies adopt agile development such as IBM,SUN. Meanwhile, some cutting-edge companies especially some Internet companies like Tencent spread ASD. Overall, agile software development methods still remain in the early adopters stage in China. The reasons are variety as following.

 

Firstly, there are lots of software companies in China, but few of them are large-scale. Non large-scale companies do not implement standard development methods; instead, they arrange development processes and deal with the problem according to personal style of the leader. This pragmatism has no cost on management and offers more freedom for team members, but disadvantages are also apparent. First, the quality of producing and efficiency is unstable. Second, it is tough to generate a cohesive and self-organized team. Organizing capacity of companies relies on core person/leader and stability. Otherwise the whole team needs to adapt other developing style. Third, pragmatism methods lack of mechanism of self-improvement. Nevertheless, those teams are faced with less underlying hinder than other teams because they have no patterned model. Adapting ASD improves the efficiency and stability on quality without heavy changes for them.

 

Secondly, after the financial crisis, many companies reevaluate daily expense and running efficiency. Limited human resources become the bottleneck of the development of companies. Under this situation, it is essential of them to enhance the utilization of existing resource. Moreover, China has suffered a rapid expansion of infrastructure and facilities in recent year, while corresponding management and services did not support the hardware. Agile Software Development provides the improvement of quality and efficiency on software and its services, which are vital for Chinese software companies.

 

Thirdly, in terms of Chinese culture, some elements are appropriate for ASD. The Agile Manifesto puts the cooperation of individuals before tools at the start, which is similar to the general principle of Chinese culture as individuals play an essential role in the organizations instead of processes and tools, especially in companies and government agency. The positivity and creativity of the team will be stimulated if this element is discovered and applied [5] . In addition, ASD required a concise and service-based management layer. In China, it is not professional enough for management in projects and companies. It is simpler to transfer to ASD from a Chinese development teams. Finally, Some Chinese development teams prefer the cowboy coding, which is a term refers to go-as-you-please and unplanned coding style. This style is closer to ASD style compared with the waterfall model or other professional coding style. Overall, the special elements in Chinese culture and features of the software industry provide natural factors for development and implementation of ASD.

 

In conclusion, although ASD is not popular enough in China, it will drive the improvement of quality and efficiency of software development if the Chinese companies concentrate on implementation, localization, and creation of ASD. We have reasons to believe that ASD will receive a fast progress.

 

References:

[1] Beck, K., Beedle, M., Van Bennekum, A., Cockburn, A., Cunningham, W., Fowler, M., … & Thomas, D. (2001). Manifesto for agile software development.

[2] Beck, K., Beedle, M., Van Bennekum, A., Cockburn, A., Cunningham, W., Fowler, M., & Thomas, D. (2001). Retrieved Feb 13th, 2014, from http://agilemanifesto.org/principles.html

[3] Aniyo Zhang (2009),敏捷开发有什么好处,Retrieved Feb 13th, 2014, from http://aniyo.iteye.com/blog/1567668

[4] Shore, J. (2007). The art of agile development. ” O’Reilly Media, Inc.”.

[5] Ceschi, M., Sillitti, A., Succi, G., & De Panfilis, S. (2005). Project management in plan-based and agile companies. Software, IEEE, 22(3), 21-27.