SlideShare a Scribd company logo
1 of 64
Download to read offline
How to open source internal software in a
                                    Mega-Corp

                                        Martijn Verburg (@karianna)


                            (Full presentation slides will be made available on slideshare)



                                     Slide Design http://www.kerrykenneally.com


Friday, 13 May 2011                                                                           1
Introduction – Speaker




Friday, 13 May 2011            2
3


Friday, 13 May 2011       3
Introduction – Speaker


      •   I’m a Java and open source software consultant mentor.
            – Helps banks leverage those technologies for fun and profit!


      •   I work on several open source projects
            – Recently Ikasan EIP – http://www.ikasan.org & PCGen - http://pcgen.sf.net


      •   I Co-lead the London JUG and moderate on the Javaranch


      •   Writing “The Well-Grounded Java Developer” for Manning with Ben Evans.
            – Shameless plug!


      •   Twitter:        @karianna



Friday, 13 May 2011                                                                       4
Introduction – That’s no Moon....



                      We are not going to get through all of this!




Friday, 13 May 2011                                                  5
Introduction – Slides != Live Presentation


      •   The slides have a *lot* of material
            – But’s that’s so you can read while I tell you bed time stories
            – Well actually it’s for the enterprise folks who need to convince their companies


      •   I’ll be talking lots about use cases, in particular experiences with:
            – Using open source software in investment banks
            – Producing open source software from investment banks
            – Some controversial open source projects out there today


      •   For those folks seeing this on slideshare
            – See my Hollywood good looks and hear my sultry voice on Parleys.com




                                                                                     6


Friday, 13 May 2011                                                                              6
Introduction – Areas to cover



      1. Getting Started Part I
      2. Convincing the Stakeholders
      3. Getting Started Part II
      4. Technical Infrastructure
      5. Social and Political infrastructure
      6. Money
      7. Communications
      8. Packaging, Releasing and Daily Development
      9. Managing Volunteers
      10. Licensing, Patents and Copyright




Friday, 13 May 2011                                   7
Getting Started Part I - Benefits of open sourcing




              £€$
Friday, 13 May 2011                                        8
Getting Started Part I - Benefits of open sourcing




                         Image courtesy of Catan HD iPhone




Friday, 13 May 2011                                          9
Getting Started Part I - Benefits of open sourcing



                      Public Relations




                        I couldn’t find a cool image <shrug>




Friday, 13 May 2011                                            10
Getting Started Part I - Benefits of open source


      •   ‘10,000 eyes’ on the technical content


      •   Explaining/Documenting for outsiders improves quality


      •   More users == more rigorous testing!


      •   Participation in a vibrant community
            – It’s fun again
            – Developing software is a social activity




Friday, 13 May 2011                                               11
Getting Started Part I - Benefits of open source




                 Cultural Change
                           Banks are often held back by their IT
                                                Are startups?
                                 (But surely banks have more resources!)


           The rest of the world is doing: mobile, cloud, agile, lean, dynamic languages, continuous delivery




Friday, 13 May 2011                                                                                             12
Getting Started Part I – Choosing an appropriate
      project


      •   Key indicators that can help you identify the right project:
            – Plumbing
            – Not a core competency
            – No intrinsic IP value


      •   Ikasan EIP – The Middleware platform
            – Middleware is plumbing
            – Software development is not a core competency of the bank
            – Software had no IP value (that the bank wanted to trade on)




Friday, 13 May 2011                                                         13
Convincing the Stakeholders – Who are they?




Friday, 13 May 2011                                 14
Convincing the Stakeholders – Legal



      •   Legal: Questions
            1. What license to use?
            2. What liability do we have?
            3. Uh oh, we don’t even have a policy on using open source, what now?


      •   Legal: Answers
            1. That depends! There are plenty of business/corporate friendly licenses.
                 •    There is legal precedence in this area
            2. That depends on the ‘law of the land’
                 •    Typically none, unless it’s overruled by common law
            3. Then you are vulnerable to lawsuits
                 •    Get a policy in place immediately!




Friday, 13 May 2011                                                                      15
Convincing the Stakeholders – Information
      Security

      •   Information Security: Questions
            1.   Will our data be in the public domain?
            2.   Are any of our systems made vulnerable?
            3.   How is authentication/authorisation applied?
            4.   Open source must surely mean less secure?


      •   Information Security: Answers
            1. Not unless your staff upload sensitive information (same as now)
            2. Not if you host the project externally as recommended
            3. According to project policy
                  •   Typically everything is reviewed before being committed
            4. Fallacy
                  •   Think Linux vs. MS Windows
                  •   “Security through obscurity is not security at all”




Friday, 13 May 2011                                                               16
Convincing the Stakeholders – Infrastructure


      •   Infrastructure: Questions
            1. What access do internal staff require?


      •   Infrastructure: Answers
            1. Typically they need secure access to external hosting providers, e.g.:
                 •    HTTPS
                 •    SCP
                 •    SSH
                 •    Plus HTTP access to some social/communication sites




Friday, 13 May 2011                                                                     17
Convincing the Stakeholders – IT Management


      •   Head of IT: Questions
            1.   Does it affect productivity?
            2.   Does this mean free help?
            3.   What’s the cost?
            4.   Quality Control?


      •   Head of IT: Answers
            1. Initially yes! But then community takes over
            2. Yes! But you get out what you put in
            3. Legal is often the biggest up front cost
                 •    On the IT side, it can be set-up for <£1000 + X person hours
            4. Is typically tighter due to public scrutiny
                 •    If project is run in recommended way




Friday, 13 May 2011                                                                  18
Convincing the Stakeholders – The business


      •   Business: Questions
            1. What’s in it for us?
            2. Won’t we lose control of what we need?


      •   Business: Answers
            1. Faster delivery at a higher quality
                 •    Due to more users
                 •    Due to more technical eyes looking for issues
            2. Product can still be influenced by staff
                 •    Can be forked if necessary




Friday, 13 May 2011                                                   19
Convincing the Stakeholders – The development
      team


      •   Development Team: Questions
            1. But outsiders wouldn’t understand our code?
            2. We’re worried about our existing quality?
            3. How do we run all of this?


      •   Development Team: Answers
            1. Then you need to improve the code/documentation
            2. You’re no better or worse than the other 200,000+ open source projects, don’t
               worry
            3. That’s what the other 40+ slides will cover!
                 •    But seriously, read Karl Fogel’s seminal work on this topic producingoss.com




Friday, 13 May 2011                                                                                  20
Getting Started Part II – Project name and Mission
      Statement


      •   Project name should be:
            –   Catchy and/or relative to the project
            –   Easy to remember
            –   Doesn't impose on trademarks / is unique
            –   Has major domains available (.com, .net, .org)


      •   Mission Statement should:
            – Define the major goal of your project
            – Be concrete, limiting and short!




Friday, 13 May 2011                                              21
Getting Started Part II – 60 seconds to reel them In




Friday, 13 May 2011                                          22
Getting Started Part II – 60 seconds to reel them In


      •   Declare FOSS Status
            – Make it abundantly clear that your project is Free Software and/or Open Source
            – Choose your license carefully!


      •   Features and Requirements Listing
            – Clarifies your mission statement scope
            – Allow users to understand immediately what they need to run your software


      •   Development Status
            – Future Roadmap and Milestones
            – What stage is your project at (Alpha, Beta, Mature)?




