# HG changeset patch # User meillo@marmaro.de # Date 1232280512 -3600 # Node ID 39fffd8d1100def9cb92d7add263824612779ac4 # Parent a014ce012053d2d5e2743fe9b0bd4b217ab92f43 even more work on ch04 ... but it is quite finished now :-) diff -r a014ce012053 -r 39fffd8d1100 thesis/tex/4-MasqmailsFuture.tex --- a/thesis/tex/4-MasqmailsFuture.tex Sun Jan 18 11:54:04 2009 +0100 +++ b/thesis/tex/4-MasqmailsFuture.tex Sun Jan 18 13:08:32 2009 +0100 @@ -587,7 +587,7 @@ -\subsubsection*{The break even} +\subsubsection*{Break Even} It is important to keep the time dimension in mind. This includes the separation into a short-time and a long-time view. The short-time view shall cover between two and four years. The long-time view is the following time. % fixme: find sources! @@ -595,6 +595,7 @@ In the long-time view, a restructuring for modularity is necessary anyway. The question is, when to do it: Right at the start in a new design, or later in some restructuring. +%fixme: define exactly, be clear: what does break even here mean @@ -612,7 +613,7 @@ -\subsubsection*{Bonus: Good software, good feelings} +\subsubsection*{Good software, good feelings} One last argument shall be added. It is more common for Free Software but can be seen in non-free software too. @@ -631,40 +632,45 @@ \section{Result} +This chapter identified the requirements and the outstanding work to achieve them. Their importance and the required work on them lead to a focus ranking amoung the requirements, which resulted in a list of tasks to do. Afterwards possible development strategies to control the work process were compared and discussed. -what stands against the new design? -- dev time/effort -- risk of failure -- time delay +Strategy 3 (A new design) is slightly prefered over the combination of strategy 1 (Improve existing code) and 2 (Add wrappers and interposition filters) in regard of the requirements. - -A program's structure is primary its architecture. Which is the most influencing design decision, and has the greatest impact on the program's future capabilities. The architecture defines what the program can do, and how it can be used. If the architecture does not fit to the requirements, development will reach a dead end \dots\ further work then will make everything worse. The only good solution then is to change the architecture, which, sadly but most likely, means a redesign from scratch. - -The most needed features---authentication and encryption---can be added to the current code base with changes in only few parts of the source. These changes should be made soon. Archiving of mail is another feature to add then. More complete logging coverage, reporting of unsafe environment, and fixing high risk security flaws are quality improvements to do. All this work should be done on basis of the current code. - - - +The discussion afterwards did generally support the new design strategy. But some arguments stand against it. These are: \begin{enumerate} -\item -Stick to the old architecture and try to add features as possible. This approach needs less effort to be spent, because a working code is already present. Further development is only adding small increments to a exiting code base. But the further development goes, the larger is the work needed to add more functionality, and the more bugs will appear, caused by the increasing complexity. Quality of the software will decrease, because lacking of clear internal structure encourages further work to be quick fixes rather than good solutions. - -\item -The way of designing \masqmail\ from scratch and rebuilding it. A lot of time and work is required to do this. Additionally, a new design from scratch introduces new risks: Is the design really better? Was thought of everything? Will there come problems not foreseeable now? Starting from scratch also means a step back. Against these disadvantages stands the gain from the new design: Further development will be easier and probably faster, overall quality will be better and easier to keep up, and dead ends for further development are better avoidable. +\item The development time and effort +\item The time delay until new features can be added +\item The risks for failure \end{enumerate} +The first two arguments are only relevant for the short-time view, because both will become \emph{support arguments} for the new design, once the Break Even point is reached. +The third argument, the risks, remain. There are risk in every investion. Taking no risks means remaining the same, means drifting towards a dead end in a world that does change. +With respect to the current situation, the suggested further development plan for \masqmail\ is splitted into a short-time plan and a long-time plan: -The suggested further development plan for \masqmail\ is: \begin{enumerate} -\item The short time goal: Add the most needed features, being authentication and encryption, to the current code base. \item The long time goal: Design a new architecture that satisfies the requirements identified, especially the quality requirements. The implementation of this design shall then, after being usable and throughout tested, supersede the old \masqmail. +\item The short-time plan: Add the most needed features, being encryption, authentication, and security wrappers, to the current code base. +\item The long-time plan: Design a new architecture that satisfies the modern requirements especially the quality requirements. \end{enumerate} -This plan is similar to the change from \sendmail\ to \name{sendmail X}/\name{MeTA1}, except the \sendmail\ change was much too late. +The background thought is to first do the most needed stuff on the existing code to keep %fixme: erhalten +it usable. This satisfies the urgent needs and removes the time pressure from the development of the new design. After this is done, a new designed \masqmail\ should be developed from scratch. This is the work for the future. It shall, after it is usable and throughout tested, supersede the old \masqmail. -The following chapter is about the work on the current code base, to reach the short time goals. The chapter afterwards then introduces a new, modern design for future versions of \masqmail. +The basic idea is, regularly developing a new design from scratch while the current version is still in use and gets repaired. Hence a modern design will inherit an old one in regular intervals. This is a very future-proove concept that combines the best of both worlds. The price to pay is only the increased work which gets covered %fixme: uebernommen +by volunteers that \emph{want} to do it. -%The plan is to first do the most needed stuff on the old design to make it still usable; then design a new version from scratch, for the future. + +%fixme: move that sentence to the beginning of the next chapter? +The following chapter describes approaches and techniques for the work on the current code base, and it introduces ideas and plans for a new, modern \MTA\ design the next generation of \masqmail. + + + + +%A program's structure is primary its architecture. Which is the most influencing design decision, and has the greatest impact on the program's future capabilities. The architecture defines what the program can do, and how it can be used. If the architecture does not fit to the requirements, development will reach a dead end \dots\ further work then will make everything worse. The only good solution then is to change the architecture, which, sadly but most likely, means a redesign from scratch. + +%This plan is similar to the change from \sendmail\ to \name{sendmail X}/\name{MeTA1}, except the \sendmail\ change was much too late. +