Showing posts with label software reuse models. Show all posts
Showing posts with label software reuse models. Show all posts

Friday, February 8, 2008

Ingredients for Reuse Introduction: Make your Mix

In several talks which I have given, different attendants have asked me about how to introduce reuse in companies. At the RiSE, we have many papers and seminars about reuse introduction, reuse maturity models, frameworks, tools, etc. But, the main question often is: what are the ingredients to perform it?

During the First RiSE Summer School on Software Reuse (RiSS), we had some interviews with the keynotes speakers about this aspect too. In this post, I will not concentrate in academic references or papers. You can read some of them here or with other researchers such as Bill Frakes, Maurizio Morisio, Jeff Poulin, Ruben Prieto, Martin Griss, Wayne Lim, Will Tracz, etc.

First of all, your CEO or Top Manager should be convinced that reuse can be a good way for your organization to improve the time-to-marketing, quality and reduce costs. It is necessary because they will send this message for all the organization. It happens often in quality programs, for example. In addition, I believe that all the organization should understand and believe in this idea, i.e., the culture should be spread from project managers until software engineers. Otherwise, this effort cannot work properly. But just understand and accept the idea is not enough. We need to train the necessary staff to introduce reuse. In some cases, the people need to know what can help, what are the available techniques, tools and metrics. With people convinced/motivated and trained, I think that is also important to have a reuse plan. It is necessary for the reuse team as well as for the CEO because you should show clearly the steps to introduce reuse, the milestones, the risks, the costs, the benefits, i.e., you should show that the approach is systematic with a defined begin-end cycle.

So, in this path, a pilot project based on a specific domain or not should be considered to show it. For this pilot, the plan can address to analyze applications in the organization [what is common and variable, profile of the developed software], change or adapt the current process, collect other data, define some [specific] tools and track the pilot. It working well is time to analyze the pilot, understand the problems and strong points, learn with the process, present the results for the sponsors, and spread it for more areas in the organization.

Wednesday, November 28, 2007

The Historical "Software Reuse Adoption" Meeting



On November, 27th 2007, I had a historical meeting with Ruben Prieto-Díaz from James Madison University and Dirk Muthig from Fraunhofer Institute. We discussed important points about reuse adoption, specially, about maturity models, and what are the main obstacles to be surpassed and what are the best ways towards an effective reuse adoption program. In the following, the meeting summary:

I presented to Dr. Prieto-Díaz the current version of the RiSE Maturity Model, its principles, fundamentals and the scientific background, citing the main important works in the area. Prieto-Díaz worked in the SPC, so he knows the RMM and helped me to see some new obstacles that I had not considered yet.
An interesting issue is related to the people and the personal knowledge. Here, in Brazil, we have the culture to change the staff (software engineers) commonly. In this context, we need to specify a set of policies, procedures or rules (?) to aid in the knowledge transfer and storage, to make it available for the new people that come to the organization in the future. Reuse is important not only based on the software life cycle assets, but the knowledge reuse is also important for the organization. Some methods, techniques and environments/tools must be defined and introduced to support these policies/procedures and to make this content available for the next projects.
Related to my thesis, Prieto-Díaz highlighted the importance of making explicit the reuse concept, in the context of the thesis. As well as the boundaries and the scientific contribution.

After that, I met Dr. Dirk Muthig and he gives me another vision of the work. Muthig works at the Fraunhofer Institute, "similar" to CESAR, and has a vision focused on the practice (industry).
The meeting with Muthig was amazing. He explained me how they design a Ph.D. thesis at
Fraunhofer Institute, and adviced me to follow the same way. I will try to explain, summarized, what we define.
A Ph.D. thesis is composed of four elements: a Problem, an Idea, the Benefits; and, an Action Plan. In my thesis context, they are:
  • P: Brazilian organizations see benefits of reuse but don't know how to introduce it. The main problem can be seen by this simple expression:
    • reuse -> a lot of investments + risks => don't do it!
    • a lot of investments because sometimes you need to reorganize everything, rewrite everything and rebuild and restructure everything!
  • I: Provide an incremental path towards reuse adoption/introduction in practice.
  • B: The main benefits are:
    • lower risks;
    • quicker benefits;
    • smaller jumps of investments.
  • A: The action plan can be something like this:
    • Survey of Single Systems practice [related to reuse]
      • in this scenario, we will have some companies with no reuse
    • Define a first step that applies to all of them [measure reuse, explicit of reusable assets...]
    • Develop a plan to aid in this question: how to maximize reuse from here? (it can be a link to Product Lines Approaches).
The main issue is that reuse is a Quality Improvement Paradigm (QIP) and we need to consider it in the reuse adoption program and, specially, in my thesis.
Prieto and Dirk agree that is fundamental to explicit the reuse concept. The boundaries should also be described. The next steps are: to specify the assessment and the reuse introduction process, based on the RiSE Maturity Model.

