Friday, November 21st


8:00 AM 

Breakfast


9:00 AM

Welcome - Jesse Hill

9:10 AM

Building a shared understanding of project phases and their dynamic - Mike Marsiglia and Shawn Crowley


9:30 - 10:10 AM 

Atomic Brand & Website Redesign: Goals, Process, & Outcomes - Brittany Hunter, Julia Jamieson, and Tabitha Blanski

At some point before Atomic Con, Atomic will launch its redesigned website, along with a more fully realized visual brand identity standard for the company. In this presentation Brittany & Julia will share the design process that the team used to come up with the new visual standards, based on the brand standards that the marketing team produced and presented earlier. We'll talk about what our goals were for the redesign, what we learned along the way, and share what every Atom can do to uphold the new visual design standards.


10:20 - 10:50 AM

Project Management on Steroids: Lessons from leading the DFS SCAN 3 project - Jason Porritt

A dozen product managers. Changing team size. Hard deadlines for business-critical features. Tight budget. Tons of ideas. One too many pee jokes. The SCAN 3 project has been hugely challenging on many fronts, project management included. The challenges have pushed us to evolve our burn chart, pay close attention to communication practices, and work very, very hard at keeping everything organized.

I'll walk through some of the challenges the team faced and what we did in response, hoping to help tune our collective intuition for project management process improvement.


11:00 - 11:30 AM

Atomic SCRUM - Micah Alles

SCRUM is an Agile project management process designed to help a development team achieve reliable, sustainable throughput. Compared to traditional XP, scrum is heavier wrt PM process rituals. However, some of these rituals provide a regular point to communicate with our client, reset expectations, raise issues, and re-evaluate the current state of the project.

In this talk I'll describe my experience implementing tailored versions of SCRUM on two very different projects. One, a project for Deluxe, a large, old company in the financial sector with a huge IT division. The other a startup with less than 10 employees and a team of 3 makers.


11:40 AM - 12:10 PM

AOA2 Presents: 30 Years of the Web

Six people from the Ann Arbor office will give six Ignite talks each about a different 5 year span of the Web. We are lucky to have collectively had front-row seats for the entire life of the Web, so these talks will include not just the high and low points for Web developers, but also the impact the Web had on the world and on us personally.


12:20 - 1:10 PM

Lunch

1:15 PM

Company Photo


1:30 - 2:30 PM

Software Development for the Rest of Us - Anne Marsan - Dogwood A

