eXo Software Factory
                             Harder, Better, Faster, Stronger




Friday, January 27, 12
Software Factory Team
                         •   Software Factory Team
                             •   Development rules and recommendations
                                 •   Methods and Tools
                                 •   To improve quality and productivity
                             •   Teams training
                                 •   To improve ours skills
                             •   Support & Accompaniment
                                 •   About tools, methods, processes, and technical


Friday, January 27, 12
Skills Catalog
                         • Development practices
                           • Unit tests, integration tests, functional
                              tests, web tests, performances tests
                           • Code quality
                           • Java/JEE & Production Architecture
                         • Development tools
                           • Build, Packaging, IDE ..
Friday, January 27, 12
How are we working ?
                         •   Documentations are in ours WIKIs
                             •   http://wiki-int.exoplatform.org/display/
                                 exoSoftwareFactory/Home
                         •   Activity is tracked in Jira :
                             •   http://jira.exoplatform.org/browse/SWF
                         •   Contact us :
                             •   Email : exo-swf@exoplatform.com
                             •   Skype : aheritier


Friday, January 27, 12
Confluence
                            WIKI




Friday, January 27, 12
Confluence




Friday, January 27, 12
SCMs
                         Sources management




Friday, January 27, 12
Subversion
                         •   https://svn.exoplatform.org/projects/
                             •   Private and public R&D projects
                         •   https://svn.exoplatform.org/exo-int/
                             •   Private developments
                         •   https://svn.exoplatform.org/cp
                             •   Customers projects
                         •   https://svn.exoplatform.org/sandbox/
                             •   Sandbox


Friday, January 27, 12
Git                     Proof of
                                                                            concept




                         •   https://git.exoplatform.org/public/
                             •   Public projects
                         •   https://git.exoplatform.org/private/
                             •   Private projects
                         •   Tests repositories
                             •   https://git.exoplatform.org/public/tests-git/
                             •   https://git.exoplatform.org/private/tests-git/


Friday, January 27, 12
Nexus
                         Binaries management




Friday, January 27, 12
Nexus




Friday, January 27, 12
Nexus for productivity




Friday, January 27, 12
Nexus for
               collaboration
              Deploy 3rd Party Artifacts
              Collaborate with Internal
                     Repositories
          Distribute to the community with
                 Public Repositories
            Distribute to customers with
                 Private Repositories



Friday, January 27, 12
Jira
                         Issues and tasks management




Friday, January 27, 12
Jira




Friday, January 27, 12
Jira with Greenhopper




Friday, January 27, 12
Jira with Bonfire




Friday, January 27, 12
Jenkins
                     Automation and scheduling : Build, Tests, Deployment




Friday, January 27, 12
Jenkins




Friday, January 27, 12
Continuous
                   Integration
                Build, Test and Deploy ASAP
                       Using Maven 2/3
               From sources in SVN or GIT
               googlecode, jboss, exo, github
                             repos
                  To Maven repositories
                          >100 jobs



Friday, January 27, 12
Packaging
           Generate the full packaging of our
                        products
                Ready for demo or tests
          Use upstream constraints and a large
        quiet period to not launch them to often
            Use priority sorter plugin with a
                    reduced priority
                        ~15 jobs




Friday, January 27, 12
Mobile developments - continuous
                           integration and deployment
Friday, January 27, 12
Reporting and
                                  dashboards
                         • Jenkins => Teams
                          • Emails (email-ext plugin)
                         • Teams => Jenkins
                          • Dashboard views
                          • Radiator views

Friday, January 27, 12
Dashboards




Friday, January 27, 12
Unstable Build
                          Notification




Friday, January 27, 12
Build Failure
                         Notification




Friday, January 27, 12
Radiator views




Friday, January 27, 12
Quality management
                         •   Sonar reports everyday if the code had changed
                             (polling)
                             •   ~90 jobs
                         •   Continuous deployment and integration or
                             performances tests
                             •   Jmeter
                             •   Selenium
                             •   JMXTrans / Graphite / Zabbix for monitoring


Friday, January 27, 12
Sonar
                         Quality management




Friday, January 27, 12
Sonar, a quality
                           dashboard




Friday, January 27, 12
Sonar, analyze your
                               project




Friday, January 27, 12
Sonar, Continuous
                          Improvement ?




Friday, January 27, 12
Acceptance
                           Tests platform




Friday, January 27, 12
Acceptance




Friday, January 27, 12
Fisheye & Crucible
                          Sources browsing and code review




Friday, January 27, 12
Fisheye/Crucible




Friday, January 27, 12
Teams Code Reviews
                           Asynchronous, distributed discussions




Friday, January 27, 12
Have fully threaded conversations
                 about source code with your others.
Friday, January 27, 12
Simply click on some lines to add
                                     comments.
