Discussion:
[Erp5-dev] Simulation and related issues documentation
Łukasz Nowak
2007-09-26 10:03:36 UTC
Permalink
Hello,

On ERP5's wiki there are some pages concerning simulation system -
Simulation Movements, Rules, Applied Rules, etc.

While working with ERP5 I've get deeper and deeper into simulations
(but still not deep enough, of course ;) ) and I wonder if it would be
good to create wikipage which would document simulation - not as
discussions, which need deep knowledge, but as HowTo or other kind of
documentation-like page.

Simulation documentation would describe why simulations are used, what
are its restrictions, how to analyse them, how they are used in code.

I'd like to startup that page. Please let me know what do you think
about it and what shall be such descriptive page name - HowToSimulation
does not sounds good for me.

Regards,
Luke
--
?ukasz Nowak R&D Ventis http://www.ventis.com.pl/
tel: +48 32 768 16 85 fax: +48 32 392 10 61
``Use the Source, Luke...''
Yoshinori Okuji
2007-09-26 11:13:25 UTC
Permalink
Post by Łukasz Nowak
On ERP5's wiki there are some pages concerning simulation system -
Simulation Movements, Rules, Applied Rules, etc.
While working with ERP5 I've get deeper and deeper into simulations
(but still not deep enough, of course ;) ) and I wonder if it would be
good to create wikipage which would document simulation - not as
discussions, which need deep knowledge, but as HowTo or other kind of
documentation-like page.
Simulation documentation would describe why simulations are used, what
are its restrictions, how to analyse them, how they are used in code.
I'd like to startup that page. Please let me know what do you think
about it and what shall be such descriptive page name - HowToSimulation
does not sounds good for me.
It will be a Technical Note. Although it is a good idea to document
simulation, in my experience, it is so hard to teach others the simulation,
even face-to-face. Making an usable document would be very tough and
challenging.

I think there are three obstacles underlying in the simulation topic:

- The conceptual part. This is mostly about understanding business. This
requires very consolidated examples which ordinary engineers understand
easily (e.g. ordering -> invoicing). Good drawing/visualization is also
required.

- The design part. The simulation contains so many actors that all newbies get
upset. This is very difficult to explain in a comprehensive way, because one
needs good understanding of several other parts of the system. Also,
understanding "why things are designed in this way" requires describing many
possible corner cases, and this is complicated enough (e.g. look at alex's
discussion page).

- The implementation part. This is even more difficult, because there is a lot
of code, and not every part is completely finished yet unfortunately, in the
sense of "clean solutions". The simulation code is evolving all the time, and
documentation would have to be frequently updated accordingly. For now, the
only way I have found somehow effective is to ask one to work on a real
implelentation little by little, and teach little by little. Reading
documentation can give some hints, but not so effective in reality from my
point of view.

I can imagine that the "best simulation document" can be more than 300 pages
in A4 papers, and this is not - maybe feasible but - hard to write up. So,
probably, we need to start from some rather easy parts, especially, the
conceptual part. "Why the simulation is good/useful/worth having" is not
difficult to teach, if you have some good use cases. "How the simulation is
designed" or "Why the simulation is designed in this way" is quite tough in
documentation, and, for now, I have no idea of how to do this, without
working together in real projects. If you have any good idea, I would like to
listen.

(Actually, the comments in the source code have a lot of useful information
for the implementation part. If one does not hesitate to read the complicated
code, I think it is possible to understand nearly everything. It simply
consumes a lot of time and energy.)

Regards,
YO
--
Yoshinori Okuji, Nexedi CTO
Nexedi: Consulting and Development of Free / Open Source Software
http://www.nexedi.com
ERP5: Full Featured High End Open Source ERP
http://www.erp5.com
ERP5 Wiki: Developer Zone for ERP5 Community
http://www.erp5.org
Łukasz Nowak
2007-09-26 12:02:16 UTC
Permalink
HEllo,

