Commercial Development and Sakai: Working Within the Community Deyaa Abuelsaad, Developer, Marist College Marty Banting, D...
Agenda <ul><li>Background and history </li></ul><ul><li>Sakai 2.6 on Websphere </li></ul><ul><ul><li>Development phase </l...
Background Information <ul><li>IBM is a supporter of the open source movement </li></ul><ul><li>Became Sakai commercial af...
Our Motivation for Working Within the Community <ul><li>Increasing difficulty applying Websphere changes with each release...
The Team <ul><li>Marist College </li></ul><ul><ul><li>Deyaa Abuelsaad (intern) </li></ul></ul><ul><ul><li>Michael Ardizzon...
Project Timeline <ul><li>Notified Sakai Foundation about our goal to implement Websphere support (2/28) </li></ul><ul><li>...
Working with the Community <ul><li>Engaging the Community </li></ul><ul><ul><li>Email lists </li></ul></ul><ul><ul><li>Sak...
Challenges <ul><li>Sakai 2.6 was a ‘moving target’ </li></ul><ul><li>Our contributions affected multiple components </li><...
IBM, rSmart, and Marist IT partnership <ul><li>IBM: responsible for WebSphere  </li></ul><ul><li>rSmart: responsible DB2 <...
The Development Process And now…
Objectives <ul><li>Implement Websphere support in Sakai </li></ul><ul><ul><li>Resolve all Sakai issues on Websphere </li><...
Development and Issue Management Processes <ul><li>Sakai - a moving target </li></ul><ul><ul><li>Community development con...
Tools <ul><li>Marist JIRA </li></ul><ul><ul><li>Initial Testing (Moved to Sakai JIRA) </li></ul></ul><ul><li>Websphere Bra...
Process Diagram Tester Developer Tool Owner Discover WAS related Issue Create JIRA issue Verify (reproduce) issue Develop ...
Making Things Easier For Tool Owners <ul><li>Ensure our contributions were ready for tool owners review </li></ul><ul><ul>...
Sakai JIRA Guidelines <ul><li>Development process maintained by following Sakai JIRA guidelines </li></ul><ul><li>All issu...
Voting and Acceptance Process <ul><li>Presented our case to Sakai Community (9/18) </li></ul><ul><ul><li>Requested 8 branc...
The QA Process <ul><li>And now… </li></ul>July 2009 10th Sakai Conference - Boston, MA, U.S.A.
Challenges <ul><li>Catch any new issues caused by new functionality made by community </li></ul><ul><ul><li>Regular regres...
Regression Testing <ul><li>Originally scheduled once per week </li></ul><ul><li>As code freeze approached, frequency of ch...
Automated Testing <ul><li>And now… </li></ul>July 2009 10th Sakai Conference - Boston, MA, U.S.A. In the beginning, there ...
Automated Testing <ul><li>Introducing Selenium IDE: The workhorse of QA! </li></ul>July 2009 10th Sakai Conference - Bosto...
Automated Testing <ul><li>What Selenium allows us to do: </li></ul><ul><li>Record manual test cases into automated ones </...
QA Instances July 2009 10th Sakai Conference - Boston, MA, U.S.A. gw1-qa-ilearn.ilearn.marist.edu app2-qa-ilearn.ilearn.ma...
July 2009 10th Sakai Conference - Boston, MA, U.S.A. QA Instances: Motivation <ul><li>Why host QA servers ? </li></ul><ul>...
QA Instances July 2009 10th Sakai Conference - Boston, MA, U.S.A. Server OS App Server Database qa7-us.sakaiproject.org RH...
Project Timeline Mapping <ul><li>Previously ported Sakai 2.2, 2.3, 2.4 </li></ul><ul><li>Notified Sakai Foundation about o...
Development Model July 2009 10th Sakai Conference - Boston, MA, U.S.A. <ul><li>Community Model  (proposed by Michael Korcu...
Lessons Learned <ul><li>Implement a well-defined internal process that complements the community’s development process </l...
Upcoming SlideShare
Loading in …5
×

Commercial Development And Sakai

1,489 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,489
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Bootcamp sponsored by Marist
  • Commercial Development And Sakai

    1. 1. Commercial Development and Sakai: Working Within the Community Deyaa Abuelsaad, Developer, Marist College Marty Banting, Developer, IBM Adam Hocek, Developer, Marist College Michael Lavacca, QA Lead, Marist College
    2. 2. Agenda <ul><li>Background and history </li></ul><ul><li>Sakai 2.6 on Websphere </li></ul><ul><ul><li>Development phase </li></ul></ul><ul><ul><li>QA phase </li></ul></ul><ul><li>Sakai’s new development model </li></ul><ul><li>Lessons learned </li></ul>
    3. 3. Background Information <ul><li>IBM is a supporter of the open source movement </li></ul><ul><li>Became Sakai commercial affiliate in 2005 </li></ul><ul><ul><li>Established partnership with the rSmart Group </li></ul></ul><ul><ul><li>Recognized Sakai as “an ideal vehicle for rapidly advancing innovation for our clients in higher education” </li></ul></ul><ul><ul><li>Sakai’s open architecture, open standards fit well with business and solutions model </li></ul></ul><ul><li>Marist College / IBM Joint Studies team </li></ul><ul><li>Previously ported Sakai 2.2, 2.3, 2.4 </li></ul><ul><ul><li>was not contributed back to community </li></ul></ul>July 2009 10th Sakai Conference - Boston, MA, U.S.A.
    4. 4. Our Motivation for Working Within the Community <ul><li>Increasing difficulty applying Websphere changes with each release </li></ul><ul><li>Potential clients were reluctant without official Sakai community support </li></ul><ul><li>Wanted to be a supportive and contributing commercial affiliate </li></ul>
    5. 5. The Team <ul><li>Marist College </li></ul><ul><ul><li>Deyaa Abuelsaad (intern) </li></ul></ul><ul><ul><li>Michael Ardizzone </li></ul></ul><ul><ul><li>Christine Becker </li></ul></ul><ul><ul><li>Joe Casey </li></ul></ul><ul><ul><li>John Digilio </li></ul></ul><ul><ul><li>Sean Dunn </li></ul></ul><ul><ul><li>Sean Goldsmith </li></ul></ul><ul><ul><li>Adam Hocek </li></ul></ul><ul><ul><li>Michael Lavacca (intern) </li></ul></ul><ul><ul><li>Dinki Mehata </li></ul></ul><ul><ul><li>Earle Nietzel </li></ul></ul>July 2009 10th Sakai Conference - Boston, MA, U.S.A. <ul><li>IBM </li></ul><ul><ul><li>Marty Banting </li></ul></ul><ul><ul><li>Howard Baker </li></ul></ul><ul><ul><li>Austin Schilling </li></ul></ul><ul><ul><li>Websphere and Java teams </li></ul></ul><ul><li>Sakai </li></ul><ul><ul><li>Aaron Zeckoski </li></ul></ul><ul><li>rSmart </li></ul><ul><ul><li>John Bush </li></ul></ul><ul><ul><li>Corey McGarrahan </li></ul></ul>
    6. 6. Project Timeline <ul><li>Notified Sakai Foundation about our goal to implement Websphere support (2/28) </li></ul><ul><li>Created JIRA to track feature (4/21) </li></ul><ul><li>Created screencast (5/29) </li></ul><ul><li>Created Sakai Confluence section (6/1) </li></ul><ul><li>Bootcamp (6/2) </li></ul><ul><li>Initial test of Sakai on Websphere (6/13) </li></ul><ul><li>Announced on Sakai devlist (6/17) </li></ul><ul><li>Submitted CCLA and CLA </li></ul><ul><li>Development - Continuous testing and bug fixing (6/16-9/17) </li></ul><ul><li>Called for vote on Sakai devlist for merge (9/18) </li></ul><ul><li>Accepted and merged 9/23 </li></ul><ul><li>Code Freeze 9/29 </li></ul><ul><li>QA and bug fixes (10/01 – release of 2.6) </li></ul>July 2009 10th Sakai Conference - Boston, MA, U.S.A.
    7. 7. Working with the Community <ul><li>Engaging the Community </li></ul><ul><ul><li>Email lists </li></ul></ul><ul><ul><li>Sakai Confluence </li></ul></ul><ul><ul><li>Working alongside tool owners </li></ul></ul><ul><ul><li>Weekly Sakai phone meetings </li></ul></ul><ul><li>Contributing to the Community </li></ul><ul><ul><li>Websphere functionality support </li></ul></ul><ul><ul><li>Automated Selenium test scripts </li></ul></ul><ul><ul><li>Sponsored bootcamp </li></ul></ul><ul><ul><li>Established and maintain QA environments </li></ul></ul>July 2009 10th Sakai Conference - Boston, MA, U.S.A.
    8. 8. Challenges <ul><li>Sakai 2.6 was a ‘moving target’ </li></ul><ul><li>Our contributions affected multiple components </li></ul><ul><li>Approximately 60 issues </li></ul><ul><ul><li>4 critical, 45 major, 8 minor, 3 trivial </li></ul></ul><ul><li>Issues </li></ul><ul><ul><li>Differences between Sun JRE and IBM JRE </li></ul></ul><ul><ul><li>Differences between Tomcat and Websphere </li></ul></ul><ul><li>Integrating with rSmart’s DB2 work </li></ul><ul><li>Resolved issues via coding or configuration changes </li></ul>July 2009 10th Sakai Conference - Boston, MA, U.S.A.
    9. 9. IBM, rSmart, and Marist IT partnership <ul><li>IBM: responsible for WebSphere </li></ul><ul><li>rSmart: responsible DB2 </li></ul><ul><li>Marist IT: testing and integration </li></ul><ul><li>Weekly Conference Calls </li></ul><ul><ul><li>Identifying issues </li></ul></ul><ul><ul><li>Collaboration & Information sharing </li></ul></ul><ul><ul><li>Sharing test scripts </li></ul></ul>July 2009 10th Sakai Conference - Boston, MA, U.S.A.
    10. 10. The Development Process And now…
    11. 11. Objectives <ul><li>Implement Websphere support in Sakai </li></ul><ul><ul><li>Resolve all Sakai issues on Websphere </li></ul></ul><ul><ul><li>Gain approval and acceptance of these fixes by the Sakai Community </li></ul></ul><ul><ul><li>Contribute these fixes to be merged into trunk </li></ul></ul>
    12. 12. Development and Issue Management Processes <ul><li>Sakai - a moving target </li></ul><ul><ul><li>Community development continued in parallel to Websphere work </li></ul></ul><ul><ul><li>Needed to integrate with Sakai Community </li></ul></ul><ul><li>Websphere development occurred in code branches, separate from Sakai trunk </li></ul><ul><li>Weekly syncs from trunk to branches ensured new community changes were tested on Websphere </li></ul>
    13. 13. Tools <ul><li>Marist JIRA </li></ul><ul><ul><li>Initial Testing (Moved to Sakai JIRA) </li></ul></ul><ul><li>Websphere Branches </li></ul><ul><ul><li>Tool Specific </li></ul></ul><ul><li>Deployment Scripts </li></ul><ul><li>Rational Application Developer </li></ul><ul><li>And the usual Sakai tools </li></ul><ul><ul><li>Maven, Subversion, etc. </li></ul></ul>
    14. 14. Process Diagram Tester Developer Tool Owner Discover WAS related Issue Create JIRA issue Verify (reproduce) issue Develop & create fix Lead Developer Verify fix in Development Environment (WAS & Tomcat) Verify Issue & assign to appropriate developer Review fix & assign JIRA to tester Create patch & attach to JIRA issue Verify fix on Testing Environment (WAS & Tomcat) Commit patch to branch & request branch merge from tool owner Review patch & merge if approved
    15. 15. Making Things Easier For Tool Owners <ul><li>Ensure our contributions were ready for tool owners review </li></ul><ul><ul><li>Minimized changes as much as possible </li></ul></ul><ul><ul><li>Updated JIRA frequently </li></ul></ul><ul><ul><li>Tested changes by more than one person (Tester, Developer, Lead Developer) in their own environments </li></ul></ul><ul><ul><li>Each fix was code reviewed </li></ul></ul><ul><ul><li>Regression tested on Tomcat to ensure functionally was unchanged </li></ul></ul><ul><ul><li>Created patches using most recent trunk revision </li></ul></ul>
    16. 16. Sakai JIRA Guidelines <ul><li>Development process maintained by following Sakai JIRA guidelines </li></ul><ul><li>All issues managed via JIRA </li></ul><ul><li>Necessary steps taken to keep JIRA up to date with the issue’s progress </li></ul><ul><ul><li>Updated </li></ul></ul><ul><ul><li>Modified </li></ul></ul><ul><ul><li>Commented </li></ul></ul><ul><ul><li>Re-assigned </li></ul></ul><ul><li>Fixed issues had to be accepted by Sakai community </li></ul><ul><li>Changes prior to code freeze were not approved until vote took place </li></ul><ul><li>Tool owners are assigned issues once fixed in order to review changes & decide if changes are ready to be committed </li></ul>
    17. 17. Voting and Acceptance Process <ul><li>Presented our case to Sakai Community (9/18) </li></ul><ul><ul><li>Requested 8 branches to be merged into trunk </li></ul></ul><ul><ul><li>Presented documentation on changes </li></ul></ul><ul><ul><li>Asked tool owners to review changes </li></ul></ul><ul><li>Acceptance </li></ul><ul><ul><li>Tool owners found changes to be minimal </li></ul></ul><ul><ul><li>Tomcat functionally was unchanged </li></ul></ul><ul><ul><li>Community held vote </li></ul></ul><ul><ul><li>Collaborated with tool owners to merge branches </li></ul></ul>
    18. 18. The QA Process <ul><li>And now… </li></ul>July 2009 10th Sakai Conference - Boston, MA, U.S.A.
    19. 19. Challenges <ul><li>Catch any new issues caused by new functionality made by community </li></ul><ul><ul><li>Regular regression testing </li></ul></ul><ul><li>Verify our own fixes </li></ul><ul><ul><li>Ensure fixes are working and do not hinder other functionality </li></ul></ul>July 2009 10th Sakai Conference - Boston, MA, U.S.A.
    20. 20. Regression Testing <ul><li>Originally scheduled once per week </li></ul><ul><li>As code freeze approached, frequency of changes by community increased </li></ul><ul><li>Found it was necessary to perform to bi-weekly and even several times per week </li></ul><ul><li>Testing needed to be done faster and with better ability to repeat in-depth testing…but how?! </li></ul>July 2009 10th Sakai Conference - Boston, MA, U.S.A.
    21. 21. Automated Testing <ul><li>And now… </li></ul>July 2009 10th Sakai Conference - Boston, MA, U.S.A. In the beginning, there was manual testing. This was slow, inefficient, and time-consuming. Then the Lead Tester said “Let there be automation,” and there was automation.
    22. 22. Automated Testing <ul><li>Introducing Selenium IDE: The workhorse of QA! </li></ul>July 2009 10th Sakai Conference - Boston, MA, U.S.A.
    23. 23. Automated Testing <ul><li>What Selenium allows us to do: </li></ul><ul><li>Record manual test cases into automated ones </li></ul><ul><li>Add/edit/delete contents of test case on the fly </li></ul><ul><li>Include comments for details on what the script is doing and/or for possible snags </li></ul><ul><li>How we benefitted from automated testing: </li></ul><ul><li>Drastically cut down time to run a full regression test </li></ul><ul><li>Ability to test more frequently, thus keeping up with community changes and bug reporting </li></ul>July 2009 10th Sakai Conference - Boston, MA, U.S.A.
    24. 24. QA Instances July 2009 10th Sakai Conference - Boston, MA, U.S.A. gw1-qa-ilearn.ilearn.marist.edu app2-qa-ilearn.ilearn.marist.edu app1-qa-ilearn.ilearn.marist.edu app3-qa-ilearn.ilearn.marist.edu Tomcat Websphere Websphere IHS MySql DB2 qa8 qa7 qa9 qa7-us.sakaiproject.org qa8-us.sakaiproject.org qa9-us.sakaiproject.org q10-us.sakaiproject.org Websphereon z libmsus3.osdl.marist.edu sakai Websphereon z qa11 q11-us.sakaiproject.org Note: qa7 – qa9, qa11: running latest tag qa10: sakai trunk libmsus5.osdl.marist.edu QA7 QA8 QA9 QA10 QA11
    25. 25. July 2009 10th Sakai Conference - Boston, MA, U.S.A. QA Instances: Motivation <ul><li>Why host QA servers ? </li></ul><ul><li>Support community testing on Websphere and DB2 </li></ul><ul><li>Conduct internal regression tests </li></ul><ul><li>Demonstrate virtualization of Sakai on Websphere and DB2 on System z </li></ul>
    26. 26. QA Instances July 2009 10th Sakai Conference - Boston, MA, U.S.A. Server OS App Server Database qa7-us.sakaiproject.org RHEL 5.2 Tomcat 5.5.27 DB2 9.1 qa8-us.sakaiproject.org RHEL 5.2 WebSphere 6.1.0.17 MySQL 5.0.45 qa9-us.sakaiproject.org RHEL 5.2 WebSphere 6.1.0.17 DB2 9.1 qa10-us.sakaiproject.org zLinux WebSphere 6.1.0.19 DB2 9.1 qa11-us.sakaiproject.org zLinux WebSphere 6.1.0.19 DB2 9.1 gw1-qa-ilearn.ilearn.marist.edu RHEL 5.2 IBM HTTP Server 6.1 -
    27. 27. Project Timeline Mapping <ul><li>Previously ported Sakai 2.2, 2.3, 2.4 </li></ul><ul><li>Notified Sakai Foundation about our goal to implement Websphere support (2/28) </li></ul><ul><li>Created JIRA to track feature (4/21) </li></ul><ul><li>Created screencast (5/29) </li></ul><ul><li>Created Sakai Confluence section (6/13) </li></ul><ul><li>Bootcamp (6/6) </li></ul><ul><li>Initial test of Sakai on Websphere (6/13) </li></ul><ul><li>Announced on Sakai devlist (6/17) </li></ul><ul><li>Submitted CCLA and CLA </li></ul><ul><li>Development - Continuous testing and bug fixing (6/16-9/17) </li></ul><ul><li>Called for vote on Sakai devlist for merge (9/18) </li></ul><ul><li>Accepted and merged 9/23 </li></ul><ul><li>Code Freeze 9/29 </li></ul><ul><li>QA and bug fixes (10/01 – release of 2.6) </li></ul>July 2009 10th Sakai Conference - Boston, MA, U.S.A. Research & Development Incubation Product Development Maintenance
    28. 28. Development Model July 2009 10th Sakai Conference - Boston, MA, U.S.A. <ul><li>Community Model (proposed by Michael Korcuska) </li></ul><ul><ul><li>Research & Development: where new ideas are generated and new technologies are tried </li></ul></ul><ul><ul><li>Incubation: projects planned for a Sakai release </li></ul></ul><ul><ul><li>Product Development: execution of the plan </li></ul></ul><ul><ul><li>Maintenance: bug fixes and feature enhancements </li></ul></ul><ul><ul><li>End of Life: removing from project </li></ul></ul>
    29. 29. Lessons Learned <ul><li>Implement a well-defined internal process that complements the community’s development process </li></ul><ul><li>Use available automated testing tools to keep up with the community’s development pace </li></ul><ul><li>Communicate with the community </li></ul><ul><ul><li>Start early in the project </li></ul></ul><ul><ul><li>Use community tools to share information (JIRA’s, Wiki, Weekly Calls, Sakai Devlist) </li></ul></ul><ul><ul><li>The community is helpful, ask for guidance when needed </li></ul></ul><ul><ul><li>Present at Sakai conference </li></ul></ul><ul><li>Consider partnering with an educational institute </li></ul><ul><li>Provide access to the commercial components of your project </li></ul>

    ×