Open source = No money?

 Open source = No money?

Open Source - Word Cloud

 

In this day and age, more and more software companies make their products open source and achieve success according to that.  However, still some individuals and managers of companies hold different attitudes on open source. In fact, Open source has been a potent weapon for software companies. In this article, I will demonstrate why a number of Chinese software companies doubt on an open source model, and analyse underlying profit pattern of open source software.

 

Can open source make money?

 

Articles of law are open. Lawyers still make a profit.

Medical knowledge is open. Doctors still make a profit.

Why not software?

Compared with the past software market, present software companies are not only providing software as an only product, but also concentrate on the services based on their software. In other words, nowadays software industry has the same pattern with medical and food service industry, which relies on services to attract clients. Software as a service (Saas) demonstrated a development model for the software industry, which is widely accepted (Turnet, el ac, 2003). Since code of software is not the only way of profiting, the privacy of code is playing a less important role in the software business.

The successful cases of open source software are proliferated. For instance, open source operating system Linux is considered as the most suitable OS for servers.  Open source browser FireFox occupied 18.35% market share (Protalinski, 2014). As for the web server, MySQL is the most popular database system in the world, which has 11 million users in 2009, and also used by many famous websites. Apache, as an open source http service provider, has been set up on 56% website (Stone, 2002).  As a result, open source products are in a position to substitute for existing business software.  It is the successful operation of those open source project provides financial support for companies.

 

Why do open source software companies have a hard first step?

 

The development of the open source software industry meets its bottleneck at the original beginning especially in China. In my opinion, the main reasons for this situation can be concluded as following three aspects.

1.            Technical staffs firstly come into contact with open source software. They regard the code as their labour’s own result, which assumes protecting software’s copyright as a matter of course. Without the understanding of business scheme, the perspective of open source becomes a terrified and untouchable aspect of them.

2.            Company managers misunderstand the difference between open source and free software. Misleading of advertising inculcates an idea that open source equals to free upon people. The commercialized operation cannot develop healthily according to this precondition.

3.            In China, lack of relative developer causes the consequence that the local developments are hardly established.  Some business-oriented software project is even constructed based on other open source project, which disturbs the new open source development.

How open source Software Companies make money?

 

Actually, open source is not just a way of coding and developing, but also a remarkable business strategy. From the view of business, open source has lower cost of selling and marketing as the source is open and easy-speeded. In this part, I will illustrate some methods that open source Software Company used to make a profit according to my knowledge.

Multiple Product Line

In this profit model, open source software is utilized to create and maintain the market position for the products which are able to earn money directly. For instance, open-source client software drives sales for closed source server software. Similarly, two types of software will be published, including the open source basic version and closed source advanced version.  Let us take MySQL for example, MySQL provides personal edition and enterprise edition, which use a different way of authorization (MySQL website). Open source personal edition is better for popularising as the enterprise edition plays a critical role in profit.

 

Technology As A Service

This model transfers an old product-oriented market into a service-oriented market. Enterprise focuses more on providing technology services rather than selling its product. The open source software is regarded as an advertising approach in this model. JBoss, a division of Red Hat, Inc., specializes in writing and supporting open-source middleware software, is the typical instance. JBoss offers their application server for totally unrestricted, but charge for technical document, technical training or secondary development.

Integration of software and hardware

This model is specifically for hardware companies. Because of the market pressures, hardware companies start developing and maintaining software, which is not the center of profit. Hence open source software is adopted.  Server provider, such as IBM, HP sell hardware server with the free Linux OS, in order to stimulate selling.

 

Value-added component

Like some free-play online games, enterprise provides open source and free software but charge for value-added functions. The emergence of plug-in software enriches the functionality of existing software in a safe and easy-developed way. Meanwhile, companies can get to make a profit from the additional component. For example, WordPress, which is the most fashionable personal blog solution provider, open its source and provide charged numerous plugins in order to maintain the operation (WordPress, 2013).  The component here is not only refers to the functional software, WordPress also offers services on the basis of personal blog, such as extra storage space, domain binding service, etc.

Advertisement

