Hi Marcus,

There is no release yet!
>

How often are you planning to do a release?  I suppose the next release is
the reached milestones for 1.1?


>
> > everything that worked before should still work perfectly. The new stuff
> being added are first buggy; seems normal to me. But if the new stuff is
> breaking old, working stuff, and we only notice it after a month; then it
> will take us a lot of time, debugging the issues, investigating them; time
> we should spent instead on adding new stuff.
>
> The old stuff is *very very bad*. It needs to be fixed. This is when stuff
> breaks.
>

Absolutely.


> >
> >
> >  |I've done a number of production applications in Squeak and we always
> >  |used the stable version for that. Or, in case we really needed
> something
> >  |from the trunk version, we only updated occasionally when we were sure
> >  |it had reached a somewhat stable plateau.
> >
> > You're correct on this one, however in this case, Pharo IS the production
> work. It is Pharo itself we are also developing. And since it is
> development, I think we should make sure the quality keeps up at a highest
> level possible, even if modifying it.
> >
> > I don't mean to criticize, I love the opensource initiative that Pharo
> is,  I'm just trying to help Pharo further.
> > Any other thoughts on this?
> >
>
> I can not work on a system where every change on the unstable branch is
> garanteed to not break anything.
> That is because I don't know how this is possible to do.
>
>  Marcus


Allow me to explain why I have such strong beliefs about this. On my firm,
we are using some techniques to enable that. On one project they are
releasing new functionality every two weeks. How they do that is as
following. These 2 weeks releases are incremental changes to a already
running production system. They take a limited set of functionality that can
be developed in say just over a week. Nightly builds are deployed on test
servers. After a day or three development, parts of the developed
functionality can already be tested by the proxy. After six or seven days of
development, the core dev is done, and they focus on fixing the errors.
After a day or two more the whole stuff is developed, tested en ready for
production. The main reason why this works pretty well, is that they take
small steps. They set a target to develop a limited set of functionality,
and commit to it as a team. Furthermore they use extensive testing. They
write unit tests for every line of code written and also write integration
tests. The product developed is a web application. They use a rich domain
and a sql db. They write extensive unit tests for the functionality of the
domain; write one integration test if the domain object can be persisted
correctly, and write also a limited set of gui tests using selenium,  to
verify if the gui is working correctly. The amount of unit tests is very
high, the amount of integration tests / gui tests much lower. The unit tests
serve to test the core behaviour, the other tests more or less if
'everything is wired correctly'. Working like this, they have a high
confidence in the code; they get immediate feedback if something broke: so
they can fix these errors quickly.
The small steps combined with the extensive testing is what enables us to
create these short releases. If they would try to integrate a lot of changes
at once, it would take them a lot longer to make that stable. We call every
build, in which all tests run,  'a potential shippable product'.

I think that in Pharo most of the tests are unit tests. Please correct if
I'm wrong, don't know it well enough yet. Each package is perfectly unit
tested. However the dev image which tries to integrate different packages
is, I think, lacking integration tests to see if they properly work
together. Take the example I gave. Refactoring tools work very well, are
nicely unit tested; however combined with the Package browser it did not
work. The net result of it is that it does not work.

Now I off course understand that, since Pharo is opensource and community
driven, it will be a lot harder to achieve a short release period than doing
this on my firm, full time developing on the product.

These are just my views I use in my day 2 day work.

Kind Regards,

Bart

-- 
imagination is more important than knowledge - Albert Einstein
Logic will get you from A to B. Imagination will take you everywhere -
Albert Einstein
Learn from yesterday, live for today, hope for tomorrow. The important thing
is not to stop questioning. - Albert Einstein
The true sign of intelligence is not knowledge but imagination. - Albert
Einstein
Gravitation is not responsible for people falling in love. - Albert Einstein
_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to