Stop learning to innovate through trial and error

Learn TRIZ, a methodology developed by Genrick Altshuller for solving problems more efficiently and intuitively.

Design and Evolution of Software Libraries – A TRIZ based approach to innovation
Ramkumar Subramanian, Wipro Technologies
 
In this paper we propose an application of TRIZ to the design and evolution of software libraries for enabling library designers to systematically provide innovative libraries and developers to make the right choices. Software libraries, a collection of an interface and subroutines that were typically associated with systems programming, are today the main engines of growth in an ecosystem where developers are often viewed as business partners. Libraries exist today for major operating systems like Windows, major device markets like smart-phones , major hardware configurations like embedded or multi-core, major languages like Java and specialized domains like search or maps.
Most libraries involve some kind of trade-off in terms of the context and purpose of use. Whereas some libraries may emphasize memory efficiency over speed, some value extensibility over comprehensiveness and others may choose niche segments versus generic features. The rise of the open source as a credible business proposition has lead to the proliferation of libraries that are available today for the developer to choose from when doing a feature in a cost effective fashion. This also allows us to analyze the dynamics of these open source libraries for the resolution of the contextual and teleological conflicts and corresponding solutions that were reached while controlling for the external variables using the tools provided by TRIZ. Using this, and the market reaction to the strategies over time, we can identify the best practices that will aid a library developer to innovate with new or existing libraries and developers to make the right choice while using them.
The dataset used in the study is a comprehensive sampling of open source Java products and libraries for the past 5 years. Java is an ecosystem which thrives on libraries and is often held as a paradigm of a library oriented language. There are more than 20 production grade open source libraries in Java for XML processing itself, each of which takes a unique approach to resolve a conflict. A classic case of XML processing involves one library optimized for speed, one for memory and one for network performance, each of which has been successful in its own niche. We apply TRIZ to this dataset to see if we can learn from these libraries to aid systematic innovation.
Finally, the state of art in software library design is based on the library centric software design conferences. Based on our above datasets, and the present understanding of the field, we then extrapolate to posit some generic laws about library evolution and design under various market scenarios. We view our work as useful to software engineering as well as other interdisciplinary fields that also have a library or toolkit kind of approach to system building.




donation

join now

Webinars