Advertising-supported revenue model benefits from the development of the Internet.  If open source software is supposed to obtain profit from advertising, it should be based on the Internet. Only are plenty of users using this product, which needs good quality and innovation, the commercial can be spread in a large scope. By cooperation with Google, and its remarkable user base, Mozilla gain profit, according to its open source browser Firefox (Mockus, 2002). Taking advantage of advertising-supported revenue model, the cost on developing of open source software is paid by an enterprise which server advertising instead of the underlying users.

 

Conclusion

Competition between open source software and commercial software is lasting for a long time without a winner. Open source is no more similar as the free software advocated by Stallman (2002), whereas become a potential business model which is used broadly. “Software as a service” is not just an empty talk, which is stimulated by open source software. It is open source impel companies pay more attention to the service rather than software products. Open source software’s revenue model will not be restricted under previous ways, new business model will be discovered gradually and an increasing number of software and Internet companies will achieve success due to open source.

 

 

References

Mockus, A., Fielding, R. T., & Herbsleb, J. D. (2002). Two case studies of open source software development: Apache and Mozilla. ACM Transactions on Software Engineering and Methodology (TOSEM), 11(3), 309-346.

Stallman, R. (2002). Free software, free society: Selected essays of Richard M. Stallman. Lulu. com.

Stone, A. (2002). Open source acceptance grows. Software, IEEE, 19(2), 102-102.

Turner, M., Budgen, D., & Brereton, P. (2003). Turning software into a service.Computer., 36(10), 38-44.

MySQL, (2013) from http://www.mysql.com/

JBoss, (2013) from https://www.jboss.org/overview/

WordPress, (2013) from  http://wordpress.com/

Protalinski, M (2014), IE11 more than triples market share to 10.42%, Firefox slips a bit, and Chrome gains back share, from http://thenextweb.com/insider/2014/01/02/ie11-triples-market-share-10-42-firefox-slips-bit-chrome-gains-back-share  (13, March, 2014)

Response Article:” A Review of Two Software Risk Management Methods” by Mingjun Han

This is a response article to “A Review of Two Software Risk Management Methods

” [1] by Mingjun Han.

 

Introduction

 

In the original article, the author gives a review of two major software risk management methods: Boehm’s risk management method [2] and SEI’s risk management method [3]. The whole article consisted of three main parts. First, the author illustrated the necessity of risk management in the software industry. Second, two main risk management methods for software were given. The author demonstrated the primary principles and content of those methods. Finally, the authors analysed the advantages and also drawbacks of those methods according to some comparative papers. [1]

This article expounded two software risk management methods on the level of description its content. The author used a bullet point to analyse the sub-methods of them, which is comprehensive and easy-understood. However, because of the limitation of the length of the article probably, two methods of risk management were mentioned in the article. As for the reviews and comparisons of the methods, I take the viewpoint that the authors should provide more comments from his/her own idea not only from other essays. According to that, what I am going to talk about in this article is offering reviews of those two methods, giving their strengths and weaknesses according to my knowledge, and comparing these two methods.

Review of two methods

 

Review of Boehm’s risk management method

 

As demonstrated in the original article, Boehm’s risk management method [2] divides the risk management on software into two parts: risk assessment and risk control. The risk assessment is aimed at identifying the underlying risks and gives the risks an assessment about the degree of risks and priority of risks. After estimation, the risk control part plays an important role in the whole management process, which includes risk management planning, risk resolution and risk monitoring.

Since the Boehm’s risk management method is the first risk management methods in software industry, it has deeper meaning on creating a pioneer rather than a practical instrument of risk management.  To consider a method from a certain perspective, Boehm focuses more on the steps and systematization of the ideal risk management. More details about how to actually running and maintaining a risk control are expected from Boehm’s methodology. I think the risk management of the software is different between it of business or entrepreneur. The software system is the most exquisite and precise masterpiece than business which has better robustness. By telling you that I mean business system normally has ‘inborn’ ability to control the gusty risk of self-adjustment and macro-control.  As for the software system, an eligible risk control method should provide the procedures and process of tackling self-risk at least in my opinion, which is lacking in Boehm’s risk.