Friday, 13 May 2011                                                                            23
Getting Started Part II – Make it available


      •   Downloads
            – Both Source and binary downloads should be available


      •   Version Control
            – Vital to have source control in place early on
            – Anonymous access a must


      •   Issue Tracker
            – A place to record issues is a mandatory requirement


      •   Canned Hosting
            – SourceForge
            – Google Code




Friday, 13 May 2011                                                  24
Getting Started Part II – Make it accessible




Friday, 13 May 2011                                  25
Getting Started Part II – Make it accessible


      •   Public Communications Channel
            – A Mailing List/Forum should be opened immediately


      •   Developer Guidelines
            –   How to communicate with other developers
            –   How to provide patches
            –   How development is done (Benevolent Dictatorship, democracy etc)
            –   Practice conspicuous code reviews and make them public




Friday, 13 May 2011                                                                26
Getting Started Part II – Documentation


      •   Biggest complaint about most open source projects is poor documentation

      •   Clear “How To” for installation, otherwise people will give up

      •   Have a FAQ and “Common Task” tutorials

      •   Label the areas where the documentation is known to be incomplete


      •   Should be available online and offline

      •   Screenshots and sample output, a picture tells a thousand words




Friday, 13 May 2011                                                                 27
Getting Started Part II – Setting the tone


      •   Open source projects are very social, failures tend to occur due to social
          rather than technical reasons

      •   Avoid private discussions! Make it a project policy

      •   Nip rudeness in the bud

      •   Kathy Sierra's “Creating Passionate Users”
            – Javaranch’s “Be Nice” policy


      •   Be sensitive if opening a formerly closed project




Friday, 13 May 2011                                                                    28
Break!!!




                      The remaining slides aspects of running a successful project in detail.
                                               Take a deep breath




                                                                                                29


Friday, 13 May 2011                                                                                  29
Technical Infrastructure – Mailing Lists/Forums


      •   Choose one that the community prefers

      •   Mailing list manager (Mailman, Ezmlm, Y! groups, Google groups etc)

      •   To avoid SPAM:
            – Only allow posts from subscribers and moderate their first message
            – Run messages through a SPAM scrubber


      •   The great “reply all” debate
            – http://www.unicom.com/pw/reply-to-harmful.html
            – http://www.metasystema.net/essays/reply-to.mhtml


      •   Archive!




Friday, 13 May 2011                                                                30
Technical Infrastructure – Version Control


      •   Vital for a distributed group

      •   Choose a popular/easy to use one

      •   Version everything

      •   Make it publicly browsable


      •   Enforce commit comments, preferably with a issue number

      •   Don't be afraid of branches, don't be afraid to cut them off either




Friday, 13 May 2011                                                             31
Technical Infrastructure – Issue Tracking


      •   Far, far more important than most people realise

      •   Choose one that is easy for users to use, encourage good reporting

      •   Choose a lifecycle and have the meta data clearly organised

      •   Good systems can automatically show milestones and roadmaps


      •   Triage!

      •   Be polite with user reports




Friday, 13 May 2011                                                            32
Technical Infrastructure – IRC and social
      networking


      •   IRC
            –   Great for instant communication
            –   Start with one channel
            –   Discuss archiving policy
            –   Encourage posting of large data to 'paste' sites, e.g. http://pastebin.ca


      •   Social Networking (Facebook, Twitter, RSS etc)
            – Can be a good idea to set these up
            – Don't over use them / flood them with messages
            – Best for one way communication




Friday, 13 May 2011                                                                         33
Technical Infrastructure – Website and Wiki


      •   Website
            – Gateway for your project
            – Make it professional!


      •   Wiki
            –   Very important for community generated knowledge
            –   Set editorial standards early, especially navigation and tagging
            –   Use common wiki software, not something obscure
            –   Design discussions and architecture documents can be centralised here




Friday, 13 May 2011                                                                     34
Social And Political Infrastructure – Structure


      •   Benevolent Dictator
            – Really more of a 'community-approved arbitrator' or 'judge‘


      •   Council/Board of Directors
            –   As projects mature and grow, boards or councils tend to form
            –   Most decisions are consensus (polls), with formal voting if required
            –   Decision needs to be made on who votes
            –   Sometimes allow vetoes




Friday, 13 May 2011                                                                    35
Money – Types of involvement


      •   Sharing costs, e.g. http://koha.org


      •   Software can be used to support hardware sales


      •   Software can be used to undermine a competitor


      •   Dual licensing and premium modules, e.g. Oracle‘s MySQL


      •   Donations




Friday, 13 May 2011                                                 36
Money – Don't be a faceless company


      •   Hire team members for the long term

      •   Appear as individuals, not a single corporate entity

      •   Be open about your motivations

      •   Money can't buy you love, treat project members as equal




Friday, 13 May 2011                                                  37
Money – Funding non-programming activities


      •   Quality Assurance (i.e. Professional Testing)

      •   Legal Advice and Protection

      •   Documentation and Usability enhancements

      •   Providing Hosting/Bandwidth


      •   Marketing and PR
            – Remember that you are being watched
            – Don't bash competing products




Friday, 13 May 2011                                       38
Communications – You are what you write


      •   You are judged on your communication
            – Good communicators achieve more than good programmers


      •   Structure And Formatting
            – Come up with a convention for the project
            – Plain text, 80 character wide emails are preferred
            – Spelling and Grammar are important, don't neglect them!




Friday, 13 May 2011                                                     39
Communications – Content and tone


      •   Remember that there are usually many more readers than writers


      •   Avoid hyperbole


      •   Over time terseness will creep in, this is OK
            – As long as it remains polite!


      •   Edit before you send

      •   Don’t assume English is their first language




Friday, 13 May 2011                                                        40
Communications – Recognising rudeness


      •   When you respond, try to respond properly and with full effort


      •   Remember there are no visual cues


      •   Try to use real names


      •   Trim replies and disclaimers

      •   Rude people waste other people's valuable time
            – Be wary of the vocal minority




Friday, 13 May 2011                                                        41
Communications – Soft topics last longer


      •   It’s always the non-technical discussions that last the longest

      •   Don’t waste time on the "Bike Shed“

      •   Avoid Holy wars, especially over:
            – Programming languages
            – Licenses
            – Reply-to munging




Friday, 13 May 2011                                                         42
Communications – Handling growth


      •   Number of Inexperienced users rises rapidly

      •   Number of experienced users rise much more slowly

      •   Good publicly available documentation is vital

      •   Produce specialised forums/lists (Javaranch)


      •   Make archives available

      •   Keep conversations out of the issue tracker




Friday, 13 May 2011                                           43
Communications – Publicity


      •   You Website front page is seen by more people than any other part of the
          project
            – Important news should be posted there


      •   Also have a "News" or "Press Releases" area of the web site

      •   If your project has an RSS feed utilise that as well

      •   If the announcement is about a new release of the software, then update
          your project's entry on http://www.freshmeat.net/