Friday, January 27, 12
Comments can be displayed inline or
                   next to the code they refer to.
Friday, January 27, 12
Flag a comment as a defect to
                                  highlight it.
Friday, January 27, 12
Teams Code Reviews
                               Manage reviews




Friday, January 27, 12
Features
                         •   Pre-commit: reviewing content that is not under version control. Upload a
                             piece of code, a file or cut-and-paste from your IDE.
                         •   Post-commit: reviews after the code is committed to the repository.
                         •   Moderated: reviews can have a moderator responsible for a review;
                             creating, approving, and determining when a review is finished.
                         •   Un-moderated: a streamlined process where the review author is the sole
                             person who starts and stops the review is a simple default.
                         •   Snippet: a pastebin service meets peer review - you can simply paste some
                             code and start discussing it with the team, without the need for any formal
                             code review workflow.
                         •   Changeset discussions: commit messages allow a developer to provide
                             information with a commit. Provide free form comments on commit
                             messages.




Friday, January 27, 12
Browsing changesets, searching for files,
                    or uploading a patch to add content
Friday, January 27, 12
You can use the classic review roles Moderator,
                  Author and Reviewer or let anyone do anything.

Friday, January 27, 12
Only a title and code are needed to
                          start a Snippet Review.
Friday, January 27, 12
Use change set comments as a
                          catalyst for code discussions.
Friday, January 27, 12
Reviews evolve as your code evolves

Friday, January 27, 12
Live updates and notifications
Friday, January 27, 12
Teams Code Reviews
                              Dashboard & Reports




Friday, January 27, 12
Activity Stream
Friday, January 27, 12
Who is holding up
Friday, January 27, 12
Which issues are being held up by
                                    reviews?
Friday, January 27, 12
Teams Code Reviews
                               Jira Integration




Friday, January 27, 12
Create Jira issues
Friday, January 27, 12
Resolve subtasks from Crucible
Friday, January 27, 12
Create reviews from Jira
Friday, January 27, 12
Follow reviews attached to a jira
                                     project
Friday, January 27, 12
Conclusion



Friday, January 27, 12
SWF links
                         Subversion :                        Jira :
                         https://svn.exoplatform.org         https://jira.exoplatform.org
                         Git :                               Fisheye/Crucible :
                         https://git.exoplatform.org         https://fisheye.exoplatform.org
                         Nexus :                             Sonar :
                         http://repository.exoplatform.org   https://sonar.exoplatform.org
                         http://repository.exoplatform.vn    Confluence :
                         Jenkins :                           https://wiki-int.exoplatform.org
                         https://ci.exoplatform.org          Acceptance :
                                                             http://acceptance.exoplatform.org




Friday, January 27, 12
Questions




Friday, January 27, 12

