JavaOne – Development Horror Stories

“Development Horror Stories”

Speaker: Roberto Cortez & Oleg Shelajev

For more blog posts from JavaOne, see the table of contents


My favorite stories

  • Missing a space caused deleting way too much
  • Construction workers unplugged
  • Email look of invalid emails – crashed server a 5-6 million emails
  • Not blaming vs not holding accountable vs not improving
  • Backup not following sym links
  • QA and Prod on same box means…
  • Routed all transactions to one place – “Don’t let developers touch production”
  • Loading a table delete all other rows
  • Delete IE 8 and 7 to use IE 6. Can’t debug because too much JavaScript for dev console and GWT can’t handle IE 6. Problem was JavaScript closing the right click option on resize
  • Dev machine was the only place the code was stored. Decompiling is not the same
  • == vs .equals() caused error under one db but not another
  • Backup in different file system format and all the files were gone
  • Website turned into Chinese because Tomcat using default password

“We are all laughing here, but every story has a teaching moment”

My take: They said this was meant to be a BOF. And they ran it as one wich was good. It was a nice final session of the day. It read like “confessions of developers”

JavaOne – Escaping Developers’ Nightmares

“Escaping Developers’ Nightmares”

Speaker: Rustam Mehmandarov

For more blog posts from JavaOne, see the table of contents


Put together code tools and cs to make developer’s paradise.

90s – waterfall, java in notepad/emacs/vim, visual sourcesafe, cvs, javac at command line, MS Access in a shared network folder for defect tracking

now it is rainbows and unicorns – git, real issues tracking

Tweet from here:

YOU ARE IN A LEGACY CODEBASE

> RUN TESTS
YOU HAVE NO TESTS

> READ SPEC
YOU HAVE NO SPEC

> WRITE FIX
YOU ARE EATEN BY AN ELDER CODE HACK.

Continuous integration/deployment/delivery sold as unicorn or rocketship that will takes to stars.

Code quality

  • Code standard – do you have a coding standard? Do you follow it?
  • Encodign – If coding in langage other than English, do you have encoding standard? Is checking automated?
  • MIME Type – Do you have standard?
  • Code Reviews – Do you do? How know code does what supposed to?

Development Tools

  • Code Versioning – “Git or even SVN”. Do you have a branching and tagging strategy?
  • Complexity, Testing
  • Branching
  • Static code analysis
  • Plugins – ex: Sonar
  • IDEs, checks at comits, integrates with unit testing and sonarqube)
  • build tool – Jenkins, TeamCity, Bamboo, etc and Maven, Gradle, etc
  • Unit, integration, UI, end to end tests

Third party libraries

  • Do you track your third party libraries
  • Do you have known issues/vulnerablities
  • Are they updated? Are they maintained? Are they compatible with each other?
  • Are the licenses appropriate
  • Are they in Apache Attic? Where projects go to die
  • Google OSS Fuzz test

Packaging > Delivery > Deploy

  • Automated deployment?
  • What environments can you deploy to?
  • Are enviornment similar
  • Same process to deploy to each environment
  • Do QA and Prod use separate physical hardware
  • How easy to rebuild from a script
  • Do you have monitoring in all environments

Architecture

  • Do you support continous deploy? Microservices? Load balancing?
  • Code package structure can hurt or help you

Helpful Maven plugins
Assembly, versions, depedency, enforcer surefire, failsafe, sonar, findbugs, pmd

Documentation

  • Wiki
  • Avoid multiple documentation systems

Collaboration

  • Issue tracking
  • Wiki
  • Chat

Blog post on bash ools:
https://mehmandarov.com/cmd-tools-for-developers/

My take: Fun comparison. He even drew a unicorn with rainbow hair and a rainbow tail for the “rainbows and unicorns” slide. A lot of things were covered. And if you know you are supposed to do them, definitely a good review/checklist. There were a few stories. I was hoping for more stories or more on how to sell the need for such tools. [Someone asked about how to sell and he said “you just have to explain it and show the value.” I thought how would be in the talk”]

JavaOne – Nurturing Online Communities

“Nurturing Online Communities”

Speaker: Simon Maple

For more blog posts from JavaOne, see the table of contents


Runs VJUG (virtual java user group)

Events

  • Talks
  • Book club – then talk to author of book online when done
  • Forum
  • IRC chat – mainly used during sessions
  • Conference – 24 hour conference Oct 25th – https://virtualjug.com/vjug24/ – borrow other’s physical meetups by holding viewing parties for vgug24

Metrics

  • Page views
  • user counts

Benefits

  • Easier to find speakers – no travel so speaker can say yes more easily
  • Diversity – anyone on planet can join. Also, talking to a handle so not influenced by race/gender
  • Can view session while working from office
  • Can view recording after the fact – have all 4 years of content. Recording important for time zones. Find 5pm UK time to be best
  • The core center of the community is online rather than in a place
  • No cost for venue, food, drink

Negatives

  • Speaker interaction not as detailed
  • Easier to accidentally offend someone/be disrespectful
  • Hard to recover from assholes in the community
  • Speaker can’t see audience
  • Lag on questions as people type

Best practices

  • Youtube and Google Hangout make recording sessions trivial
  • Ensure same experience regardless of device
  • Google analytics for website and youtube analytics for videos
  • Need to invest time (vs money)
  • Getting a company involved helps. Company trades employee time for sponsorship
  • Have a team of people to help run
  • Want a self managing community
  • Twitter worked best of all social media attempts
  • People attracted by content and/or a known speaker
  • Meetup doesn’t like virtual events, but ok because big

Other notes

  • 100-200 people watch live and 1000-2000 within a week. Benefits of live are IRC and questions.
  • members from 120 countries
  • 500-700 people signed up in first month
  • Looking at replacing IRC with Slack because more people use it. Wanted to lower registration bar so can be anonymous.

My take: Good discussion of online specific beneits and constraints