User:Alsroot/Sugar Architecture

From Sugar Labs
< User:Alsroot
Revision as of 12:50, 29 October 2010 by Walter (talk | contribs)
Jump to navigation Jump to search
Pencil.png NOTICE:  This page is a draft in active flux...
Please contribute to these contents and discuss issues on the discussion page.


Please, me+program (but might be otherwise)

Premisses

Please read premisses from the first to the last, they are based on each other in that direction.

Common

  1. Sugar is a community [and not a product] around ideas
    (but might be a product, see below)
    Community which is united around ideas of cognitive and social constructivism in [self]education. In my mind, the highest result point of this process is a Воспитание (do not mess this word with English words like "education", "training", "breading" etc).
  2. Process does matter
    Once Воспитание is a primal target, process[of doing something] is a major instrument to achieve this target. In other words, process of developing Sugar should not look like creating a product (by developers) to let other people (users) use it. Instead, Sugar consists of doers, all doers teach each over (and themselves) all time while creating something sustainable, starting from a hacker who codes sugar core and ending by a kid who creates his first Turtle Art project.
  3. Cement the floor, remove the ceiling
    Once Воспитание is a primal target and the process is a major instrument within great variety of doers, organisation is critically important. As education can't happen using only one particular instrument, such, Sugar should not impose using particular vertical structures (i.e., software applications). Instead, Sugar should provide a set of basic, low-level, horizontal instruments and a set of rules how doers should behave to create[and teach themselves] something. As addition, Sugar provides a set of ready-to-use, vertical structures but with detailed instruction how to disassemble them and how to create new creatures using the same components.

Technical

  1. Sugar architecture starts from the core
    This means that every feature, being added to one of core component, will affect entirely Sugar ecosystem (when this core release will be accessible for most users). Thus, decision about adoption one conceptions (and not adoption another ones) is critically important.
  2. Experiments with the core
    Once core is a central part of Sugar architecture, this fact should not suppress any experiments (including useless) with the core. Here, we are skipping the huge field for possible experiments - activities, but, keeping in mind the first premise, core is the most attractive part of Sugar for doers' experiments.
  3. Easy to get, easy to change, easy to share
    Once core is a central part of Sugar architecture and Sugar should stimulate doers to make experiments with the core, it is critically important to make this process as convenient as possible. Saying that current situation does not prevent any experiments with the core is a hypocrisy. It is easy to get core sources, it is less easy to change them (If we are talking about collaboration between participants on, e.g., sugar mailing lists. For other people, there is only one sugar core and any experiments will finally affect it, if "do not stop" these efforts), it is mostly impossible to share results of experiments (asking to fetch new sources and build them is not useful in most cases).

Organizational

  1. Sugar needs the be a product as well
    The first method to distribute Sugar are various GNU/Linux based distributions and Sugar deployments. For them, Sugar has to be a product because only in that case they can schedule releases and deployments.
  2. Change the minds
    Once Sugar might be a product, it is critically important to understand the unoriginality of this fact. Deploying the Sugar gives only the first push (technical possibility to run Sugar). The major behaviour (including sharing various sugar components to run) happens within the community; in class, school, region, around the world.
  3. Organized chaos
    Keeping in mind all premises, any trying to create a concrete organizational structure for Sugar itself (but not for its particular components when concrete organization makes sense, e.g., for deployments) is defected by design. On high level, ecosystem might be a set of self-organized components that need only rules to interact with each other.

Implementation

Start key points:

  • Before arguing with implementation details, check if you are agree with premises.
  • For the first time, nothing will be changed for, e.g., Sugar deployments (if it will be changed at all).
  • Implementation might take several core releases, it is exactly the path of step-by-step Sugar evolution.
  • It is just details of implementation and might lack of important details and be changed in process.
  • Please, improve it.

Core Team

Core Team is a team of architects of Sugar ecosystem.

The team should contain at least one person for each followed category. The list is sorted from the most important categories to the least, since it is fine to have unskilled developers, maybe fine to have unskilled designers, but it is really wrong to have unskilled educators.

  • Experienced educators. To throw in ideas and methodology.
  • Designers and Human Interface specialists. To think how implementation might look and behave.
  • Developers, to limit educators and designers in their dreams.

Core Team generates ideas and is not restricted by any releases and distribution schedules (it is Platform Team task). It identifies the major trends for Sugar. The area of responsibility of the Core Team is not only a limited set of Sugar components. Particular projects might agree or disagree (and follow another way or try to dissuade Core Team by their particular implementations), but the Core Team is exactly what Sugar face is for non-sugar community.

No Development Team

The word development is quite confusing. Is it about any development within sugar community, how about Activity Team, etc. Glucose projects will flow to the rest of Sugar projects and will, by default, tracked projects of Platform Team.

Platform Team

Platform Team missions:

  • Providing as-unified-as-possible runtime and development time environments for all Sugar doers, regardless of what platform they are using. In other words, Platform Team makes everything to let ideas, generated by Core Team, happen within sugar community.
  • Work closely with GNU/Linux distributions, that provide sugar packages, and Sugar deployments to fulfill their needs and coordinate related efforts within Sugar community.
  • Release a product - Sugar Platform.

Sugar Platform distribution

  • Regular per 6 month releases synced with regular releases of major GNU/Linux distributions
  • Long Time Supporting (LTS) releases that coordinated with LTS releases of GNU/Linux distributions (if possible), that should simplify sugar supporting in the field
  1. new Platform Team release a sugar product, snapshot of (maybe not all) core(and not core) components
  2. modularizing sugar core
  3. sugar-toolkit as a stabilizing instrument within several (non-LTS) core releases

Tracked projects

  1. the key is priorities


  1. original Platform Team purposes are natural for new Platform+Development team
  2. new Platform Team is more a ream of coordinators rather than core developers
  3. core components have its own [self]organized maintaining/developing teams
  4. ...