eXo Software Factory Overview

  • 1.
    eXo Software Factory Harder, Better, Faster, Stronger Friday, January 27, 12
  • 2.
    Software Factory Team • Software Factory Team • Development rules and recommendations • Methods and Tools • To improve quality and productivity • Teams training • To improve ours skills • Support & Accompaniment • About tools, methods, processes, and technical Friday, January 27, 12
  • 3.
    Skills Catalog • Development practices • Unit tests, integration tests, functional tests, web tests, performances tests • Code quality • Java/JEE & Production Architecture • Development tools • Build, Packaging, IDE .. Friday, January 27, 12
  • 4.
    How are weworking ? • Documentations are in ours WIKIs • http://wiki-int.exoplatform.org/display/ exoSoftwareFactory/Home • Activity is tracked in Jira : • http://jira.exoplatform.org/browse/SWF • Contact us : • Email : exo-swf@exoplatform.com • Skype : aheritier Friday, January 27, 12
  • 5.
    Confluence WIKI Friday, January 27, 12
  • 6.
  • 7.
    SCMs Sources management Friday, January 27, 12
  • 8.
    Subversion • https://svn.exoplatform.org/projects/ • Private and public R&D projects • https://svn.exoplatform.org/exo-int/ • Private developments • https://svn.exoplatform.org/cp • Customers projects • https://svn.exoplatform.org/sandbox/ • Sandbox Friday, January 27, 12
  • 9.
    Git Proof of concept • https://git.exoplatform.org/public/ • Public projects • https://git.exoplatform.org/private/ • Private projects • Tests repositories • https://git.exoplatform.org/public/tests-git/ • https://git.exoplatform.org/private/tests-git/ Friday, January 27, 12
  • 10.
    Nexus Binaries management Friday, January 27, 12
  • 11.
  • 12.
  • 13.
    Nexus for collaboration Deploy 3rd Party Artifacts Collaborate with Internal Repositories Distribute to the community with Public Repositories Distribute to customers with Private Repositories Friday, January 27, 12
  • 14.
    Jira Issues and tasks management Friday, January 27, 12
  • 15.
  • 16.
  • 17.
  • 18.
    Jenkins Automation and scheduling : Build, Tests, Deployment Friday, January 27, 12
  • 19.
  • 20.
    Continuous Integration Build, Test and Deploy ASAP Using Maven 2/3 From sources in SVN or GIT googlecode, jboss, exo, github repos To Maven repositories >100 jobs Friday, January 27, 12
  • 21.
    Packaging Generate the full packaging of our products Ready for demo or tests Use upstream constraints and a large quiet period to not launch them to often Use priority sorter plugin with a reduced priority ~15 jobs Friday, January 27, 12
  • 22.
    Mobile developments -continuous integration and deployment Friday, January 27, 12
  • 23.
    Reporting and dashboards • Jenkins => Teams • Emails (email-ext plugin) • Teams => Jenkins • Dashboard views • Radiator views Friday, January 27, 12
  • 24.
  • 25.
    Unstable Build Notification Friday, January 27, 12
  • 26.
    Build Failure Notification Friday, January 27, 12
  • 27.
  • 28.
    Quality management • Sonar reports everyday if the code had changed (polling) • ~90 jobs • Continuous deployment and integration or performances tests • Jmeter • Selenium • JMXTrans / Graphite / Zabbix for monitoring Friday, January 27, 12
  • 29.
    Sonar Quality management Friday, January 27, 12
  • 30.
    Sonar, a quality dashboard Friday, January 27, 12
  • 31.
    Sonar, analyze your project Friday, January 27, 12
  • 32.
    Sonar, Continuous Improvement ? Friday, January 27, 12
  • 33.
    Acceptance Tests platform Friday, January 27, 12
  • 34.
  • 35.
    Fisheye & Crucible Sources browsing and code review Friday, January 27, 12
  • 36.
  • 37.
    Teams Code Reviews Asynchronous, distributed discussions Friday, January 27, 12
  • 38.
    Have fully threadedconversations about source code with your others. Friday, January 27, 12
  • 39.
    Simply click onsome lines to add comments. Friday, January 27, 12
  • 40.
    Comments can bedisplayed inline or next to the code they refer to. Friday, January 27, 12
  • 41.
    Flag a commentas a defect to highlight it. Friday, January 27, 12
  • 42.
    Teams Code Reviews Manage reviews Friday, January 27, 12
  • 43.
    Features • Pre-commit: reviewing content that is not under version control. Upload a piece of code, a file or cut-and-paste from your IDE. • Post-commit: reviews after the code is committed to the repository. • Moderated: reviews can have a moderator responsible for a review; creating, approving, and determining when a review is finished. • Un-moderated: a streamlined process where the review author is the sole person who starts and stops the review is a simple default. • Snippet: a pastebin service meets peer review - you can simply paste some code and start discussing it with the team, without the need for any formal code review workflow. • Changeset discussions: commit messages allow a developer to provide information with a commit. Provide free form comments on commit messages. Friday, January 27, 12
  • 44.
    Browsing changesets, searchingfor files, or uploading a patch to add content Friday, January 27, 12
  • 45.
    You can usethe classic review roles Moderator, Author and Reviewer or let anyone do anything. Friday, January 27, 12
  • 46.
    Only a titleand code are needed to start a Snippet Review. Friday, January 27, 12
  • 47.
    Use change setcomments as a catalyst for code discussions. Friday, January 27, 12
  • 48.
    Reviews evolve asyour code evolves Friday, January 27, 12
  • 49.
    Live updates andnotifications Friday, January 27, 12
  • 50.
    Teams Code Reviews Dashboard & Reports Friday, January 27, 12
  • 51.
  • 52.
    Who is holdingup Friday, January 27, 12
  • 53.
    Which issues arebeing held up by reviews? Friday, January 27, 12
  • 54.
    Teams Code Reviews Jira Integration Friday, January 27, 12
  • 55.
  • 56.
    Resolve subtasks fromCrucible Friday, January 27, 12
  • 57.
    Create reviews fromJira Friday, January 27, 12
  • 58.
    Follow reviews attachedto a jira project Friday, January 27, 12
  • 59.
  • 60.
    SWF links Subversion : Jira : https://svn.exoplatform.org https://jira.exoplatform.org Git : Fisheye/Crucible : https://git.exoplatform.org https://fisheye.exoplatform.org Nexus : Sonar : http://repository.exoplatform.org https://sonar.exoplatform.org http://repository.exoplatform.vn Confluence : Jenkins : https://wiki-int.exoplatform.org https://ci.exoplatform.org Acceptance : http://acceptance.exoplatform.org Friday, January 27, 12
  • 61.