Here are my proposal to refresh the development
        approach and follow and consistent coding style across the code
        base.
        
        == Use git-flow as a branching model ==
        
        I know that the Virgo wiki recommends a similar "branch on
        feature" branching model which however 
        does not comply with the git-flow notation. I would recommend to
        use the git-flow notation because:
         * it's widely used, should reduce the learning curve for
        contributors and future committers
         * it's natively supported by the git-flow command line scripts
         * it's supported by an optional EGit plug-in
         
        == Use a uniform style for writing commit messages ==
        
        I would like to suggest that we follow the GIT recommendations
        for commit messages.
        Main points are summarized here.
        
        * First line is the summary line (see below)
        * Then a blank line
        * Remaining text is the detailed description
        
        Write commit detailed description in the imperative: “Fix bug”
        and not “Fixed bug”
        or “Fixes bug.” This convention matches up with commit messages
        generated
        by commands like git merge and git revert.
        
        Further paragraphs come after blank lines.
        
        Bullet points are okay, typically a hyphen or asterisk is used
        for the bullet, preceded by a single space.
        
        All lines should not exceed 72 characters to improve commit
        message readability from the command line.
        
        == Use a standardized commit message template ==
        
        I propose to leverage on mylyn bugzilla connector and egit
        connector to enforce standard commit messages in the code base
        and comply with the previous recommendations.
        
        I suggest the following template mylyn commit template:
        
-----------------------------------------------------------------
        Task #${task.key}: ${task.description}
        
        <detailed description here>
-----------------------------------------------------------------
        
        Items in ${} will be replaced by mylyn using the corresponding
        values of the task that is active in the mylyn task list.
        
        If you don't use mylyn and egit, you can create a file with the
        content below eg. ~/.gitmessage.txt
        
        Run the command 'git config --global commit.template
        ~/.gitmessage.txt
        
-----------------------------------------------------------------
        Task #task.key: <task.description>
        
        <detailed description here>
-----------------------------------------------------------------
        
        == Use SonarQube for static code analisys ==
        
        We already share formatting preferences for server and IDE.
        I think we should also introduce SonorQube and the SonarLint
        plug-in and agree on a set of rules to be applied.
        
        == Use JDT Null Analysis ==
        
        I would also recommend to use JDT Null Analysis capabilities and
        properly annotate code with
        @Nullable, @NonNull, @NonNullByDefault as required.
        
        
        -- 
        
Gian Maria Romanato
          <gm.romanato (at) gmail (dot) com>