More than a few days late, but here are my notes from day 2 of Atlassian Summit in San Francisco:
General Session
Tim Buntel discussed how Atlassian develop their products and supporting the social side of development.
- concept – idea is defined, unstructured information and ideas from customers, use Confluence and a Specification Template, Balsamiq to do some UI prototyping, embed Office documents such as PowerPoint
- plan – project manager gathers requirements and shepherds team, turn the requirements into epics and stories in GreenHopper, embed GreenHopper card view into the Confluence page, planning meeting use projector with GreenHopper, use markers and drag and drop into each sprint
- build – developers take requirements and build, build a dashboard with open social gadgets to see relevant information, wallboards to visually see status, Bamboo for continuous builds, Fisheye to view and diff versions of code, new keyboard shortcuts in JIRA to get 15 minutes back every day, Crucible for peer code reviews
- launch – marketing take the product and promote, generate release notes in JIRA, write documentation in Confluence
Michael Knighten then gave an overview of JIRA Studio:
- issue key linking for associations between all of the tools
- integration with Google Apps, attach documents being hosted will mean it is always most up-to-date version
- workflow is the future – broken build will reopen issue, passed review will close issue, etc…
- Bamboo is now included and uses Amazon EC2 for builds
- release cycle to get closer to products
Andrew Rallings then spoke about Customer Support:
- measure support with customer surveys (get 40% response rate, 4 times industry average, 85% have positive experience), internal measurements
- revamped knowledge base, Hercules Support Robot automatically responds to support tickets (friend him in Facebook)
- series of blogs coming on how to do support coming soon and a Support Dashboard portlet
Mike Cannon-Brookes then spoke about 2011 and beyond:
- time zones in JIRA (JRA-9)
- Atlassian Translations, community supported
- distributed version control systems are growing fast, support for Git and Mercurial coming soon, Fisheye has helped people move from CVS to Subversion but will help people move to distributed version control (DVCS) as well, Fisheye to help visualize DVCS coming
- leading edge customers using gadgets to assist managing distributed servers, Universal Application Links to connect applications together two-way
- JIRAnywhere (current code name) JavaScript libraries to allow you to bring JIRA anywhere, such as creating and working with issues in Confluence, hover over links, etc…
Lightning Talks
A series of lightning talks on various topics were held across two different rooms. Here are some thoughts from the ones I attended:
Labels Magic (Anthony Pelosi)
- finding information usually involves searching or scanning pages
- as an author if you know some of the general information, you can bring this to the user, the inflexible approach is trying to put everything under a parent page, organise pages by business unit rather than time and use labels and the contentbylabel macro to track time sensitive information
- add labels to pages and then display related pages with contentbymacro label, then create a combined product page
- works on current space (self) or across spaces
- label conventions require them to be typed correctly, there are automatic label suggestions however
Auditing Your Build and Release (Jim Severino)
- define your process, diagram it, Atlassian think of theirs in loops (internal and continuous integration)
- measure your process because you can’t change what you are not measuring (eg. checking out trunk, browsing version control)
- canary builds or control builds that should always succeed to determine that infrastructure is working
- get multiple build agents
- control configuration with a system like Puppet (open source) and Open VZ to get kernel based virtualisation
- build needs to be a first class part of the product, Atlassian embed build engineers into the teams
- get people involved and talking about the build
- test release artefacts after they are assembled
Information Radiator (Brendan Humphreys)
- these can be low tech like lava lamps or build lights or a scrum story board
- you want fast feedback and to change culture
- big and understood at a glance, should be aesthetically pleasing
- new JIRA wallboard – section of the wallboard cycles between burndown, relative performance and review blockers
- built as a plugin that renders gadgets, just need a wallboard view mode
- choose same bar colour to get gadgets to rotate
- alpha now, works well in Firefox 3.6 currently
Getting Started with Plugin Development (Matt Ryall)
- plugins don’t require Java, can use HTML, CSS and jQuery
- don’t need a JAR file, can just upload an XML descriptor file if simple or you can use the Atlassian Plugin SDK
- easily add a link to company intranet – create a web item plugin, put in an XML template, upload directly into Confluence
- project status macro – user macro with a snippet of HTML, put into an XML template, upload
- expose Cruise Control if it has JSON or a web service interface
Build Atlassian Plugins with Groovy (Paul King)
- overview of Groovy
- scripting plugins to write Groovy inline
- benefit in environments where you can’t restart JIRA / Confluence
Fedex Champions (Seb Rulz)
- every 3 months, 40 pizzas and a few hundred beers
- developers – breaks routine, improves morale, bragging rights
- company – improves morale, fosters creativity, improves products
- idea must relate to Atlassian, starts with a short idea statement (shipping order)
- work overnight, at 3pm keyboards down and present, also present the failures
Mastering JIRA Workflows
Christina Bang spoke on lessons learnt in relation to JIRA workflows. She has a cheat sheet for JIRA workflows on the summit website.
- best feature of JIRA
- Atlassian has workflows for budget approvals, kudos, audit trails for permanent records (such as approval to work on open source projects), any business process to replace a piece of paper
- push process (hand off to someone else) versus pull process (unassigned, issues in waiting eg. support tasks)
- issues always have a state and resolution (done or not done)
- transitions are powerful, they have conditions (restrictions to move through the process), validators (fill out a field before proceeding), post functions (do things automatically)
- schemes give you fine grained control, give you flexibility, be careful with how you name them
- “Unresolved” == field has no value
- default workflow was written with software development in mind, and that Atlassian is an open company (resolved == done and closed == shipped)
- powerful + flexible = complex
- what ever you do (K.I.S.S.) – the fewer steps, people will actually want to use the system
- visualise your workflow, identify things to edit, plan transitions and test by walking a through issues through the workflow
- JIRA workflow plugins – free (JIRA Suite Utilities for comparing number conditions, mandatory field transitions and copy field values, JIRA Toolkit for notifications and time since last comment and JIRA Misc Workflow Extensions for previous status and comment required) and commercial (JIRA Workflow Designer)
- build your workflow in XML or build your own plugins
- number in brackets after transition are useful when wanting to do different conditions
- resolutions are global in JIRA, so you see them for every workflow (there is a JIRA property to hack and hide the resolutions)
- visualise workflows – a couple of plugins, mostly commercial – Workflow Visualization Plugin was recommended (uses Graphviz)
JIRA Studio: Development In The Cloud
Kamal Nabijee from Razorfish spoke on building software in the cloud:
- agile like process – concept, foundation, iterations, stabilization and launch
- user stories are core to all of the deliverables – defines the customer experience and build everything around that story
- 3 week iteratons, cut off to QA and code freeze in the third week
Shibab Hamid then spoke about how they do it at Atlassian when they integrated Google:
- JIRA Studio + Google Apps gives a complete development, collaboration and communication hosted solution
- Google Talk embedded within JIRA Studio
- concept was “tight integration and cool shit”, but the constraints were a distributed team and Google and hosting constraints
Kaizen with Greenhopper: Visualising Agile & Kanban Storywalls
The session I presented to a good crowd. The slides are available in a separate post.