Atomic Object has 16 employees who do not write code on a regular basis (some of us may have written code at one time, but we don't anymore). This session is for all of us. While we aren't programmers, we can still create dynamic "programs" with a computer using Scratch. Get a feel for what our developer colleagues are up to all day by pairing up with another non-technical Atom and creating a computer game. Laptops with Internet connection are required (it's no fun watching someone else do all the creating!).

 

Software Craftsmanship Conversations - David Crosby and Micah Alles - Dogwood B

David Crosby (AKA Da Croz) and Micah Alles invite any Atom to sit down with them and have conversations about software craftsmanship. Ideas for topics include unit and system testing, automation, code organization and design, refactoring, languages, or other tools.

Bring your questions or conversation topics to the session. They'll be collected on index cards at the beginning of and during the talk. If your card is chosen, you'll come up and sit on stage with Croz and Micah to discuss your question or topic. Cards will be chosen to optimize for an interesting mix of topics.

Croz was Atomic Object's first full-time developer hire in 2001. He's been one of the most important and influential leaders of Atomic's development practices and principles since Atomic was founded. He's extremely friendly - so don't be afraid to come up, sit down, and chat with him.

Micah started with Atomic Object as an intern in 2002 and recently celebrated his 10 year anniversary as a full-time Atom. Most of what Micah has learned about software craftsmanship was from Croz.

Micah and Croz have worked together for over a dozen clients and have had hundreds of conversations (and arguments) about software development over the past 10 years.


2:50 - 3:20 PM

Is Browser First the future of system testing? - Al Scott - Dogwood A

Current best practice for developing web applications is to drive them from system tests that execute a scenario in a web browser. In general this has been done using frameworks tied in to a server side environment (server-first testing), like Capybara for Ruby or Selenium for Java. While these frameworks are very powerful, they were originally designed with traditional web applications that do page loads between each action in mind. With the paradigm of web apps shifting to single page JavaScript applications which load data and change state asynchronously, these frameworks often become pain points and require elaborate hacks like timers or hidden DOM elements to work. In recognition of this, newer JavaScript frameworks (specifically EmberJS and AngularJS) have introduced their own testing frameworks which integrate directly in the browser to the application framework to alleviate many of these pains (browser-first testing).

This talk will explore these two testing framework approaches and the relative advantages of each. My hypothesis is that in this era of rich JavaScript apps backed by HTTP APIs, browser-first testing will consistently be a less painful approach to full stack testing of an application.

 

RDP for poly-skilled teams - Drew Colthorp - Dogwood B

Atomic started as a development shop that specialized in writing code and testing it. Over time, we grew to offer project management, design, and more. This talk focuses on engagement at the earliest point in a product's life: conceptual design and product definition. I’ll get into:

  • The purpose and structure of RDP. 
  • A survey of techniques for all three phases.
  • The roles of designers, developers, and project leads in the process.
  • How to communicate the value generated to your customer.
  • Transitioning into implementation.

3:40 - 4:10 PM

Sketchnotes: Harnessing the Messy Mind - Eric Shull - Dogwood A

If drawing meaningless doodles while listening to a presentation can improve how much you remember, think how much doodles *about* the presentation can help you remember! I'll show you some simple tricks for taking visual notes of meetings, presentations, phone calls, and just about anything else.

 

Organizing and structuring data in Clojure - Chris Farber - Dogwood B

While not unique to Clojure, I find that Clojure's design exacerbates the general problem of organizing and contextually understanding the flow of data through your application. I'd like to talk about my experience maintaining Clojure apps written by others, and then look at a way to ameliorate these problems by using Prismatic's Schema library.


4:30 - 5:00 PM

WTF is Atomic Spin? You know, the real atomic spin! - Matt Fletcher - Dogwood A

Some of you may have wondered why our blog is named “Atomic Spin.” Spin? Isn’t that a PR term with a negative connotation? Yeah, but that’s not why the blog is named as such - the name is a play off the Atomic theme. Spin is a quantum mechanical property of the fundamental particles.

Wait. Quantum mechanics? What’s that?

Join me in this talk as we discuss spin, as well as other aspects of the wacky, wild, unintuitive world of quantum physics that we all live in:

  • How light can be expressed as a particle
  • How matter can be expressed as a wave
  • The ultraviolet catastrophe
  • How nuclear fusion in stars works (hint: it’s not two protons smashing into each other)
  • Terms you may hear from time to time, like quantum tunneling and entanglement
  • That weird cat we hear about sometimes that dies half the time and lives the other half the time

Richard Feynman, one of quantum physics’s most prominent scholars, supposedly said "I think I can safely say that nobody understands quantum mechanics.” I certainly don’t, but I’ll do my damnedest to make this a fun and informative talk!

 

Design tools for IOS development - Mike Woelmer - Dogwood B

In this talk, I will go over the design tools available in Xcode for building interfaces for iPhone and iPad. I will also cover Auto Layout -- the layout engine used to position and size visual elements. I will also show how to design a custom control using Paint Code. And finally we will take a brief look at the new size classes introduced in iOS 8.


6:00 - 7:00 PM

Dinner


7:00 - 8:00 PM

Hadron Session - Dogwood A


Saturday, November 22nd


8:00 AM

Breakfast


9:00 - 9:40 AM

Writing to be Understood - Lisa Tjapkes - Dogwood A

This talk with help writers ask themselves the right questions before they start drafting a piece of writing (be it an email, report, blog post, etc.), organize their thoughts, and consider their audience. It will also present tips for clearer writing and give a few grammar reminders.

 

Practical Abstraction - Drew Colthorp - Dogwood B

Sustaining productivity in a software project requires more than clean syntax and efficient process. It requires clear ideas.

Well-abstracted software is flexible in ways its business domain can take advantage of. It enables a sustained, or even accelerated, development pace over the course of a project. Poorly abstracted software tends to calcify, with each new feature being more difficult to the add than the previous.

Unfortunately, there aren't many tools to directly guide effective abstraction. Refactoring and code smells are too code-centric. Processes such as Domain-Driven Development focus too narrowly on business domain modeling, which is important, but too focused.

In this talk, Drew will attempt to describe how many of the best developers already abstract in software projects. The goal is to provide a vocabulary and framework to facilitate effective discussions about abstraction decisions with colleagues and team members.


10:00 - 10:40 AM

Stage Fright: Don't Be Phased By Compilers  - Scott Vokes - Dogwood A

Compilers may sound like deep magic, but there are many practical tools behind the mystique. This introductory talk will focus on "front-end" skills such as parsing, as well as compiling with continuations, data scrubbing, and a bit of static analysis. No matter what platforms and languages you use, these are widely applicable to day to day problems that may not seem anything like "compilers".

You'll leave with some new techniques for managing structured data of any kind, and with enough context to recognize when others will be immediately useful in your projects. Even though you may never write a single line of assembly, compilers’ building blocks can still be a valuable part of your toolkit.

 

The Past Is A Foreign Country: Handling Dependency Drift - Will Pleasant-Ryan - Dogwood B

Guess what - you're inheriting an old project! You get to spend the next day (or two or three) getting all the tests running again! And did I mention that half your dependent libraries are no longer compatible with your current environment?

Dependency drift is a major drag, but how can we solve this complex problem? More programming, of course! We can define our dependencies and our development environment using code!

Two tools, Vagrant and Chef, helped me manage this problem on a recent project. I will be describing how to effectively develop a web app using these tools. I will also go into some of my future plans for preserving development environments.


11:00 - 11:30 AM

Visual Design Isn't (just) about Making Things Look Pretty - Julia Jamieson - Dogwood A

This talk will explore the purpose of using detailed visual design as validation for rough concepts, how polished visual design affects the credibility of a product, and how to learn to see details that will help improve design/dev integration.

 

Close Enough - a talk about approximation based testing - Shawn Anderson - Dogwood B

Writing systems tests can be daunting and leave you fixing and updating brittle test instead of adding those value-rich features that your customer demands. In this talk we'll look at how to write flexible tests that rely on approximately correct answers and highlight the value of having a record and playback mechanism for testing with real data. We'll look at examples in C# and in Ruby.


11:50 AM - 12:20 PM

Common Sense Financial Planning (or, how to avoid eating cat food in retirement!) - John Fisher - Dogwood A

Developing a long-term financial plan for retirement investing can be a daunting task. Young professionals often repeat the same questions about saving and investing: When should I pay off debt? How much should I invest? How do I invest? How much do I need to retire? Answering these questions is difficult enough, but the difficulty is compounded by a financial industry that offers an infinite number of financial products and doesn't always have clients' best interests at heart.

The purpose of this talk is to provide actionable "common sense" investing wisdom from an unbiased perspective (as in, I don't sell anything!). Topics covered will include budgeting, compound interest, risk, asset allocation, diversification, the effect of costs on investing, safe withdrawal rates in retirement, and keeping things simple. Although billed as "common sense", empirical evidence will be presented alongside each topic. Software tools to help investors implement their plan will be covered. Example portfolios that adhere to the principles discussed (low cost, well diversified, easy to implement) will also be given.

 

Getting Some Bearings in a Sea of DevOps Tools - Mike English - Dogwood B

The DevOps movement has resulted in a huge number of new tools. Some of them are very useful to developers, but which ones? And how do they fit together? This talk will cover the basics, and help you understand their role in a development and deployment workflow.


12:30 - 1:30 PM

Lunch


1:30 - 2:00 PM

BrewMon - Homebrew Monitoring Assistant - Jordan Schaenzle - Dogwood A

Over the past year I have been working on a side project called BrewMon. BrewMon is a web app that runs on a Raspberry Pi that assists a home brewer in the process of making beer. My talk will describe the device and talk about the technology stack that was used to create it.

 

Thinking in SQL - Mike Swieton - Dogwood B

Typically, people think about SQL as the data store for an application. Tools like ActiveRecord have trained us to think that 1 row == 1 business domain object, but this loses much of the power of SQL. We'll review some SQL queries that demonstrate more relational thinking: intentional cross products, joining a table to itself, and potentially other queries that you don't see every day.


2:45 - 3:15 PM

echo AWK | awk '{print "Learn a little", $1}' - Carl Erickson

You might not, strictly speaking, need AWK to get along in life. But there are times and situations where it sure is handy. Take advantage of working with someone whose first computer was an AT&T 3B1--come to this talk and learn a little AWK. And maybe a few other things.


3:15 - 3:20 PM

Closing Remarks - Jesse Hill