= Development Process Notes = This project assumed a high didactic worth, not only in Operating System [wiki:doc/devel development] related matters or in C programming, but also in development process itself and its collaborative characterization. Right ahead, you will find some notes about team's conduct of development, deeply describing its way of development taking a look to its approach to analysis, to the applied techniques and to the used tools. == Approach == As you can notice while reading "Development notes", developers team appreciates high-level '''analysis''' of problems, in order to dominate project complexity and to understand the aim of specifications, and of project itself. Because of the risk that this kind of approach remains superficial, it must be followed by a in-depth analysis, with the purpose to structure internal mechanisms, allowing insertion of little code [wiki:doc/devel#a2.Internalfunctionstricks hacks]. Only this kind of dual analysis allow a final and complete '''understanding'''. Such duality has been also applied in team planning, clearly separating design time and implementation time, '''discussion''' one and coding one in order to avoid wastes in terms of time and psychic resources. == Strategies == After knowing of Xtreme Programming methodologies (thanks to SW Engineering course), we dared trying to apply its paradigm onto our development process, in order to enjoy its benefits. As mentioned above, we started each day with a stand-up meeting for planning activities, but we also learned how to code together, with only one person at keyboard, or how to write code according to previously agreed standards. == Collaborative Tools == Collaborative work is not easy, because of all troubles originated from synchronization matters among developers. That is the reason of our experiencing new tools, aimed to help us in such difficult jobs. One of these is `subversion` a versioning substsyem, which trace every changes to the code and offer a set of features that makes merging/branching operations easier. In addition to this, and according to XP teaching, we took advantage from subversion's tagging utility for frequently releasing "stable" sub-version. [[BR]] Our public subversion repository is available at [svn://svn.xt3.it/var/svn/kaya]. Another usefull tool is a web-based software project management: `trac`. It offers a complete system, including an enhanced wiki, where we wrote (and will write) kaya project documentation, an issue tracking system based on tickets, and others features favoring planning. [[BR]] trac web interface for this project is online (we hope!) at [svn://trac.xt3.it/kaya]. As you can see both services are proudly hosted by [http://www.xt3.it xt3.it], an experimental team composed by two of us.