On 2007-09-26, 13:13:25
Post by Yoshinori Okuji
Post by Łukasz Nowak
On ERP5's wiki there are some pages concerning simulation system -
Simulation Movements, Rules, Applied Rules, etc.
While working with ERP5 I've get deeper and deeper into simulations
(but still not deep enough, of course ;) ) and I wonder if it would
be good to create wikipage which would document simulation - not as
discussions, which need deep knowledge, but as HowTo or other kind
of documentation-like page.
Simulation documentation would describe why simulations are used,
what are its restrictions, how to analyse them, how they are used
in code.
I'd like to startup that page. Please let me know what do you think
about it and what shall be such descriptive page name -
HowToSimulation does not sounds good for me.
It will be a Technical Note. Although it is a good idea to document
simulation, in my experience, it is so hard to teach others the
simulation, even face-to-face. Making an usable document would be
very tough and challenging.
- The conceptual part. This is mostly about understanding business.
This requires very consolidated examples which ordinary engineers
understand easily (e.g. ordering -> invoicing). Good
drawing/visualization is also required.
It is good starting point for "Simulation Documentation", isn't it?
Every beginner developer (just like me) would do anything to be able
to see and read some comments about such great, but cryptic, feature
as simulations. So such developer would be able to make faster progress
and do more contributions to system and *that* documentation.
Post by Yoshinori Okuji
- The design part. The simulation contains so many actors that all
newbies get upset. This is very difficult to explain in a
comprehensive way, because one needs good understanding of several
other parts of the system. Also, understanding "why things are
designed in this way" requires describing many possible corner cases,
and this is complicated enough (e.g. look at alex's discussion page).
But if simulations would be introduced in understandable way - even if
not complete form - it would be much easier to figure out discussion
and technical pages.
Post by Yoshinori Okuji
- The implementation part. This is even more difficult, because there
is a lot of code, and not every part is completely finished yet
unfortunately, in the sense of "clean solutions". The simulation code
is evolving all the time, and documentation would have to be
frequently updated accordingly. For now, the only way I have found
somehow effective is to ask one to work on a real implelentation
little by little, and teach little by little. Reading documentation
can give some hints, but not so effective in reality from my point of
view.
Of course - it is the best way [tm] to do something with simulations
and ask directly more experienced developer. But as community would
arise around ERP5 project it would be very hard to spend time for such
newcomers.
Post by Yoshinori Okuji
I can imagine that the "best simulation document" can be more than
300 pages in A4 papers, and this is not - maybe feasible but - hard
to write up. So, probably, we need to start from some rather easy
parts, especially, the conceptual part. "Why the simulation is
good/useful/worth having" is not difficult to teach, if you have some
good use cases. "How the simulation is designed" or "Why the
simulation is designed in this way" is quite tough in documentation,
and, for now, I have no idea of how to do this, without working
together in real projects. If you have any good idea, I would like to
listen.
I would buy a book "ERP5 Simulation Model Explained", how much it will
cost? ;)

So topic to start with would be "Why simulations are used in ERP5?" and
then "Now we will show you how to understand simulation-related code."?
Post by Yoshinori Okuji
(Actually, the comments in the source code have a lot of useful
information for the implementation part. If one does not hesitate to
read the complicated code, I think it is possible to understand
nearly everything. It simply consumes a lot of time and energy.)
Huh. And keep in mind, that simulation-related code is quite generic,
which do not help to understand how simulations work.

I *think* that it might be not so bad to
publicise screencast/screenshot/textize sessions with debugger inside of
expand() or some other simulation-related methods with comments. AFAIK
simulations are developer only - and if developer would be able to see
how to work with simulations he/she would be able to repeat those steps
her/himself to understand more and, of course, contribute his knowledge
do simulation-related documentation.

Thank you for such descriptive response - I see that I am not alone
with idea to document simulations.

I hope that "little by little" (as Beenhakker is saying) approach would
succeed.

As I'm going deeper and deeper with simulations I see it has more with
magic than with science - but that is normal with any new/innovative
technique. ;)
Post by Yoshinori Okuji
Regards,
YO
Regards,
Luke
--
?ukasz Nowak R&D Ventis http://www.ventis.com.pl/
tel: +48 32 768 16 85 fax: +48 32 392 10 61
``Use the Source, Luke...''
Yoshinori Okuji
2007-09-27 21:59:21 UTC
Permalink
Post by Łukasz Nowak
So topic to start with would be "Why simulations are used in ERP5?" and
then "Now we will show you how to understand simulation-related code."?
Yes. I think this is a good idea. In the introduction, I have some
suggestions:

- Please make sure that people get the meaning of "simulation" right. I saw
many people who have the background of CS misunderstanding simulation
as "statistical analysis" or "artificial life" or like that. The simulation
is about business processes. This should be clear.

- Please make sure that people understand why the "simulation tree" is worth
having. Otherwise, they will start to wonder why the system must be so
complicated. It is necessary to track information later on in a persistent
way.

For now I have no time to write good text myself, but I will contribute from
time to time, if you can set up a draft page.

Regards,
YO
--
Yoshinori Okuji, Nexedi CTO
Nexedi: Consulting and Development of Free / Open Source Software
http://www.nexedi.com
ERP5: Full Featured High End Open Source ERP
http://www.erp5.com
ERP5 Wiki: Developer Zone for ERP5 Community
http://www.erp5.org
Łukasz Nowak
2007-09-28 09:47:13 UTC
Permalink
Hello,

On 2007-09-27, 23:59:21
Post by Yoshinori Okuji
Post by Łukasz Nowak
So topic to start with would be "Why simulations are used in ERP5?"
and then "Now we will show you how to understand simulation-related
code."?
Yes. I think this is a good idea. In the introduction, I have some
- Please make sure that people get the meaning of "simulation" right.
I saw many people who have the background of CS misunderstanding
simulation as "statistical analysis" or "artificial life" or like
that. The simulation is about business processes. This should be
clear.
- Please make sure that people understand why the "simulation tree"
is worth having. Otherwise, they will start to wonder why the system
must be so complicated. It is necessary to track information later on
in a persistent way.
For now I have no time to write good text myself, but I will
contribute from time to time, if you can set up a draft page.
Sure - I'll start to contribute ASAP. How this page shall be named:
* TechnicalNotesOnSimulations
* HowToUnderstandSimulations
* SimulationExplained

It would be more descriptive page then "technical note".

Regards,
Luke
--
?ukasz Nowak R&D Ventis http://www.ventis.com.pl/
tel: +48 32 768 16 85 fax: +48 32 392 10 61
``Use the Source, Luke...''
Loading...