Gregorio Robles, Jesús González Barahona.
|
fernand0
|
no
|
|
MJesus
|
traduciran en #redes al otro
|
|
fernand0
|
en chino no
|
|
felix
|
jaime: listlogs
|
|
qnximg
|
como que en chino no !
|
|
jgb
|
ok. Should we start?
|
|
fernand0
|
yep
|
|
fernand0
|
wait a minute
|
|
PedroJ
|
Ça va?
|
|
fernand0
|
Hello,
|
|
fernand0
|
|
|
fernand0
|
today we have here Gregorio Robles, and Jesús González Barahona.
|
|
fernand0
|
They are
|
|
fernand0
|
with the Grupo de Sistemas y Comunicaciones (ESCET). Universidad Rey Juan
|
|
fernand0
|
Carlos in Spain.
|
|
fernand0
|
|
|
fernand0
|
The talk will be: "On software libre engineering".
|
|
fernand0
|
Their group is doing very interesting work on this topic.
|
|
fernand0
|
|
|
fernand0
|
We are grateful to the speakers for preparing this interesting talk.
|
|
fernand0
|
We are also grateful to all of you for comming here.
|
|
fernand0
|
|
|
fernand0
|
As usual, the talk will be given here. Translators (if available) will translate in #redes. We have also a channel at #qc, where you can write questions and comments about the talk.
|
|
fernand0
|
|
|
fernand0
|
grex, jgb ...
|
|
grex
|
thanx, fernand0
|
|
grex
|
first a note on the title of this talk
|
|
grex
|
the title in English should be "on libre software engineering"
|
|
fernand0
|
ops
|
|
fernand0
|
sorry
|
|
grex
|
libre software is the term we use to avoid the confusion of free software
|
|
jgb
|
Thanks, fernand0
|
|
grex
|
no problem, fernand0 ;-)
|
|
grex
|
if you want to know more about this term
|
|
grex
|
you can have a look some time at
|
|
grex
|
http://sinetgy.org/jgb/articulos/libre-software-origin/
|
|
jgb
|
In fact this is just
|
|
grex
|
which is a short story about it
|
|
jgb
|
a quick reserch on the origins of the term "libre software"
|
|
jgb
|
that despite its obvious French or Spanish origin
|
|
grex
|
hmmm... it seems that the URL doesn't work right now
|
|
jgb
|
came from the States...
|
|
jgb
|
Anyway, grex, I guess
|
|
jgb
|
we should enter into the talk...
|
|
grex
|
yes, sure
|
|
grex
|
so, here's a short summary
|
|
grex
|
about the things we are going to talk about
|
|
grex
|
Fist, we are going to introduce the differences between 'classical' software engineering and libre software engineering
|
|
grex
|
then we are going to analyze the concept of the bazaar
|
|
grex
|
and last, but not least we are going to talk a little bit about some studies
|
|
grex
|
that some research groups have performed on this matter
|
|
grex
|
So, let's take over the first point
|
|
grex
|
I imagine many of you have asked yourselves: why libre software engineering?
|
|
grex
|
the answer is that it is in some points very different from what we
|
|
grex
|
have known as software engineering so far
|
|
grex
|
- what we'll call here the 'classical' view
|
|
jgb
|
Look at it from this point of view
|
|
jgb
|
Libre software projects are doing
|
|
jgb
|
almost exactly what classical texts on software engineering
|
|
jgb
|
say that a project should avoid
|
|
jgb
|
in order to be successful
|
|
jgb
|
Of course this is not because those books
|
|
jgb
|
are wrong
|
|
jgb
|
The issue that the environment is different
|
|
jgb
|
Libre software is basically produced in an new environment
|
|
jgb
|
completely alien to classical ways of producing software
|
|
jgb
|
specially in corporate environments
|
|
grex
|
so, new environment means new possibilities, but also new challenges
|
|
grex
|
the possibilities come from the part that there is a lot of data available publicly
|
|
grex
|
so that we can study the libre software development process
|
|
grex
|
think that we don't only have the source code
|
|
grex
|
we also have all its history in the version repositories
|
|
grex
|
or we can have a look at the bug tracking system to see the errors
|
|
grex
|
or at the mailing lists and so on
|
|
grex
|
and actually we can have all this for thousands of libre software projects.
|
|
grex
|
But on the other hand... libre software is a difficult environment to predict
|
|
grex
|
just imagine: we are putting many people who don't know each other
|
|
grex
|
in a very different geographical location to work on a software project
|
|
grex
|
and we don't even know how much time these developers devote to the project
|
|
grex
|
as they are mostly volunteers.
|
|
jgb
|
And we don't have
|
|
jgb
|
a single point to refer for information
|
|
jgb
|
such as the company for which the developers work in the "classical" case
|
|
jgb
|
In addition,
|
|
jgb
|
libre software is not sold, and it is really difficult to estimate the user base
|
|
jgb
|
for any libre software product
|
|
jgb
|
In fact, in many cases it is difficult even to track the development activity
|
|
jgb
|
since a fork can happen in any moment
|
|
jgb
|
and activity goes elsewhere,
|
|
jgb
|
where the forked development team
|
|
jgb
|
decides.
|
|
grex
|
So, once we know why it is interesting to focus on software engineering
|
|
grex
|
issues regarding libre software, let's enter into some detail
|
|
grex
|
I guess many of you are eager about it
|
|
grex
|
let's talk about the bazaar
|
|
grex
|
first, we have to have in mind that libre software projects are libre
|
|
grex
|
because of the license they are released with
|
|
grex
|
that means that being libre is a legal property
|
|
grex
|
of the software, no a technical one.
|
|
jgb
|
That is,
|
|
jgb
|
libre software is defined for the freedoms that
|
|
jgb
|
have who received the software
|
|
jgb
|
And that doesn't mandate
|
|
jgb
|
a certain development model
|
|
jgb
|
And in fact, each libre sofware project
|
|
jgb
|
has its very own development model
|
|
jgb
|
However, many of them
|
|
jgb
|
(specially those of a certain size)
|
|
jgb
|
exhibit certain common characteristics
|
|
jgb
|
The first well known paper stressing those characteristics
|
|
jgb
|
was "The cathedral and the bazaar",
|
|
jgb
|
by Eric Raymond (esr)
|
|
jgb
|
From them on, you can see a lot of talk about
|
|
jgb
|
the "bazaar model"
|
|
jgb
|
But this was just a first try,
|
|
jgb
|
which in fact has later been shown
|
|
jgb
|
not that accurate.
|
|
grex
|
Here's the URL to CatB
|
|
grex
|
http://www.catb.org/~esr/writings/cathedral-bazaar/
|
|
grex
|
which you'll find translated into several languages
|
|
grex
|
Basically, its main argument is that bazaar-driven projects
|
|
grex
|
try to open the development process as much as possible
|
|
grex
|
this means to show you code, to have frequent releases
|
|
grex
|
to look for your users in order to make them collaborate
|
|
grex
|
and become co-developers
|
|
grex
|
and to lower the barrier of entry to people
|
|
grex
|
who are willing to collaborate with you on the project
|
|
grex
|
One of the main mistakes is that people generally
|
|
grex
|
think of libre software as synonym of the bazaar development model
|
|
grex
|
which is rather unaccurate
|
|
grex
|
if you have a look at SourceForge
|
|
grex
|
http://www.sourceforge.net
|
|
grex
|
which is the biggest libre software development site
|
|
grex
|
with almost 100,000 projects
|
|
grex
|
you'll see that most of them are small ones
|
|
grex
|
in fact, some studies on it have shown that the median number of developers
|
|
grex
|
in a project is 1
|
|
grex
|
in other words, the most common projects are one-developer projects
|
|
grex
|
and for having a bazaar-style development model
|
|
grex
|
we clearly need more than that.
|
|
jgb
|
In any case,
|
|
jgb
|
as we said before, some characteristics are found
|
|
jgb
|
once and again
|
|
jgb
|
in most libre software projects
|
|
jgb
|
When a group of developers work on it,
|
|
jgb
|
they are usually geographically distributed
|
|
jgb
|
usually with almost no face-to-face interaction
|
|
jgb
|
working at different time zones
|
|
jgb
|
using almost only Internet-based tools
|
|
jgb
|
to coordinate themselves
|
|
jgb
|
They usually have to deal
|
|
jgb
|
with cultural differences
|
|
jgb
|
with the lack of formal hierarchies
|
|
jgb
|
and even with the "usual" ways to split work:
|
|
jgb
|
no boss can say what a volunteer developer
|
|
jgb
|
should do
|
|
jgb
|
she can just suggest and motivate
|
|
jgb
|
(which is a very different role to that of the classical boss)
|
|
jgb
|
Therefore we have here some characteristics of
|
|
jgb
|
global software development
|
|
jgb
|
mixed with new ways of coordination needed when nobody can
|
|
jgb
|
simply mandate what a team should do
|
|
jgb
|
By the way, the component about global development is really novel
|
|
jgb
|
The libre software community is experimenting with the largest
|
|
jgb
|
geographically distributed
|
|
jgb
|
community of developers
|
|
jgb
|
For instance, we have projects with hundreds of people developing software
|
|
jgb
|
cooridnated only through Internet-based tools
|
|
jgb
|
With respect to coordination, we are seeing
|
|
jgb
|
new trends in self-organization.
|
|
grex
|
So, once that we know about the bazaar let's have a look then at the different studies that have
|
|
grex
|
been performed on big libre software projects
|
|
grex
|
One of the most known studies is about Linux
|
|
grex
|
and the evolution of its source code
|
|
unizar.es.uninet.edu MODE #linux +o krocz
|
|
|
grex
|
historically there has been a branch in software engineering called
|
|
grex
|
software evolution that looked at how software evolves
|
|
grex
|
in time
|
|
grex
|
Of course, having the source code available is a big advantage for libre software
|
|
grex
|
so we can perform such studies on any project
|
|
grex
|
'classical' ones usually looked at big systems at IBM and so on
|
|
grex
|
where researchers could have a look at (usually signing a Non-Disclosure-Agreement)
|
|
grex
|
the study of the Linux kernel has shown that it grows superlinearly
|
|
grex
|
which means that the pace of development is increasing
|
|
grex
|
while 'classical' studies always had evidences that the growth
|
|
grex
|
of big software systems of several millions of source lines of code
|
|
grex
|
tend to grow sublinearly
|
|
grex
|
Looking for the cause of this
|
|
grex
|
researchers have notices that this is due to the modularization of Linux
|
|
grex
|
which allows to have several groups working with few communication requirements
|
|
grex
|
at the same time on the same project
|
|
grex
|
this is specially true for drivers in the linux kernel
|
|
grex
|
which may be added independently of any other one
|
|
grex
|
so that it allows to grow faster than any other system studied so far
|
|
grex
|
by the 'classical' view
|
|
grex
|
It would be very interesting to see if this happens also
|
|
grex
|
in other libre software projects
|
|
grex
|
so ongoing research is focusing on this aspect.
|
|
jgb
|
This is just an example of what can be done
|
|
jgb
|
by researching the rich information
|
|
jgb
|
publicly available in libre software repositories
|
|
jgb
|
Those repositories are: cvs or svn repos, mailing lists,
|
|
jgb
|
bug reporting systems, weblogs,
|
|
jgb
|
and some others
|
|
jgb
|
By getting information from them, we can obtain
|
|
jgb
|
quantitative data that can later be used
|
|
jgb
|
to answer interesting questions, such as
|
|
jgb
|
is Linux growing lineraly
|
|
jgb
|
or...
|
|
jgb
|
are libre software projects above 1 M lines of code
|
|
jgb
|
having more bugs, or having them
|
|
jgb
|
fixed more slowly?
|
|
jgb
|
There are several groups in the world analyzing libre software from this point of view
|
|
jgb
|
on of which is ours, at URJC
|
|
jgb
|
An example of the tools that these groups are using
|
|
jgb
|
and the results that are obtained
|
|
jgb
|
can be the CVSAnalY tool
|
|
jgb
|
http://libresoft.dat.escet.urjc.es/index.php?menu=Tools&Tools=CVSAnalY
|
|
jgb
|
which we use to analyze
|
|
jgb
|
CVS logs, and from that information
|
|
jgb
|
getting great insight on how libre software is actually produced.
|
|
grex
|
for instance, we have used this tool so far for studying several big libre software
|
|
grex
|
projects as KDE and GNOME
|
|
grex
|
you can find the results for KDE at the following URL:
|
|
grex
|
http://libresoft.dat.escet.urjc.es/cvsanal/kde3-cvs/
|
|
grex
|
As you may see, a lot of information can be extracted from CVS
|
|
grex
|
big projects usually divide themselves into smaller pieces
|
|
grex
|
which are called modules
|
|
grex
|
modules try to be independent from each other to avoid having much
|
|
grex
|
intercommunication
|
|
grex
|
with the CVSAnalY tool we can see who is working on each module and how it
|
|
grex
|
has evolved in time
|
|
grex
|
there are some interesting things that we have seen out of the analysis of modules
|
|
grex
|
first is that older projects usually have several generations of developers working on them
|
|
grex
|
this goes against the idea of having 'code gods'
|
|
grex
|
in the sense that the people who started and made the project
|
|
grex
|
successful can leave the project without fearing it to fall down
|
|
grex
|
as others will take it over
|
|
grex
|
so we can see different groups of people pushing the project forward
|
|
grex
|
in our words: different 'generations'
|
|
grex
|
another important issue that has been pointed out in literature
|
|
grex
|
very often is the fact that there is a high inequality in contributions
|
|
grex
|
a small set of persons contribute a big part of the project
|
|
grex
|
following nearly a pareto distribution
|
|
grex
|
which says that 20% of developers make out 80% of the contributed code
|
|
grex
|
some researchers say that libre software follows an onion model
|
|
grex
|
we have a core group of around a dozen developers who take over most part of the tasks
|
|
grex
|
and around it another group which is around an order of magnitude bigger that contribute
|
|
grex
|
occasionally
|
|
grex
|
with source code and by other means
|
|
grex
|
finally there is also another group, another order of magnitude bigger than the last one
|
|
grex
|
who is responsible for smaller -but very important tasks- as bug reports and so on
|
|
grex
|
At last we have the users of the software
|
|
grex
|
but knowing their number is pretty difficult as libre software can be redistributed
|
|
grex
|
and is shipped in multitude of ways (distributions, etc.)
|
|
grex
|
so it is very difficult to know how many people actually use a software.
|
|
jgb
|
Another example
|
|
jgb
|
of what kind of quantitative studies
|
|
jgb
|
can be done is our analysis on Debian
|
|
jgb
|
http://people.debian.org/~jgb/debian-counting/
|
|
jgb
|
This was for Debian 2.2,
|
|
jgb
|
we are now close to publish similar data on 3.0 and the upcoming 3.1
|
|
jgb
|
These analysis look at the source code for the whole distribution, and
|
|
jgb
|
can answer questions such as which languages are being used in Debian
|
|
jgb
|
(by the way, the answer is "mainly C, with some C++ and others)
|
|
jgb
|
Since Debian includes a large share of all the "stable" software available
|
|
jgb
|
for GNU/Linux whcih is also libre (free, open source) software,
|
|
jgb
|
this is a good indicator of which languages are used
|
|
jgb
|
by the libre software community developing for GNU/Linux-like systems
|
|
jgb
|
We can also use a classical measure of the amount of code,
|
|
jgb
|
the SLOC (source line of code)
|
|
jgb
|
to estimate the size of Debian
|
|
jgb
|
which as was said before, is also a rough estimation of the aggregated size
|
|
jgb
|
of the libre software developed for GNU/Linux
|
|
jgb
|
That was more than 50 MSLOC for Debian 2.2, about 100 MSLOC for 3.0
|
|
jgb
|
and will probably be close to 200 MSLOC for Debian 3.1, according
|
|
jgb
|
to our current estimations.
|
|
jgb
|
SLOC are very important since they are the only input
|
|
jgb
|
to a classical effort estimation model, the COCOMO model
|
|
jgb
|
This model uses SLOC of a project to estimate the effort (in man-months) needed
|
|
jgb
|
to develop such software, and is widely used as a rough
|
|
jgb
|
estimator in "classical" software engineering.
|
|
jgb
|
Using it, we can say that, were COCOMO a valid estimator,
|
|
jgb
|
the software in Debian had required about 2,000 Meuro to develop
|
|
jgb
|
In other words, were the software in Debian developed using classical
|
|
jgb
|
soft. eng. methods where COCOMO were valid,
|
|
jgb
|
that is the amount of resources needed
|
|
jgb
|
Of course this is just a very rough comparison
|
|
jgb
|
but can give at least an order of magnitude
|
|
jgb
|
Unfortunately, for many reasons COCOMO seems not to be valid for libre software projects
|
|
jgb
|
In fact, we are looking for other ways of estimating effort in the case of libre software projects.
|
|
grex
|
So, just finishing...
|
|
grex
|
but before a last example
|
|
grex
|
have a look at http://gsyc.escet.urjc.es/~grex/apache/todas.html
|
|
grex
|
and you'll find a (social) network analysis that we have performed on the Apache project
|
|
grex
|
nodes in this network analysis are the CVS modules I've been talking about
|
|
grex
|
some lines ago
|
|
grex
|
nodes (modules) are connected if they have at least a developer in common
|
|
grex
|
if you do this, then you have something like this:
|
|
grex
|
http://gsyc.escet.urjc.es/~grex/apache/apache-total-feb04.jpg
|
|
grex
|
which is a (big) mess
|
|
grex
|
where you almost cannot see anything about the (social) structure of the project
|
|
grex
|
so we have used an algorithm that looks for structure in such a network
|
|
grex
|
and get a picture like this:
|
|
grex
|
http://gsyc.escet.urjc.es/~grex/apache/apache-2004-2-01.sna2.jpeg
|
|
grex
|
after the algorithm, modules in the same branch belong somehow
|
|
grex
|
together
|
|
grex
|
se have coloured the nodes by their family
|
|
grex
|
so red ones are the ones that belong to the httpd server
|
|
grex
|
blue ones to jakarta
|
|
grex
|
xml ones are in green
|
|
grex
|
and so on...
|
|
grex
|
and as we can see from the picture
|
|
grex
|
the structure of the network seems to follow this very good
|
|
grex
|
if you want to know more about this
|
|
grex
|
have a look at this blog entry
|
|
grex
|
http://barba.dat.escet.urjc.es:9080/libresoft/14
|
|
grex
|
where it is explained in more detail.
|
|
jgb
|
on, and this is all I guess.
|
|
grex
|
yes, thank you very much for your attention
|
|
jgb
|
If we had to have a conclussion,
|
|
jgb
|
it could probably be that this
|
|
jgb
|
libre software engineering
|
|
jgb
|
is a new filed,
|
|
jgb
|
very promising in results,
|
|
jgb
|
but which is still slowly starting to be explored...
|
|
jgb
|
I gues we can now take some questions...
|
|
jgb
|
(if there is still somebody awake ;-) )
|
|
felix
|
muchísimas gracias a ambos por la charla!
|
|
grex
|
gracias, felix
|
|
jgb
|
A vosotros por estar ahí
|
|
felix
|
vamos a dejar que terminen la traducción
|
|
feistel
|
felix: puede aplicar el libre softeng a software no necesariamente libre
|
|
feistel
|
upsç
|
|
feistel
|
jgb: puede aplicar el libre softeng a software no necesariamente libre
|
|
felix
|
y... comenzamos con las preguntas en éste canal
|
|
jgb
|
feistel, desde luego,
|
|
jgb
|
pero teniendo en cuenta que mientras los datos son públicos
|
|
felix
|
y luego podemos seguir charlando aquí
|
|
jgb
|
en el caso de la ing. del software libre,
|
|
jgb
|
no lo suelen ser en el caso del software privativo,
|
|
trulux
|
CLA CLAP
|
|
jgb
|
por lo que los estudios no son reproducibles, y es difícil
|
|
jgb
|
tener información sobre muchos casos, que permita tener evidencias
|
|
jgb
|
estaedísticas
|
|
felix
|
vamos un fuerte aplauso para nuestros conferenciantes [sin miedo :)]
|
|
jgb
|
(gracias por los claps=
|
|
felix
|
clap! clap! clap! clap! clap! clap! clap! clap!
|
|
felix
|
clap! clap! clap! clap! clap! clap! clap! clap!
|
|
felix
|
clap! clap! clap! clap! clap! clap! clap! clap!
|
|
felix
|
clap! clap! clap! clap! clap! clap! clap! clap!
|
|
feistel
|
el sitio de la Universidad Rey Juan Carlos parece ser bastante bueno
|
|
feistel
|
clap clap clap clap clap clap clap clap
|
|
feistel
|
clap clap clap clap
|
|
feistel
|
clap clap clap clap
|
|
feistel
|
clap clap clap clap
|
|
feistel
|
clap clap clap clap
|
|
xtingray
|
clap! clap! clap! clap! clap! clap! clap! clap!
|
|
xtingray
|
clap! clap! clap! clap! clap! clap! clap! clap!
|
|
xtingray
|
clap! clap! clap! clap! clap! clap! clap! clap!
|
|
xtingray
|
clap! clap! clap! clap! clap! clap! clap! clap!
|
|
xtingray
|
clap! clap! clap! clap! clap! clap! clap! clap!
|
|
xtingray
|
clap! clap! clap! clap! clap! clap! clap! clap!
|
|
felix
|
clap! clap! clap! clap! clap! clap! clap! clap!
|
|
felix
|
clap! clap! clap! clap! clap! clap! clap! clap!
|
|
felix
|
clap! clap! clap! clap! clap! clap! clap! clap!
|
|
jgb
|
(just out of couriosity,
|
|
jgb
|
after this talk in English,
|
|
jgb
|
is there any native English speaker in this channel?)
|
|
jgb
|
(parece que grex está cortado, le transmitiré los aplausos)
|
|
felix
|
ya casi termina la traducción en #redes
|
|
feistel
|
on libre software engineering == OSSD ?
|
|
feistel
|
http://cosst.ieee-occs.org/presentations/COSST2003-Scacchi-BestPractices.pdf
|
|
damage
|
clap clap clap clap
|
|
jgb
|
OSSD es usualmente "open source software development"
|
|
jgb
|
Y sí, es otro nombre para "libre software development".
|
|
jgb
|
"libre software engineering" es supuestamente cuando se aplica ingeniería
|
|
jgb
|
al asunto...
|
|
feistel
|
aja
|
|
trulux
|
clap! clap! clap! clap! clap! clap! clap! clap!
|
|
trulux
|
clap! clap! clap! clap! clap! clap! clap! clap!
|
|
trulux
|
;D
|
|
jgb
|
Ese papel que enlazas es un de los conocidos al respecto. Scacchi es uno de los que trabaja
|
|
jgb
|
en este campo.
|
|
jgb
|
Pero no estoy muy de acuerdo con todo lo que se pone en él...
|
|
feistel
|
por q? tu q piensas?
|
|
jgb
|
Creo que nos faltan aún datos para poder ser concluyentes en muchos aspectos
|
|
jgb
|
que a veces damos por supuestos.
|
|
jgb
|
Por ejemplo, y sin entrar en ese papel en particular,
|
|
jgb
|
no sabemos si el software libre es capaz de desarrollar proyectos estables
|
|
jgb
|
"gracias a" o "a pesar de" que
|
|
jgb
|
no utiliza muchas de las prácticas habituales en la ingeniería del software
|
|
jgb
|
"tradicional"
|
|
trulux
|
grex, hola
|
|
jgb
|
Ah, grex de vuelta.
|
|
grex
|
me quedé sin conexión :-/
|
|
jgb
|
Nos han aplaudido y todo ;-)
|
|
grex
|
vaya
|
|
grex
|
tendré que mirar el log
|
|
grex
|
para verlo :-)
|
|
felix
|
grex => http://felix.zapto.org/jaime/linux.html
|
|
felix
|
log no oficial
|
|
felix
|
pero... para los fines prácticos de verse... va bien :)
|
|
grex
|
felix, muchas gracias
|
|
jgb
|
¿Bueno, algo más? (que me espera la familia para cenar) :-(
|
|
feistel
|
jgb: mas alla de las discrepancias, hoy en dia el approach scacchi es el mas desarrollado y probado?
|
|
jgb
|
Mmm. Es difícil de decir.
|
|
felix
|
grex: de naa.
|
|
felix
|
s/naa/nada/
|
|
jgb
|
en el fondo, es una cuestion de qué consideras por "probado y desarrollado".
|
|
jgb
|
si te centras en cosas que podamos mostrar como estadísiticamente válidas,
|
|
jgb
|
creo que lo único que podemos decir es que hay pocos datos
|
|
jgb
|
salvo quizás para unos pocos proyectos.
|
|
feistel
|