I agree with the point of the mutability of the top 10 software risk items checklist based on an in-depth investigation of several large US aerial or defense system software programs. Although the checklist is very useful for risk identifying and avoiding and has doubtless universality and practicality, it is still just the general summary of existing risks which is insufficient on supported article and real situation. Admittedly, as a first method of risk management, this checklist contributes to building for the whole methodology as foundational principles.

 

Review of SEI’s risk management method

 

SEI’s risk management method [2] is presented by the Software Engineering Institute (SEI). It uses SEI-Software Risk Management (SRM) model. This method adopts cycling process to operate the risk management. Two remarkable advantages and innovation can be seen in this method: firstly, the cycling process provides macroscopical operation instrument. Five main sub-processes are involved, including identity, analyse, plan, track and control, which are linked and coordinated by communication. Secondly, Software Risk Evaluation (SRE) team is employed for supporting the running of the whole process. SRE team also takes responsibility of communication, which is a vital part of SEI’s method.

Strengths of the SEI’s risk management method are obvious. The author concluded the review part of the original article that the reliability and the efficiency of the risk management process will be greatly increased due to the involving of SRE team. Moreover, in my opinion, the participation of a specific team is beneficial to follow aspects: Firstly, professional team is technically at tackling the specific risk management problems. Engaging of SRE team will increase the operational capability of risk control no matter what types risk management type they use. Secondly, the impeccable SRE team guarantees the cooperation between different functional team of the whole software project by efficient and goal-oriented communication.  The conflicting, misunderstanding and ambiguity of function between various teams in the same project will be removed at the greatest extent. Thirdly, and more importantly, the major advantage of the SRE team is the improvement of efficiency. With the participation of the SRE team, relevant discussion and information collection / integration can be made more properly and in time. Meanwhile, members of SRE team can join the discussions and decision-making whenever and wherever during the five main sub-process we mentioned before for the sake of reliability and the effectiveness of the risk management process.  Expect the usage of the SRE team, SEI’s risk management method also benefits from its circulation model which is not mentioned in the original article.  I take the view that cycling process is more helpful for enhancing the quality of risk control by providing all-sided risk identifying, rapid and detailed feedbacks, and planning fixing for underlying shortcomings.

In terms of the drawbacks of SEI’s risk management method, the original article seems cover the majority respects which I cannot agree more. Human efforts during this method may cause inconclusive results.  Communication between individuals contains uncertainty features which will influence on the operation of systematically process. One of possible ways to address this problem is training a professional SRE team, but it causes the other drawbacks of the SEI’s method, which is the fact that employing and managing such an SRE team is, in a way, difficult and expensive.

 

Comparison

 

In this part, the comparison of two methods will be provided in order to contrast the pros and cons of them.  Firstly, from the view of architecture, Boehm’s adopts a linear process while SEI’s methods use cycling process to repeat iteration.  Obviously, SEI’s method ensures the correctness and stability of risk management.  Secondly, as only the fixed principles (top-10 checklist and calculation of parameters) are used in Boehm’s method, it has a weakness in handling the continual changes which relies on a stable environment. SEI’s method, because of the involvement of human, is able to respond to the uncertainty situation. Robustness and universality are increased significantly due to this.  As for the description of the method from the respect of reality operation, SEI’s method concentrates on practical and operation, while Boehm’s method focuses more on conception model. In terms of weaknesses, SEI needs an abundant human resource to support whole method, which is challenging for small software companies.

 

Conclusion

 

Overall, the original article demonstrated two separate risk management methods in software industry clearly and well-organized. I just fill the gap on the review part which the author did not concentrate on. In this article, strengths and weaknesses of two software risk managements are evaluated according to my knowledge.  I also compare these methods. Consequentially, SEI’s method is better to operate, especially for a large-scale software company under a well-manage the situation.

 

References

 

[1] M. J .Han,” A Review of Two Software Risk Management Methods”, retrieved on 4th, March, 2014 from https://blog.inf.ed.ac.uk/sapm/2014/02/13/a-comparison-of-two-software-risk-management-methods/

[2] B. W. Boehm, “Software risk management: principles and practices,” Software, IEEE, vol. 8, no. 1, pp. 32–41, 1991.

[3] Y. B. et al, “Software risk management: A practical guide,” 2000. http://cio.doe.gov/sqas.

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.