[Release] Philosophical Discussion - The updates button is useless - discuss

Keith Hodges keith_hodges at yahoo.co.uk
Fri Jul 10 23:12:59 UTC 2009


Andreas Raab wrote:
> Keith Hodges wrote:
>> I am just asking the relevant question, why do you need an update in the
>> firstplace? Who needs it and what for?
>
> I have asked this question in the past, I'll ask it again: Have you
> ever worked in an environment where multiple people have worked
> together on the same project/product? If you have, how have you
> synchronized the changes between the developers?
For the parts of projects in Smalltalk that I was in charge of I had 3
developers, we used a bit more of a heavy weight product than squeak,
ST/X, ans ST/X has CVS integrated. We also had 2000 tests on that
project which made things really smooth. The tests were directly coded
from a spec which represented how equipment had to operate, so we had a
pretty good quality gate in my team.

For the rest the project components in C++, and perl the team was much
much larger,  50+, for development we run from daily builds and we had
things like a quality-gate team, customer acceptance testing the works.

As far as my experience goes I have been coding for 33 years, 16 of them
in Smalltalk, that should be enough.
> There's your answer. When developers work together they need a way of
> syncing their code base quickly.
When they are developing yes.
> Updating from a set of packages does just that. It is common practice
> in every software project that I am aware of, regardless whether you
> use MC or SVN. In SVN every day begins with an "svn update" to ensure
> you see what's changed. In MC every day begins with a
> "MCPackageBrowser updateAllLoadedPackages" (as it's called at Qwaq).
And I build my images from scratch.

I have to load seaside, load my extensions to seaside, then load some
basic components that test if everything works so far, because the
seaside crew may have broken something.

Then I have to load pier, and my extensions to pier, and test if those
work, because Lukas is always changing things catastrophically.

The difference between us plebs, and you a qwaq is that you have forked,
you have control over everything, you can keep all the balls in the air
at once. Pharo is the same, they have control of everything. Same for
lukas, he only tends to use code he has written himself.

In the real world we have to use what other people give us, and we have
to monkey patch it and get it to work. BUT the problem is that they
never tell us what they are doing, what they are planning, or what is
coming next.

For example, having planned a 4 month project on "using SmaCC to give
pier parsers pluggable/swtichable syntaxes", lukas removed the SmaCC
parser from pier without any warning or planning, and scuppered the
whole project.

I have no qualms with keeping a group of developers in sync for specific
projects, but in smalltalk things can be fragile. Pull out something at
the bottom and the whole house of cards falls.

When I build an image, I am building something which integrates the work
of 7 different developers or teams, and only some of these are actively
co-operating.  So on any one morning  up to 7 people could have broken
my image, and they will not  necessarily co-operate if I feedback to them.

Every single change you put into trunk, actually makes the problem
worse, more uncontrolled unplanned stuff, that is pretty undocumented,
its not discussable, its certainly not optional.   Then I have to build
on top of it.

Keith



More information about the Release mailing list