SDA SE Wiki

Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering

User Tools

Site Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
research:cultivate:what_s_in_a_name [2010/05/07 17:58]
Daniel Speicher
research:cultivate:what_s_in_a_name [2018/05/09 01:59] (current)
Line 1: Line 1:
 +====== What's in a name? ======
  
 +{{  :​research:​cultivate:​cultivate-meaning.png|}}
 +
 +Programmers want to be productive - for example by [[http://​waterfall2006.com/​|floating down the waterfall]],​ by [[http://​c2.com/​cgi/​wiki?​CowboyCoder|coding like a cowboy]], or by taking small but safe [[http://​www.extremeprogramming.org/​stories/​testfirst.html|test-first baby steps]]. Ultimately - but as well as soon as possible - we want to have our [[http://​xprogramming.com/​xpmag/​jatrtsmetric/​|features running and hopefully even tested]].
 +
 +Producing features is the joy of a programmer. Yet, after our code bases have grown to some size, the productivity decreases and maybe even the joy we feel while studying our code isn't that big any more.
 +
 +===== Cultivation like in Agriculture =====
 +
 +The code we wrote last month or last year could be seen as the soil in which new code and new functionalities grow. If this growth is slowed down, this tells us something about the quality of this soil. Then it is time to focus for a while on [[http://​refactoring.com/​|improving the quality]] of the soil without directly contributing to the growth of the functionality.
 +
 +Or, some parts of our system have grown in the wild and now it is time to integrate them into the whole code base, as a gardener has to integrate new plants in the garden or even to engraft a piece of one plant onto another.
 +
 +Cultivate supports (or plans to support) you to improve the quality of the "​soil"​ of existing code and/or to rearrange parts of your system to foster further growth.
 +
 +  * [[tutorial exploring smells and metrics|State of the art smell detection]]
 +  * Exploitation of context to reduce false positives and information overload. (:en: {{:​research:​cultivate:​sebastian-jancke-smell-detection-in-context-2010.pdf|Diploma thesis of Sebastian Jancke}}, :de: {{:​research:​cultivate:​presentation-sebastian-jancke-smell-detection-in-context.pdf|Slides}})
 +  * Optimization of code structure. (Ongoing diploma theses will do a first step in this direction)
 +  * Integration of conceptual integrity. ([[tutorial exploring concepts|first steps are made]], more ideas to be explored by a diploma thesis)
 +  * Support for interactive extraction of a cohesive set of functionality and introduction of variation points (Prototype as part of a diploma thesis. Not yet integrated.)
 +
 +
 +===== Cultivation like a process of Civilization =====
 +  * New approach (needing not much additional tooling): Coevolution of conventions,​ structures, concepts.
 +  * Includes refining as well as relaxing standards.((Somehow inspired by Norbert Elias "Über den Prozess der Zivilisation"​))
 +
 +{{:​research:​cultivate:​wsr2010-dsp-sj-smell-detection-in-context.png?​600|}}
 +
 +
 +/*
 +
 +  * Norbert Elias
 +    * Evolution of conventions
 +    * Differentiation of conventions
 +
 +first perspective based on the idea that there is a clear idea about what is good design, which conventions are to follow
 +
 +Elias Phases
 +
 +Cowboy (no rules)
 +Monipolisation (strict rules, begründet dur interdependence)
 +Vergesellschaftung ()
 +
 +Reduktion gewisser äußerer Zwänge da genügend internalisiert
 +
 +http://​de.wikipedia.org/​wiki/​%C3%9Cber_den_Proze%C3%9F_der_Zivilisation
 +
 +
 +Östlich
 +- Keep your standards
 +- standards that you can keep
 +
 +
 +Piaget: Lernen
 +
 +*/

SEWiki, © 2019