Introduction to Free Software - SELF | Sharing Knowledge about ...
Introduction to Free Software - SELF | Sharing Knowledge about ...
Introduction to Free Software - SELF | Sharing Knowledge about ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
© FUOC • P07/M2101/02709 109 <strong>Free</strong> <strong>Software</strong><br />
complementary points of view, at times does not allow us <strong>to</strong> obtain a broader<br />
vision of the project. In the Libre <strong>Software</strong> Engineering Web Site [86] we can<br />
follow these initiatives in more detail.<br />
7.7. Future work<br />
Having described the brief but intense his<strong>to</strong>ry of software engineering as ap-<br />
plied <strong>to</strong> free software, we can say that it is still taking its first steps. Many im-<br />
portant aspects are still pending analysis and detailed examination until we<br />
can find a model that at least partly explains how free software is generated.<br />
The issues that will need <strong>to</strong> be tackled in the near future include the classifica-<br />
tion of free software projects, the creation of a methodology based inasmuch<br />
as possible on au<strong>to</strong>mated analysis and the use of acquired knowledge <strong>to</strong> build<br />
models that help us <strong>to</strong> understand how free software develops at the same<br />
time as facilitating decision-making on the basis of acquired experience.<br />
Another aspect that should not be overlooked and that is starting <strong>to</strong> be con-<br />
sidered now is the validity of classical engineering methods in the field of free<br />
software across all software engineering intensifications. Hence, for example,<br />
the laws of software evolution postulated by Lehman ("Metrics and laws of<br />
software evolution - the nineties view" [165]) at the beginning of the nineteen<br />
seventies and updated and expanded on in the eighties and nineties appear<br />
not <strong>to</strong> be fulfilled unconditionally in the development of some free software<br />
projects ("Understanding open source software evolution: applying, breaking<br />
and rethinking the laws of software evolution", 2003 [199]).<br />
Currently, one of the most serious deficiencies is the lack of a strict classifica-<br />
tion so that free software projects can be classed in<strong>to</strong> different categories. At<br />
present, the classification criteria are <strong>to</strong>o broad, and projects with very dispa-<br />
rate organisational, technical or other characteristics are all put in<strong>to</strong> the same<br />
bag. The argument that Linux, with an extensive community and large num-<br />
ber of developers, has a different nature and does not behave in the same way<br />
as a much more limited project in numbers of developers and users, is very<br />
true. In all events, a more detailed classification would make it possible <strong>to</strong><br />
reuse the experience acquired in other similar projects (in other words, with<br />
similar characteristics), making it easier <strong>to</strong> make forecasts, and making it pos-<br />
sible <strong>to</strong> foresee risks, etc.<br />
The second important aspect that free software engineering needs <strong>to</strong> tackle,<br />
closely connected <strong>to</strong> the preceding point and current trends, is the creation of<br />
a methodology and <strong>to</strong>ols <strong>to</strong> support it. A clear and concise methodology will<br />
make it possible <strong>to</strong> study all projects on an equal footing, discover their current<br />
status, learn how they have evolved, and of course, classify them. Tools are<br />
essential when it comes <strong>to</strong> dealing with this problem, since once created they<br />
make it possible <strong>to</strong> analyse thousands of projects with minimum additional<br />
effort. One of the objectives of free software engineering is <strong>to</strong> make it possible<br />
<strong>to</strong> study a project in depth on the basis of a limited set of parameters showing