After the top 5 talks I attended at JavaOne here are more !
Managing Open Source Contributions in Large Organizations
This talk was very interesting for companies or organizations that want to use Open Source in some way without ignoring the risks.
After an introduction listing the benefits of contributing to open source, James explained the associated risks :
- Security (evil contributions or information leaks)
- Quality (bad contributions, increased maintenance or showing a bad image)
- Legal (responsibility in case of patent infringing contribution, ownership of a contribution, licenses)
He then explained that there are 3 ways to deal with the issue :
|Do nothing||Devs just contribute without saying it||Easy, Gets it done||Need to stay under the radar, Risks for all parties are ignores||+++++||Most open source code on Github is shared in this manner|
|Join a foundation||Joining an existing open source foundation, with a framework||Everything out of the box (infra, governance), builds trust||Rules can be heavy, Ownership is given to the foundation||+++||Linkedin put Kafka in the Apache Foundation|
|Build tools||Use your own tools to mitigate the main risks associated with the ‘Do nothing’ strategy||Built on top of Github, Keep control, Keeps things easy||Need to develop, test and operate the tools||+||Demo of a tool plugged into Github to enforce a contributor license agreement for anyone pushing a pull request|
The ‘build tools’ strategy looks promising, even if it is not yet widely used !
Java Performance Analysis in Linux with Flame Graphs
This is what a flame graph looks like :
At Netflix, the speaker is a performance engineer, and his job is to build tools to help other teams discover performance issues. This is how they use Flame Graphs :
- Compare 2 flame graphs at different times to see what changed
- Do a canary release and compare the new flame graph before finishing the deployment
- Taking continuous flame graphs on running services helps identify JVM behavior like JIT or GC
- They use different color themes to highlight different things
- They also use them to identify CPU cache misses
By the way, I also thought this was a great example of using an innovative visualization to manage tons of data.
Increasing Code Quality with Gamification
You might be wondering why we should care about gamification ?
- Worldwide 11.2 billion hours are spent playing every week !
- People love to play because it makes them feel awesome
- Games are good teachers
- At work we are the ones who need to make others successful
- But only 32% of workers are engaged in their work !
Games rely on 4 main dynamics :
- Competition (be very careful of closed economics which can be very bad for teams)
- Peer pressure (Public stats push teams and individual to conform to the norm)
- Progression (regular recognition of new skills is motivating)
- Rewards (Badges, Level ups, Monkey Money, real money …)
He went on to demonstrate two games that are based on Jenkins and Sonar that aim at better code quality :
- One mobile app developed during a 24h Hackathon at CGI which might be open sourced at some point
- Another one called ‘Dev Cube’ created at an university, where you get to decorate you virtual cubicle
At the end of the talk, he gave the following recommendations :
- Understand the needs of all to respond to everyone’s personal goals
- Don’t assign things to do, that’s not fun, give rewards instead
- Keep managers out of the picture
- To keep it going, you need regular improvements, special events and new rules
- KISS !
Playing at work might not be unproductive in the end !