Friday, 13 May 2011                                                                  44
Packaging, Releasing and Daily Development –
      Release Numbering


      •   Serves as a guide to end users whether to take a new release

      •   major.minor.trivial designation often used
            – Have a clear definition of what bumps a major, minor, trivial release
            – Major breaks backwards compatibility


      •   Use Alpha, Beta and RC as appropriate
            – Google's idea of Beta should not be followed!




Friday, 13 May 2011                                                                   45
Packaging, Releasing and Daily Development –
      Release Branches


      •   A Branch should be created for each Major/Minor release
            – e.g. 1.0.x and 1.1.x


      •   Different strategies on how to release:
            – Release Owner - Trusted team member empowered to make the call
            – Vote changes in - Can get endless


      •   Generally best to have a rough roadmap first

      •   Normal to fix vital bugs in several lines & release simultaneously
            – Decide when you want to 'End Of Life' a line




Friday, 13 May 2011                                                            46
Packaging, Releasing and Daily Development –
      Packaging


      •   Standards are tar/zip for Linux/UNIX and zip for windows


      •   Should include Files:
            –   README
            –   INSTALL
            –   LICENSE
            –   CHANGES
            –   MEMBERS




Friday, 13 May 2011                                                  47
Packaging, Releasing and Daily Development –
      Packaging


      •   Follow consistent way for users to compile and install the software
            – e.g. (Java) mvn clean install
            – e.g. (C++) $ ./configure
                                 $ make
                                 # make install


      •   Make std binaries e.g. msi/exe for windows and appropriate packages for
          various Linux/UNIX distros

      •   Use MD5/SHA signing so people know that packages have not been
          tampered with

      •   Make Betas, RCs readily available and make it easy to test side by side with
          a stable release




Friday, 13 May 2011                                                                      48
Packaging, Releasing and Daily Development –
      Daily Development


      •   Encourage discrete check-ins, so they can be easily rolled back
            – e.g. Don't mix several items in one check-in


      •   Enforce commit comments
            – Try to enforce traceability to an issue number


      •   Enforce Unit Tests/Integration Tests with commits
            – It’s important to avoid regressions
            – Continuous Integration is vital




Friday, 13 May 2011                                                         49
Managing Volunteers – Getting the most out of
      volunteers


      •   Volunteers often start with the project due to a technical reason
            – e.g. Fixing a minor bug


      •   Will stay for many, many different reasons

      •   You need to ascertain what makes each individual tick
            – Helps you pick up on disruptive members early




Friday, 13 May 2011                                                           50
Managing Volunteers – Delegation


      •   Is a public declaration of trust

      •   Draws people further into the project

      •   Need to give people a graceful out

      •   Differentiate asking someone to investigate something vs. asking them to
          take ownership
            – Don't blindly assign!

      •   Follow up after you delegate!

      •   Notice which people are interested in a particular area




Friday, 13 May 2011                                                                  51
Managing Volunteers – Praise and Criticism


      •   Two sides of the same 'attention' coin

      •   Praise is often the only payment volunteers get
            – Use it wisely, don't undervalue it


      •   Criticism must be delivered dispassionately with detail
            – "It was sloppy.“
            vs.
            – "Could you review that and apply std project guideline X please?"




Friday, 13 May 2011                                                               52
Managing Volunteers – Prevent Territoriality


      •   Single point of failure.

      •   Diminishes community.

      •   Common to avoid author tags in code, preference to use "X Team“.




Friday, 13 May 2011                                                          53
Managing Volunteers – Every User Is A Potential
      Volunteer


      •   Always maximise contact with a new user who has reported something.

      •   Try to get user involved in the fix.

      •   Remember to be patient with new volunteers, educate them!




Friday, 13 May 2011                                                             54
Managing Volunteers – Share management tasks
      as well as technical tasks


      •   Often management tasks are as time consuming as technical ones
            – e.g. Board of Directors on PCGen consist of management 'Team Leads‘.


      •   Common roles are:
            –   Patch Manager
            –   Release Manager
            –   Translation Manager
            –   Documentation/FAQ Manager
            –   Issue Manager




Friday, 13 May 2011                                                                  55
Managing Volunteers – Transitions


      •   Volunteers won't stay in same role forever
            – RL == 'Real Life' often gets in the way!


      •   Time management is a vital skill
            – Encourage new volunteers to start with a small commitment
            – Monitor signs of tiredness
            – Don’t expect unpaid volunteers to “Do it right now”


      •   Very occasionally a volunteer is inappropriate for a position
            – Get private project consensus before privately discussing a transition to a new
              role




Friday, 13 May 2011                                                                             56
Managing Volunteers – Committers


      •   Committers are seen as the core of a project team
            – They typically form quality control
            – They typically have a 'vote‘
            – Choose them on their judgement more than anything else!


      •   Can use partial commit access to entice people in

      •   Avoid mystery committers
            – They should be accessible to the rest of the team




Friday, 13 May 2011                                                     57
Managing Volunteers – Forks


      •   Try to avoid forks where possible
            – Forks aren't necessarily a bad thing


      •   You should act dispassionately and not engage in blocking behaviour

      •   Almost all forks fail and/or merge back in with the original project