Wednesday, September 12, 2007

Investments in reusable software

Today, we had another interesting discussion in the RiSE group involving a work of David Rine and Robert Sonnemann entitled "Investments in reusable software. A study of software reuse investment success factors", published at Journal of Systems and Software, v. 41 pages 17-32, 1998. Rine and Sonemann support the theory that a set of success factors that are common among the organizations exist and have some previsibility relationships with software reuse. Besides, the research of Rine and Sonemann also investigated if the reuse really has influence in the software productivity and quality.


The success factors were grouped into the following categories: administration (management) commitment; investment strategy; business strategy; technological transfer; organizational structure; process maturity, product line approach; software architecture, components availability; and components quality. To measure the experience in software reuse (reuse capability), productivity, quality and the set of success factors,
Rine and Sonemann developed a questionnaire.

During the discussion some topics and positions adopted by
Rine and Sonemann were questioned, such as: (1) why specify five levels to reuse capability model? Is the level approach the better choice? why do not use scenarios, for example, to suggest and to aid the organizations to identify their position in the reuse practices? (2) the model to calculate the overall probability of reuse success is subjective. (3) the success factors is not a big surprise for us, but this occur because we are reuse practitioners and researches or because is it the obvious choice? (4) the focus on productivity and quality is a better way to target the organizations and to advocate in favor of reuse practices. (5) to get the support of the management people, and the industry, we need ways to show the benefits and the better way is measure the activities, so the utilization of metrics to measuring the software reuse capability. (6) more studies and details are needed to explain the reuse capability model, specially the process of assessment of reuse capability of an organization and the process of reuse implementation in this organization, according to reuse capability model.

So, I think that this work is a very good contribution in the reuse adoption area. We know that reuse adoption is a great advantage for organizations, and this is the main issue to "hide" some activities, tasks and some information about that. I believe that our reuse adoption model can evolve in our environments (such as
CESAR and PITANG) to reach a maturity to be shared with other organizations.

Tuesday, September 11, 2007

RiSE publishes a survey about software reuse in the Brazilian industry scenario

The paper entitled "Software Reuse: The Brazilian Industry Scenario", authored by Daniel Lucrédio, Kellyton Brito, Alexandre Alvaro, Vinicius Garcia, Eduardo Almeida, Renata Fortes and Silvio Meira, will be published in the Journal of Systems and Software, one of the world's most important vehicles in the Software Engineering area. The study analyzed 57 small, medium and large companies in the country, with the objective of identifying the decisive factors for adopting a software reuse program. The study aimed at answering the main doubts and concerns of the companies seeking to promote software reuse.


Similar studies were already conducted in other countries, including surveys from Bill Frakes, from VirginiaTech, Maurizio Morisio, from Politecnico di Torino and David Rine, from George Mason University. Now, with this survey from the RiSE group being published, the Brazilian scenario begins to figure as an important part of the reuse literature, serving as basis for other reuse researchers and practitioners.

Wednesday, August 22, 2007

Open Market for Software Development


Today, we had an interesting discussion in the RiSE group involving a draft proposal by David Weiss related to an Open Market Software Development (OMSD). David has a long experience with software development and his proposal is at least polemic. David proposes a new approach to software development called OMSD in order to be an attempt to free software developers from restrictions under which they work by allowing them to work on what they choose and with whom they choose. His approach is inspired – it is very good for us – by Ricardo Semler a Brazilian executive with innovative ideas in which our managers must read more.

In David’s approach, he discusses some rules for development in the market, roles, metrics, etc. However, during the discussion, some topics were strongly questioned [sometimes in a funny way] such as: 1. the approach is just related to software product line in which we have a well-defined architecture? If yes, it can be a problem in an open market in which not often we (developers) have all the background in that domain. 2. the guys questioned the analogy made with the Personal Computer area. 3. the relationship between the company publishing the specification and the available developers should be very defined since the developers cannot do their work or disappear, etc. So, maybe, we have to define more legal aspects in the model. Maybe, some NDAs can solve it. But, it should be well-defined. 4. Often when I discuss this model, the people – managers – asked me about the business model and the economic aspects. It is not easy to define a rigorous analysis for this approach since we do not have data about it. However, David has a strong background in the measurement area (he created the GQM) and I think that he is thinking in this direction.

In general, I think that this approach can be more discussed and maybe experimented in our environment, Digital Port, where we have a rich ecosystem composed of universities, companies, and especially, very good professionals. I believe that this approach can be a way to integrate more these parts and maybe contributes to increase our potential to enter in international markets.

Unfortunately, we cannot publish David’s paper here, however, you can see his talk during the 2nd Workshop for Reuse Introduction in Companies (WIRE).