Friday, 13 May 2011                                                              58
Licenses, Copyrights and Patents – Terminology


      •   “Free Software” (http://www.fsf.org/) - Tends to be used by those who have
          the philosophical belief

      •   “Open Source” (http://www.opensource.org/) - Tends to be used by those
          without

      •   List of licenses maintained at http://www.gnu.org/licenses/license-list.html




Friday, 13 May 2011                                                                      59
Licenses, Copyrights and Patents – Aspects of
      licenses


      •   Compatibility with proprietary licenses
            – Apache, MIT & Others


      •   Compatibility with other free licenses
            – Several licenses automatically are compatible with each other
            – GPL can be tricky on this aspect


      •   Enforcement of crediting
            – Whether you must provide notice or not


      •   Protection of trademark
            – Must have written permission to derive from original




Friday, 13 May 2011                                                           60
Licenses, Copyrights and Patents – License choice


      •   MIT/X Window style license is recommended for a “Do with this what you
          want” approach

      •   GPL style license is recommended for a “Do with this what you want except
          put on restrictions“ approach
            – The LGPL loosens some of those restrictions


      •   Apache and Eclipse licenses is seen as business friendly

      •   Apply license text/snippet to your source code, most licenses have a
          template for this




Friday, 13 May 2011                                                                   61
Licenses, Copyrights and Patents – Copyright
      assignment and ownership


      •   Dealing with contributors copyright and ownership:
            –   Do nothing (Not recommended)
            –   Contributor License Agreements - Electronic form is sufficient
            –   Transfer of Copyright - Total transfer of copyright
            –   http://www.openrightsgroup.org


      •   Dual Licensing
            – Gaining popularity with corporations
            – Typically allows 'Free' license to non profits, academics and other open source
              users
            – Can be difficult to manage community with dual licensing




Friday, 13 May 2011                                                                             62
Licenses, Copyrights and Patents – Patents


      •   Very harmful to software development

      •   Often owned by corporations with deep pockets
            – Open Source project is forced to stop


      •   You can defensively patent to make sure that your project doesn't get
          blocked




Friday, 13 May 2011                                                               63
Thanks for Listening!
      http://www.java7developer.com




                                      64


Friday, 13 May 2011                        64

More Related Content

Viewers also liked

MoMoSyd Presentation: Hyperlocal with the Neighbourhood Networks Platform by ...
MoMoSyd Presentation: Hyperlocal with the Neighbourhood Networks Platform by ...MoMoSyd Presentation: Hyperlocal with the Neighbourhood Networks Platform by ...
MoMoSyd Presentation: Hyperlocal with the Neighbourhood Networks Platform by ...Tim Parsons
 
Quickflix Hybrid Multiplatform Service Launching 2011
Quickflix Hybrid Multiplatform Service Launching 2011Quickflix Hybrid Multiplatform Service Launching 2011
Quickflix Hybrid Multiplatform Service Launching 2011Tim Parsons
 
Attracting (and keeping) wider audiences with internet content.
Attracting (and keeping) wider audiences with internet content.Attracting (and keeping) wider audiences with internet content.
Attracting (and keeping) wider audiences with internet content.Tim Parsons
 
Quickflix 2010 AGM Presentation
Quickflix 2010 AGM PresentationQuickflix 2010 AGM Presentation
Quickflix 2010 AGM PresentationTim Parsons
 
Sample Report: Global Online Shopping Snapshot 2016
Sample Report: Global Online Shopping Snapshot 2016Sample Report: Global Online Shopping Snapshot 2016
Sample Report: Global Online Shopping Snapshot 2016yStats.com
 
Sustainable Leadership
Sustainable LeadershipSustainable Leadership
Sustainable LeadershipRobin Paul
 
Research methods revision 2015
Research methods revision 2015Research methods revision 2015
Research methods revision 2015coburgpsych
 
Quick Start Guide for Online Student Success
Quick Start Guide for Online Student SuccessQuick Start Guide for Online Student Success
Quick Start Guide for Online Student SuccessSidneyeve Matrix
 
Sampling Design
Sampling DesignSampling Design
Sampling DesignJale Nonan
 
Sustainable Leadership
Sustainable LeadershipSustainable Leadership
Sustainable LeadershipLaura Pasquini
 

Viewers also liked (13)

Leasing
LeasingLeasing
Leasing
 
Sampling
SamplingSampling
Sampling
 
MoMoSyd Presentation: Hyperlocal with the Neighbourhood Networks Platform by ...
MoMoSyd Presentation: Hyperlocal with the Neighbourhood Networks Platform by ...MoMoSyd Presentation: Hyperlocal with the Neighbourhood Networks Platform by ...
MoMoSyd Presentation: Hyperlocal with the Neighbourhood Networks Platform by ...
 
Quickflix Hybrid Multiplatform Service Launching 2011
Quickflix Hybrid Multiplatform Service Launching 2011Quickflix Hybrid Multiplatform Service Launching 2011
Quickflix Hybrid Multiplatform Service Launching 2011
 
Sampling-1 Intro
Sampling-1 IntroSampling-1 Intro
Sampling-1 Intro
 
Attracting (and keeping) wider audiences with internet content.
Attracting (and keeping) wider audiences with internet content.Attracting (and keeping) wider audiences with internet content.
Attracting (and keeping) wider audiences with internet content.
 
Quickflix 2010 AGM Presentation
Quickflix 2010 AGM PresentationQuickflix 2010 AGM Presentation
Quickflix 2010 AGM Presentation
 
Sample Report: Global Online Shopping Snapshot 2016
Sample Report: Global Online Shopping Snapshot 2016Sample Report: Global Online Shopping Snapshot 2016
Sample Report: Global Online Shopping Snapshot 2016
 
Sustainable Leadership
Sustainable LeadershipSustainable Leadership
Sustainable Leadership
 
Research methods revision 2015
Research methods revision 2015Research methods revision 2015
Research methods revision 2015
 
Quick Start Guide for Online Student Success
Quick Start Guide for Online Student SuccessQuick Start Guide for Online Student Success
Quick Start Guide for Online Student Success
 
Sampling Design
Sampling DesignSampling Design
Sampling Design
 
Sustainable Leadership
Sustainable LeadershipSustainable Leadership
Sustainable Leadership
 

Similar to How to open source a project at Mega Corp (Geecon - May/2011)

Mer from User's Perspective
Mer from User's PerspectiveMer from User's Perspective
Mer from User's Perspectiveguesta05d7a
 
What do records and information managers need to know about open source ECM?
What do records and information managers need to know about open source ECM?What do records and information managers need to know about open source ECM?
What do records and information managers need to know about open source ECM?Cheryl McKinnon
 
Lessons learned about entrepreneurship
Lessons learned about entrepreneurshipLessons learned about entrepreneurship
Lessons learned about entrepreneurshipFredrik Ljungberg
 
Open source doesn’t always represent best value
Open source doesn’t always represent best valueOpen source doesn’t always represent best value
Open source doesn’t always represent best valueJanus Boye
 
Launching Mixer: What Worked, What didn't
Launching Mixer: What Worked, What didn'tLaunching Mixer: What Worked, What didn't
Launching Mixer: What Worked, What didn'tChris Connell
 
Monitoring indonesia darknets - Revealing the unseen security intrusion
Monitoring indonesia darknets - Revealing the unseen security intrusionMonitoring indonesia darknets - Revealing the unseen security intrusion
Monitoring indonesia darknets - Revealing the unseen security intrusionCharles Lim
 
Lean Startup: Insider's Story
Lean Startup: Insider's StoryLean Startup: Insider's Story
Lean Startup: Insider's StoryEmpatika
 
Localbysocial sunderland
Localbysocial sunderlandLocalbysocial sunderland
Localbysocial sunderlandlocalgovuk
 
Localbysocial North East
Localbysocial North EastLocalbysocial North East
Localbysocial North EastIngrid Koehler
 
Pistoia Alliance Sequence Services Phase 2 Overview
Pistoia Alliance Sequence Services Phase 2 OverviewPistoia Alliance Sequence Services Phase 2 Overview
Pistoia Alliance Sequence Services Phase 2 OverviewPistoia Alliance
 
Marion Kelt (Glasgow Caledonian University) – “Fighting the fear of copyright...
Marion Kelt (Glasgow Caledonian University) – “Fighting the fear of copyright...Marion Kelt (Glasgow Caledonian University) – “Fighting the fear of copyright...
Marion Kelt (Glasgow Caledonian University) – “Fighting the fear of copyright...ARLGSW
 
Future of software development - Danger of Oversimplification
Future of software development - Danger of OversimplificationFuture of software development - Danger of Oversimplification
Future of software development - Danger of OversimplificationJon Ruby
 
IWMW 2002: open source sofware debate: kelly
IWMW 2002: open source sofware debate: kellyIWMW 2002: open source sofware debate: kelly
IWMW 2002: open source sofware debate: kellyIWMW
 
An Introduction To Mobile Software Testing
An Introduction To Mobile Software TestingAn Introduction To Mobile Software Testing
An Introduction To Mobile Software TestingStephen Janaway
 
Open Source Software for Libraries
Open Source Software for LibrariesOpen Source Software for Libraries
Open Source Software for LibrariesNicole C. Engard
 

Similar to How to open source a project at Mega Corp (Geecon - May/2011) (20)

Mer from User's Perspective
Mer from User's PerspectiveMer from User's Perspective
Mer from User's Perspective
 
Intersect
IntersectIntersect
Intersect
 
What do records and information managers need to know about open source ECM?
What do records and information managers need to know about open source ECM?What do records and information managers need to know about open source ECM?
What do records and information managers need to know about open source ECM?
 
Lessons learned about entrepreneurship
Lessons learned about entrepreneurshipLessons learned about entrepreneurship
Lessons learned about entrepreneurship
 
Open source doesn’t always represent best value
Open source doesn’t always represent best valueOpen source doesn’t always represent best value
Open source doesn’t always represent best value
 
SharePoint Conference Recap - Adoption Session
SharePoint Conference Recap - Adoption SessionSharePoint Conference Recap - Adoption Session
SharePoint Conference Recap - Adoption Session
 
Launching Mixer: What Worked, What didn't
Launching Mixer: What Worked, What didn'tLaunching Mixer: What Worked, What didn't
Launching Mixer: What Worked, What didn't
 
Monitoring indonesia darknets - Revealing the unseen security intrusion
Monitoring indonesia darknets - Revealing the unseen security intrusionMonitoring indonesia darknets - Revealing the unseen security intrusion
Monitoring indonesia darknets - Revealing the unseen security intrusion
 
Data Mining & Engineering
Data Mining & EngineeringData Mining & Engineering
Data Mining & Engineering
 
Lean Startup: Insider's Story
Lean Startup: Insider's StoryLean Startup: Insider's Story
Lean Startup: Insider's Story
 
Localbysocial sunderland
Localbysocial sunderlandLocalbysocial sunderland
Localbysocial sunderland
 
Localbysocial North East
Localbysocial North EastLocalbysocial North East
Localbysocial North East
 
Pistoia Alliance Sequence Services Phase 2 Overview
Pistoia Alliance Sequence Services Phase 2 OverviewPistoia Alliance Sequence Services Phase 2 Overview
Pistoia Alliance Sequence Services Phase 2 Overview
 
Marion Kelt (Glasgow Caledonian University) – “Fighting the fear of copyright...
Marion Kelt (Glasgow Caledonian University) – “Fighting the fear of copyright...Marion Kelt (Glasgow Caledonian University) – “Fighting the fear of copyright...
Marion Kelt (Glasgow Caledonian University) – “Fighting the fear of copyright...
 
Future of software development - Danger of Oversimplification
Future of software development - Danger of OversimplificationFuture of software development - Danger of Oversimplification
Future of software development - Danger of Oversimplification
 
IWMW 2002: open source sofware debate: kelly
IWMW 2002: open source sofware debate: kellyIWMW 2002: open source sofware debate: kelly
IWMW 2002: open source sofware debate: kelly
 
Emdug click & clack ace presentation
Emdug click & clack ace presentationEmdug click & clack ace presentation
Emdug click & clack ace presentation
 
Smart
SmartSmart
Smart
 
An Introduction To Mobile Software Testing
An Introduction To Mobile Software TestingAn Introduction To Mobile Software Testing
An Introduction To Mobile Software Testing
 
Open Source Software for Libraries
Open Source Software for LibrariesOpen Source Software for Libraries
Open Source Software for Libraries
 

More from Martijn Verburg

Adopt OpenJDK - Lessons learned and Where we're going (FOSDEM 2013)
Adopt OpenJDK - Lessons learned and Where we're going (FOSDEM 2013)Adopt OpenJDK - Lessons learned and Where we're going (FOSDEM 2013)
Adopt OpenJDK - Lessons learned and Where we're going (FOSDEM 2013)Martijn Verburg
 
Garbage Collection - The Useful Parts
Garbage Collection - The Useful PartsGarbage Collection - The Useful Parts
Garbage Collection - The Useful PartsMartijn Verburg
 
Free community with deep roots
Free community with deep rootsFree community with deep roots
Free community with deep rootsMartijn Verburg
 
Modern software development anti patterns (OSCON 2012)
Modern software development anti patterns (OSCON 2012)Modern software development anti patterns (OSCON 2012)
Modern software development anti patterns (OSCON 2012)Martijn Verburg
 
Modern Java Concurrency (OSCON 2012)
Modern Java Concurrency (OSCON 2012)Modern Java Concurrency (OSCON 2012)
Modern Java Concurrency (OSCON 2012)Martijn Verburg
 
Introduction to Java 7 (OSCON 2012)
Introduction to Java 7 (OSCON 2012)Introduction to Java 7 (OSCON 2012)
Introduction to Java 7 (OSCON 2012)Martijn Verburg
 
Polyglot and Functional Programming (OSCON 2012)
Polyglot and Functional Programming (OSCON 2012)Polyglot and Functional Programming (OSCON 2012)
Polyglot and Functional Programming (OSCON 2012)Martijn Verburg
 
Paperwork, Politics and Pain - Our year in the JCP (FOSDEM 2012)
Paperwork, Politics and Pain - Our year in the JCP (FOSDEM 2012)Paperwork, Politics and Pain - Our year in the JCP (FOSDEM 2012)
Paperwork, Politics and Pain - Our year in the JCP (FOSDEM 2012)Martijn Verburg
 
Modern Java Concurrency (Devoxx Nov/2011)
Modern Java Concurrency (Devoxx Nov/2011)Modern Java Concurrency (Devoxx Nov/2011)
Modern Java Concurrency (Devoxx Nov/2011)Martijn Verburg
 
Polyglot and functional (Devoxx Nov/2011)
Polyglot and functional (Devoxx Nov/2011)Polyglot and functional (Devoxx Nov/2011)
Polyglot and functional (Devoxx Nov/2011)Martijn Verburg
 
Introduction to Java 7 (Devoxx Nov/2011)
Introduction to Java 7 (Devoxx Nov/2011)Introduction to Java 7 (Devoxx Nov/2011)
Introduction to Java 7 (Devoxx Nov/2011)Martijn Verburg
 
Back to the future with Java 7 (Geekout June/2011)
Back to the future with Java 7 (Geekout June/2011)Back to the future with Java 7 (Geekout June/2011)
Back to the future with Java 7 (Geekout June/2011)Martijn Verburg
 
Java 7 - short intro to NIO.2
Java 7 - short intro to NIO.2Java 7 - short intro to NIO.2
Java 7 - short intro to NIO.2Martijn Verburg
 

More from Martijn Verburg (14)

NoHR Hiring
NoHR HiringNoHR Hiring
NoHR Hiring
 
Adopt OpenJDK - Lessons learned and Where we're going (FOSDEM 2013)
Adopt OpenJDK - Lessons learned and Where we're going (FOSDEM 2013)Adopt OpenJDK - Lessons learned and Where we're going (FOSDEM 2013)
Adopt OpenJDK - Lessons learned and Where we're going (FOSDEM 2013)
 
Garbage Collection - The Useful Parts
Garbage Collection - The Useful PartsGarbage Collection - The Useful Parts
Garbage Collection - The Useful Parts
 
Free community with deep roots
Free community with deep rootsFree community with deep roots
Free community with deep roots
 
Modern software development anti patterns (OSCON 2012)
Modern software development anti patterns (OSCON 2012)Modern software development anti patterns (OSCON 2012)
Modern software development anti patterns (OSCON 2012)
 
Modern Java Concurrency (OSCON 2012)
Modern Java Concurrency (OSCON 2012)Modern Java Concurrency (OSCON 2012)
Modern Java Concurrency (OSCON 2012)
 
Introduction to Java 7 (OSCON 2012)
Introduction to Java 7 (OSCON 2012)Introduction to Java 7 (OSCON 2012)
Introduction to Java 7 (OSCON 2012)
 
Polyglot and Functional Programming (OSCON 2012)
Polyglot and Functional Programming (OSCON 2012)Polyglot and Functional Programming (OSCON 2012)
Polyglot and Functional Programming (OSCON 2012)
 
Paperwork, Politics and Pain - Our year in the JCP (FOSDEM 2012)
Paperwork, Politics and Pain - Our year in the JCP (FOSDEM 2012)Paperwork, Politics and Pain - Our year in the JCP (FOSDEM 2012)
Paperwork, Politics and Pain - Our year in the JCP (FOSDEM 2012)
 
Modern Java Concurrency (Devoxx Nov/2011)
Modern Java Concurrency (Devoxx Nov/2011)Modern Java Concurrency (Devoxx Nov/2011)
Modern Java Concurrency (Devoxx Nov/2011)
 
Polyglot and functional (Devoxx Nov/2011)
Polyglot and functional (Devoxx Nov/2011)Polyglot and functional (Devoxx Nov/2011)
Polyglot and functional (Devoxx Nov/2011)
 
Introduction to Java 7 (Devoxx Nov/2011)
Introduction to Java 7 (Devoxx Nov/2011)Introduction to Java 7 (Devoxx Nov/2011)
Introduction to Java 7 (Devoxx Nov/2011)
 
Back to the future with Java 7 (Geekout June/2011)
Back to the future with Java 7 (Geekout June/2011)Back to the future with Java 7 (Geekout June/2011)
Back to the future with Java 7 (Geekout June/2011)
 
Java 7 - short intro to NIO.2
Java 7 - short intro to NIO.2Java 7 - short intro to NIO.2
Java 7 - short intro to NIO.2
 

Recently uploaded

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 

Recently uploaded (20)

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 

How to open source a project at Mega Corp (Geecon - May/2011)

  • 1. How to open source internal software in a Mega-Corp Martijn Verburg (@karianna) (Full presentation slides will be made available on slideshare) Slide Design http://www.kerrykenneally.com Friday, 13 May 2011 1
  • 4. Introduction – Speaker • I’m a Java and open source software consultant mentor. – Helps banks leverage those technologies for fun and profit! • I work on several open source projects – Recently Ikasan EIP – http://www.ikasan.org & PCGen - http://pcgen.sf.net • I Co-lead the London JUG and moderate on the Javaranch • Writing “The Well-Grounded Java Developer” for Manning with Ben Evans. – Shameless plug! • Twitter: @karianna Friday, 13 May 2011 4
  • 5. Introduction – That’s no Moon.... We are not going to get through all of this! Friday, 13 May 2011 5
  • 6. Introduction – Slides != Live Presentation • The slides have a *lot* of material – But’s that’s so you can read while I tell you bed time stories – Well actually it’s for the enterprise folks who need to convince their companies • I’ll be talking lots about use cases, in particular experiences with: – Using open source software in investment banks – Producing open source software from investment banks – Some controversial open source projects out there today • For those folks seeing this on slideshare – See my Hollywood good looks and hear my sultry voice on Parleys.com 6 Friday, 13 May 2011 6
  • 7. Introduction – Areas to cover 1. Getting Started Part I 2. Convincing the Stakeholders 3. Getting Started Part II 4. Technical Infrastructure 5. Social and Political infrastructure 6. Money 7. Communications 8. Packaging, Releasing and Daily Development 9. Managing Volunteers 10. Licensing, Patents and Copyright Friday, 13 May 2011 7
  • 8. Getting Started Part I - Benefits of open sourcing £€$ Friday, 13 May 2011 8
  • 9. Getting Started Part I - Benefits of open sourcing Image courtesy of Catan HD iPhone Friday, 13 May 2011 9
  • 10. Getting Started Part I - Benefits of open sourcing Public Relations I couldn’t find a cool image <shrug> Friday, 13 May 2011 10
  • 11. Getting Started Part I - Benefits of open source • ‘10,000 eyes’ on the technical content • Explaining/Documenting for outsiders improves quality • More users == more rigorous testing! • Participation in a vibrant community – It’s fun again – Developing software is a social activity Friday, 13 May 2011 11
  • 12. Getting Started Part I - Benefits of open source Cultural Change Banks are often held back by their IT Are startups? (But surely banks have more resources!) The rest of the world is doing: mobile, cloud, agile, lean, dynamic languages, continuous delivery Friday, 13 May 2011 12
  • 13. Getting Started Part I – Choosing an appropriate project • Key indicators that can help you identify the right project: – Plumbing – Not a core competency – No intrinsic IP value • Ikasan EIP – The Middleware platform – Middleware is plumbing – Software development is not a core competency of the bank – Software had no IP value (that the bank wanted to trade on) Friday, 13 May 2011 13
  • 14. Convincing the Stakeholders – Who are they? Friday, 13 May 2011 14
  • 15. Convincing the Stakeholders – Legal • Legal: Questions 1. What license to use? 2. What liability do we have? 3. Uh oh, we don’t even have a policy on using open source, what now? • Legal: Answers 1. That depends! There are plenty of business/corporate friendly licenses. • There is legal precedence in this area 2. That depends on the ‘law of the land’ • Typically none, unless it’s overruled by common law 3. Then you are vulnerable to lawsuits • Get a policy in place immediately! Friday, 13 May 2011 15
  • 16. Convincing the Stakeholders – Information Security • Information Security: Questions 1. Will our data be in the public domain? 2. Are any of our systems made vulnerable? 3. How is authentication/authorisation applied? 4. Open source must surely mean less secure? • Information Security: Answers 1. Not unless your staff upload sensitive information (same as now) 2. Not if you host the project externally as recommended 3. According to project policy • Typically everything is reviewed before being committed 4. Fallacy • Think Linux vs. MS Windows • “Security through obscurity is not security at all” Friday, 13 May 2011 16
  • 17. Convincing the Stakeholders – Infrastructure • Infrastructure: Questions 1. What access do internal staff require? • Infrastructure: Answers 1. Typically they need secure access to external hosting providers, e.g.: • HTTPS • SCP • SSH • Plus HTTP access to some social/communication sites Friday, 13 May 2011 17
  • 18. Convincing the Stakeholders – IT Management • Head of IT: Questions 1. Does it affect productivity? 2. Does this mean free help? 3. What’s the cost? 4. Quality Control? • Head of IT: Answers 1. Initially yes! But then community takes over 2. Yes! But you get out what you put in 3. Legal is often the biggest up front cost • On the IT side, it can be set-up for <£1000 + X person hours 4. Is typically tighter due to public scrutiny • If project is run in recommended way Friday, 13 May 2011 18
  • 19. Convincing the Stakeholders – The business • Business: Questions 1. What’s in it for us? 2. Won’t we lose control of what we need? • Business: Answers 1. Faster delivery at a higher quality • Due to more users • Due to more technical eyes looking for issues 2. Product can still be influenced by staff • Can be forked if necessary Friday, 13 May 2011 19
  • 20. Convincing the Stakeholders – The development team • Development Team: Questions 1. But outsiders wouldn’t understand our code? 2. We’re worried about our existing quality? 3. How do we run all of this? • Development Team: Answers 1. Then you need to improve the code/documentation 2. You’re no better or worse than the other 200,000+ open source projects, don’t worry 3. That’s what the other 40+ slides will cover! • But seriously, read Karl Fogel’s seminal work on this topic producingoss.com Friday, 13 May 2011 20
  • 21. Getting Started Part II – Project name and Mission Statement • Project name should be: – Catchy and/or relative to the project – Easy to remember – Doesn't impose on trademarks / is unique – Has major domains available (.com, .net, .org) • Mission Statement should: – Define the major goal of your project – Be concrete, limiting and short! Friday, 13 May 2011 21
  • 22. Getting Started Part II – 60 seconds to reel them In Friday, 13 May 2011 22
  • 23. Getting Started Part II – 60 seconds to reel them In • Declare FOSS Status – Make it abundantly clear that your project is Free Software and/or Open Source – Choose your license carefully! • Features and Requirements Listing – Clarifies your mission statement scope – Allow users to understand immediately what they need to run your software • Development Status – Future Roadmap and Milestones – What stage is your project at (Alpha, Beta, Mature)? Friday, 13 May 2011 23
  • 24. Getting Started Part II – Make it available • Downloads – Both Source and binary downloads should be available • Version Control – Vital to have source control in place early on – Anonymous access a must • Issue Tracker – A place to record issues is a mandatory requirement • Canned Hosting – SourceForge – Google Code Friday, 13 May 2011 24
  • 25. Getting Started Part II – Make it accessible Friday, 13 May 2011 25
  • 26. Getting Started Part II – Make it accessible • Public Communications Channel – A Mailing List/Forum should be opened immediately • Developer Guidelines – How to communicate with other developers – How to provide patches – How development is done (Benevolent Dictatorship, democracy etc) – Practice conspicuous code reviews and make them public Friday, 13 May 2011 26
  • 27. Getting Started Part II – Documentation • Biggest complaint about most open source projects is poor documentation • Clear “How To” for installation, otherwise people will give up • Have a FAQ and “Common Task” tutorials • Label the areas where the documentation is known to be incomplete • Should be available online and offline • Screenshots and sample output, a picture tells a thousand words Friday, 13 May 2011 27
  • 28. Getting Started Part II – Setting the tone • Open source projects are very social, failures tend to occur due to social rather than technical reasons • Avoid private discussions! Make it a project policy • Nip rudeness in the bud • Kathy Sierra's “Creating Passionate Users” – Javaranch’s “Be Nice” policy • Be sensitive if opening a formerly closed project Friday, 13 May 2011 28
  • 29. Break!!! The remaining slides aspects of running a successful project in detail. Take a deep breath 29 Friday, 13 May 2011 29
  • 30. Technical Infrastructure – Mailing Lists/Forums • Choose one that the community prefers • Mailing list manager (Mailman, Ezmlm, Y! groups, Google groups etc) • To avoid SPAM: – Only allow posts from subscribers and moderate their first message – Run messages through a SPAM scrubber • The great “reply all” debate – http://www.unicom.com/pw/reply-to-harmful.html – http://www.metasystema.net/essays/reply-to.mhtml • Archive! Friday, 13 May 2011 30
  • 31. Technical Infrastructure – Version Control • Vital for a distributed group • Choose a popular/easy to use one • Version everything • Make it publicly browsable • Enforce commit comments, preferably with a issue number • Don't be afraid of branches, don't be afraid to cut them off either Friday, 13 May 2011 31
  • 32. Technical Infrastructure – Issue Tracking • Far, far more important than most people realise • Choose one that is easy for users to use, encourage good reporting • Choose a lifecycle and have the meta data clearly organised • Good systems can automatically show milestones and roadmaps • Triage! • Be polite with user reports Friday, 13 May 2011 32
  • 33. Technical Infrastructure – IRC and social networking • IRC – Great for instant communication – Start with one channel – Discuss archiving policy – Encourage posting of large data to 'paste' sites, e.g. http://pastebin.ca • Social Networking (Facebook, Twitter, RSS etc) – Can be a good idea to set these up – Don't over use them / flood them with messages – Best for one way communication Friday, 13 May 2011 33
  • 34. Technical Infrastructure – Website and Wiki • Website – Gateway for your project – Make it professional! • Wiki – Very important for community generated knowledge – Set editorial standards early, especially navigation and tagging – Use common wiki software, not something obscure – Design discussions and architecture documents can be centralised here Friday, 13 May 2011 34
  • 35. Social And Political Infrastructure – Structure • Benevolent Dictator – Really more of a 'community-approved arbitrator' or 'judge‘ • Council/Board of Directors – As projects mature and grow, boards or councils tend to form – Most decisions are consensus (polls), with formal voting if required – Decision needs to be made on who votes – Sometimes allow vetoes Friday, 13 May 2011 35
  • 36. Money – Types of involvement • Sharing costs, e.g. http://koha.org • Software can be used to support hardware sales • Software can be used to undermine a competitor • Dual licensing and premium modules, e.g. Oracle‘s MySQL • Donations Friday, 13 May 2011 36
  • 37. Money – Don't be a faceless company • Hire team members for the long term • Appear as individuals, not a single corporate entity • Be open about your motivations • Money can't buy you love, treat project members as equal Friday, 13 May 2011 37
  • 38. Money – Funding non-programming activities • Quality Assurance (i.e. Professional Testing) • Legal Advice and Protection • Documentation and Usability enhancements • Providing Hosting/Bandwidth • Marketing and PR – Remember that you are being watched – Don't bash competing products Friday, 13 May 2011 38
  • 39. Communications – You are what you write • You are judged on your communication – Good communicators achieve more than good programmers • Structure And Formatting – Come up with a convention for the project – Plain text, 80 character wide emails are preferred – Spelling and Grammar are important, don't neglect them! Friday, 13 May 2011 39
  • 40. Communications – Content and tone • Remember that there are usually many more readers than writers • Avoid hyperbole • Over time terseness will creep in, this is OK – As long as it remains polite! • Edit before you send • Don’t assume English is their first language Friday, 13 May 2011 40
  • 41. Communications – Recognising rudeness • When you respond, try to respond properly and with full effort • Remember there are no visual cues • Try to use real names • Trim replies and disclaimers • Rude people waste other people's valuable time – Be wary of the vocal minority Friday, 13 May 2011 41
  • 42. Communications – Soft topics last longer • It’s always the non-technical discussions that last the longest • Don’t waste time on the "Bike Shed“ • Avoid Holy wars, especially over: – Programming languages – Licenses – Reply-to munging Friday, 13 May 2011 42
  • 43. Communications – Handling growth • Number of Inexperienced users rises rapidly • Number of experienced users rise much more slowly • Good publicly available documentation is vital • Produce specialised forums/lists (Javaranch) • Make archives available • Keep conversations out of the issue tracker Friday, 13 May 2011 43
  • 44. Communications – Publicity • You Website front page is seen by more people than any other part of the project – Important news should be posted there • Also have a "News" or "Press Releases" area of the web site • If your project has an RSS feed utilise that as well • If the announcement is about a new release of the software, then update your project's entry on http://www.freshmeat.net/ Friday, 13 May 2011 44
  • 45. Packaging, Releasing and Daily Development – Release Numbering • Serves as a guide to end users whether to take a new release • major.minor.trivial designation often used – Have a clear definition of what bumps a major, minor, trivial release – Major breaks backwards compatibility • Use Alpha, Beta and RC as appropriate – Google's idea of Beta should not be followed! Friday, 13 May 2011 45
  • 46. Packaging, Releasing and Daily Development – Release Branches • A Branch should be created for each Major/Minor release – e.g. 1.0.x and 1.1.x • Different strategies on how to release: – Release Owner - Trusted team member empowered to make the call – Vote changes in - Can get endless • Generally best to have a rough roadmap first • Normal to fix vital bugs in several lines & release simultaneously – Decide when you want to 'End Of Life' a line Friday, 13 May 2011 46
  • 47. Packaging, Releasing and Daily Development – Packaging • Standards are tar/zip for Linux/UNIX and zip for windows • Should include Files: – README – INSTALL – LICENSE – CHANGES – MEMBERS Friday, 13 May 2011 47
  • 48. Packaging, Releasing and Daily Development – Packaging • Follow consistent way for users to compile and install the software – e.g. (Java) mvn clean install – e.g. (C++) $ ./configure $ make # make install • Make std binaries e.g. msi/exe for windows and appropriate packages for various Linux/UNIX distros • Use MD5/SHA signing so people know that packages have not been tampered with • Make Betas, RCs readily available and make it easy to test side by side with a stable release Friday, 13 May 2011 48
  • 49. Packaging, Releasing and Daily Development – Daily Development • Encourage discrete check-ins, so they can be easily rolled back – e.g. Don't mix several items in one check-in • Enforce commit comments – Try to enforce traceability to an issue number • Enforce Unit Tests/Integration Tests with commits – It’s important to avoid regressions – Continuous Integration is vital Friday, 13 May 2011 49
  • 50. Managing Volunteers – Getting the most out of volunteers • Volunteers often start with the project due to a technical reason – e.g. Fixing a minor bug • Will stay for many, many different reasons • You need to ascertain what makes each individual tick – Helps you pick up on disruptive members early Friday, 13 May 2011 50
  • 51. Managing Volunteers – Delegation • Is a public declaration of trust • Draws people further into the project • Need to give people a graceful out • Differentiate asking someone to investigate something vs. asking them to take ownership – Don't blindly assign! • Follow up after you delegate! • Notice which people are interested in a particular area Friday, 13 May 2011 51
  • 52. Managing Volunteers – Praise and Criticism • Two sides of the same 'attention' coin • Praise is often the only payment volunteers get – Use it wisely, don't undervalue it • Criticism must be delivered dispassionately with detail – "It was sloppy.“ vs. – "Could you review that and apply std project guideline X please?" Friday, 13 May 2011 52
  • 53. Managing Volunteers – Prevent Territoriality • Single point of failure. • Diminishes community. • Common to avoid author tags in code, preference to use "X Team“. Friday, 13 May 2011 53
  • 54. Managing Volunteers – Every User Is A Potential Volunteer • Always maximise contact with a new user who has reported something. • Try to get user involved in the fix. • Remember to be patient with new volunteers, educate them! Friday, 13 May 2011 54
  • 55. Managing Volunteers – Share management tasks as well as technical tasks • Often management tasks are as time consuming as technical ones – e.g. Board of Directors on PCGen consist of management 'Team Leads‘. • Common roles are: – Patch Manager – Release Manager – Translation Manager – Documentation/FAQ Manager – Issue Manager Friday, 13 May 2011 55
  • 56. Managing Volunteers – Transitions • Volunteers won't stay in same role forever – RL == 'Real Life' often gets in the way! • Time management is a vital skill – Encourage new volunteers to start with a small commitment – Monitor signs of tiredness – Don’t expect unpaid volunteers to “Do it right now” • Very occasionally a volunteer is inappropriate for a position – Get private project consensus before privately discussing a transition to a new role Friday, 13 May 2011 56
  • 57. Managing Volunteers – Committers • Committers are seen as the core of a project team – They typically form quality control – They typically have a 'vote‘ – Choose them on their judgement more than anything else! • Can use partial commit access to entice people in • Avoid mystery committers – They should be accessible to the rest of the team Friday, 13 May 2011 57
  • 58. Managing Volunteers – Forks • Try to avoid forks where possible – Forks aren't necessarily a bad thing • You should act dispassionately and not engage in blocking behaviour • Almost all forks fail and/or merge back in with the original project Friday, 13 May 2011 58
  • 59. Licenses, Copyrights and Patents – Terminology • “Free Software” (http://www.fsf.org/) - Tends to be used by those who have the philosophical belief • “Open Source” (http://www.opensource.org/) - Tends to be used by those without • List of licenses maintained at http://www.gnu.org/licenses/license-list.html Friday, 13 May 2011 59
  • 60. Licenses, Copyrights and Patents – Aspects of licenses • Compatibility with proprietary licenses – Apache, MIT & Others • Compatibility with other free licenses – Several licenses automatically are compatible with each other – GPL can be tricky on this aspect • Enforcement of crediting – Whether you must provide notice or not • Protection of trademark – Must have written permission to derive from original Friday, 13 May 2011 60
  • 61. Licenses, Copyrights and Patents – License choice • MIT/X Window style license is recommended for a “Do with this what you want” approach • GPL style license is recommended for a “Do with this what you want except put on restrictions“ approach – The LGPL loosens some of those restrictions • Apache and Eclipse licenses is seen as business friendly • Apply license text/snippet to your source code, most licenses have a template for this Friday, 13 May 2011 61
  • 62. Licenses, Copyrights and Patents – Copyright assignment and ownership • Dealing with contributors copyright and ownership: – Do nothing (Not recommended) – Contributor License Agreements - Electronic form is sufficient – Transfer of Copyright - Total transfer of copyright – http://www.openrightsgroup.org • Dual Licensing – Gaining popularity with corporations – Typically allows 'Free' license to non profits, academics and other open source users – Can be difficult to manage community with dual licensing Friday, 13 May 2011 62
  • 63. Licenses, Copyrights and Patents – Patents • Very harmful to software development • Often owned by corporations with deep pockets – Open Source project is forced to stop • You can defensively patent to make sure that your project doesn't get blocked Friday, 13 May 2011 63
  • 64. Thanks for Listening! http://www.java7developer.com 64 Friday, 13 May 2011 64