All atomic-powered posts filed in “Professional Development”:
A New AO Library
Atomic Object has always embraced the scholarly side of Computer Science. We encourage conference attendance and participation, writing for trade journals, and sharing technical expertise through our company blog. During the lunch hour, employees frequently give “brown bag” talks—presentations on a particular technology, problem, or methodology. When they’re not developing software at work, employees are expected to develop professionally, that is, to investigate new technologies and hone their skills. And before founding Atomic, our president, Carl Erickson, was a professor of Computer Science at GVSU, making it safe to say that AO’s had these scholastic sympathies from the very beginning.
Another symbol of our academic bent is our rather large library – yes, a physical library – of books, made available for use by Atomic employees. We have books on, to name a few, operating systems, system administration, visual design principles, agile methodologies, project management, and oh so many programming languages. In fact, our burgeoning library was outgrowing its space on our IKEA shelving, not designed to withstand the weight of such CS tomes as Knuth’s 3 volume set, The Art of Computer Programming. Also, the classification system was getting muddled, with newer books horizontally stacked atop older books being the only recognizable taxonomy.
And so we needed a new solution. Luckily for us, our Business Manager, Mary, has a background in commercial interior design and was able to use her skills in drafting to design an entire wall of built-in bookcases. With all the information radiators around the office, wall space has become an increasingly scarce commodity, so the final design left an opening for the whiteboard currently occupying the wall in addition to ample shelving. [Nerdy art history sidebar: The design references the facade of our building, symmetrical, with a large entablature supported by two engaged pilasters.] Our friend Ken Idema (of Ken Idema Builders) created the library shelves, continuing his habit of beautifying our space.
The lot of re-”cataloging” our books – unfortunately – fell on me. Lacking a technical background, you can imagine how mind-boggling it must have been to rely on reason alone to organize books on C, C++, C# and Objective-C. (Let alone Cocoon?)
With the help of a friend, the oversight of an intern, and a little sweat equity, we have made the library easier to navigate (usable) and gave it ample room for growth (scalable).
Through the process of moving and organizing the books, I became rather fond of these books so foreign to my own education – or were they? I couldn’t help but notice the prejudice for modern art cover designs among the books. They featured works by Pete Mondrain, Wassily Kandinsky, M.C. Escher, Georges Seurat (the connection of pointillism to pixels is a given), to name a few.
So please – admire with me the final product – an homage to order, learning, and to craftsmanship (of all kinds).
This column will change your life: Are you an Asker or a Guesser?
The title of the linked article below is approaching hyperbole. Nevertheless, a basic understanding of these two different cultural dispositions — Askers and Guessers — could have real impact on not only your relationships with your clients, boss, and coworkers but perhaps every relationship in your life.
This column will change your life: Are you an Asker or a Guesser?
... We are raised, the theory runs, in one of two cultures. In Ask culture, people grow up believing they can ask for anything — a favour, a pay rise — fully realising the answer may be no. In Guess culture, by contrast, you avoid “putting a request into words unless you’re pretty sure the answer will be yes. . . . A key skill is putting out delicate feelers. If you do this with enough subtlety, you won’t have to make the request directly; you’ll get an offer. Even then, the offer may be genuine or pro forma; it takes yet more skill and delicacy to discern whether you should accept.”
Neither’s “wrong”, but when an Asker meets a Guesser, unpleasantness results. An Asker won’t think it’s rude to request two weeks in your spare room, but a Guess culture person will hear it as presumptuous and resent the agony involved in saying no. Your boss, asking for a project to be finished early, may be an overdemanding boor — or just an Asker, who’s assuming you might decline. If you’re a Guesser, you’ll hear it as an expectation. This is a spectrum, not a dichotomy, and it explains cross-cultural awkwardnesses, too: Brits and Americans get discombobulated doing business in Japan, because it’s a Guess culture, yet experience Russians as rude, because they’re diehard Askers.
(via Bobulate)
Shawn Anderson to present at LA RubyConf and SCALE
Later this month, Shawn Anderson will be going back to Cali, his previous home, to make back-to-back presentations at two different conferences: LA RubyConf and SCALE (the second time in two years). For both, he is presenting on developing 2D games using Ruby and open source tools (including a library that he wrote).
Read the rest of this entryCode Retreat Grand Rapids
Atomic Object will be kicking off the Code Retreat 2010 season by hosting a retreat in Grand Rapids, MI on February 6th at Atomic HQ. "What is a Code Retreat?", you ask? Code Retreat was dreamed up by Corey Haines, Nayan Harjatwala and Patrick Wilson-Welsh during some spare cycles at the Codemash v.2.0.0.9 conference. They wanted to create an event that would allow software developers to gather and practice their craft away from the pressures of writing production code and delivering business value. It would be a place where developers could come together and improve their ability to write clean and responsible code and ultimately improve their ability to deliver more business value to customers.
Read the rest of this entryA Month of Conferences and Confabs
November has been a month of conferences for AO. First, there was GLSEC (Great Lakes Software Excellence Conference), an event put on by SoftwareGR (formerly XP West Michigan) dedicated to improving the competitiveness of Michigan’s software development community. In addition to our involvement with GLSEC, the two weeks leading up to Thanksgiving have seen six atoms attend five different conferences, from JRubyConf in San Francisco to the World Bank conference in Cape Town, South Africa.
Read the rest of this entryAO Devs Volunteer at GR GiveCamp
AO devs Dustin Tinney and Drew Colthrop participated in Grand Rapids GiveCamp this weekend, a volunteer event in which developers lend their skills to area nonprofits. This year 125 volunteers from all over the Midwest came to the Downtown YMCA to work with 23 nonprofits. A combination of local and national businesses sponsored the event, including AO’s neighbors – Brick Road Pizza and Sandmanns.
Dustin worked with C-snip, a low-cost veterinary outfit specializing in spaying and neutering pets. C-snip currently receives thousands of calls a day from area pet owners seeking their services; each call can take up to fifteen minutes because of a detailed questionnaire. Dustin’s team created a web application that would streamline this questionnaire process and free up valuable resources for C-snip. You can see the page they created here.
Drew worked for Friends of Grand Rapids Parks, a grass-roots movement to preserve and enhance area parks and other public spaces. He added park-specific pages to their website that will feature photos from their Flickr pools and convenient Google maps of the parks.
In order to develop deliverable software, the volunteer teams needed to take on projects of the appropriate scope. For Drew and Dustin, their experience of working in short iterations and delivering the most essential features first came in handy. Dustin and Drew commented that the project management was very similar to what we do at AO: “We’re used to working on small stories, working closely with the clients, and receiving constant feedback.”
Erickson to Speak at Lakeshore Advantage Entrepreneur Series
On September 22nd, Atomic Object co-founder and president Carl Erickson will be the guest speaker at the Lakeshore Advantage e2e Series. Erickson, who served as a professor of computer science at GVSU for 10 years prior to founding Atomic Object in 2001 will be presenting "When a professor has to start a company: the story of Atomic Object."
Since its 2001 inception, Atomic Object has continued to grow. Posting a consistent yearly revenue growth, and now employing 24 full-time employees, Atomic Object serves as a model for software startups. By focusing on maintaining a diverse clientele, quality, and the needs of customers, Atomic Object has achieved success and earned a national reputation for excellence.

The e2e Series, which stands for "entrepreneur to entrepreneur", focuses on connecting business leaders of today with the entrepreneurs of tomorrow. Erickson's story and success will undoubtedly inspire and motivate his audience, comprised largely of young professionals, to take a bold step of their own.
The free event starts at 5:30PM (refreshments provided) and is hosted courtesy of Lakeshore Advantage, a full service startup incubator. For more information, please refer to the event website.
Benefits of an Open Office Environment
David Christiansen was one such visitor, writing of his visit to the AO office over at TechDarkside. "It's hard to think of what I saw there as an office--it had more in common with a grad school lab than an IT department. I thought it was awesome."
The open office environment has benefited Atomic Object and its clients in a variety of ways.
Problem solving. Much like our stand up meetings, the open office--wherein desks are arranged into groups with everyone facing into the center--promotes spontaneous brain storming. Employees working on radically different projects can share their collective wisdom and past experiences, to the benefit of other employees and ultimately AO's clients as well.

Productivity. The open office environment holds employees accountable to each other for their daily productivity. Everyone can see what you're working on, so it makes it much more difficult to slip in a quick game of Bejeweled or a lengthy email to your favorite aunt.

Community. Rather than sequestering individuals behind walls to limit their interaction, employees are encouraged to interact. Employees all sit facing each other in clusters, which encourages dialogue, while at the same time allowing employees to remain at their desks and continue working while doing so. In a traditional office environment, employees must interrupt their work and leave their cubicles for any interaction.
Warmth. When visitors walk into the Atomic Object office, they are often times greeted by a big friendly dog--one of several you might find around the office on any given day. If no dogs are present, visitors will at least be greeted by actual faces, instead of a wall of generically carpeted cubicles. Right away visitors see developers hard at work, actively engaged in client projects.

There it is in a nutshell. The open environment is social, spontaneous and productive. It's not just Atomic Object that is discovering this phenomenon. Agile enthusiast Elisabeth Hendrickson over at Quality Tree Software, Inc. is in the process of creating an open office environment after visiting Atomic Object and several others, where she quickly realized the benefits of our way of thinking. On Hendrickson's blog "Test Obsessed", she cites Atomic Object, among others, as a source of inspiration for her forthcoming open environment office space, hoping others with find similar inspiration and follow suit. We hope you do too.
Team 904: Creston High School Robotics Team

The scope of the Creston High robotics team expands far beyond just the construction of the robot. The team consists of four separate sub-teams:
- CAD team, designers & engineers of the robot
- Build team, primarily responsible for the construction of the robot
- Programming team, who bring the robot to life, so-to-speak
- Web design team, maintaining and updating Team 904's web site
Team members participate to some degree in all aspects of the design and construction process. This cross-team integration allows students a chance to try something outside of their interests--and sometimes they wind up finding they have a new interest as a result, opening students to possibilities and avenues they might have not otherwise explored.

Grant Gumina, a student who has been involved with the team for the past three years especially enjoys working with the the older, more experienced industry professionals. These professionals serve as mentors to the students, not directing the students, but rather guiding the students. The professionals also provide the students with valuable connections to the industry, and advice garnered from years of real-world experience. In addition to providing their expertise, the professionals assisting with the program can also help to guide career and college decisions based on their own personal experiences.
The team also participates in regional and national competitions, with an admirable 11th place finish in this year's state competition. The 11th place finish secured Team 904 a trip to the national competition in Atlanta, GA. The competitions serve as motivation for the students, as the students compete against other schools. Creston High's final project, adorned with a large Atomic Object sticker, will go on to compete starting with district matches against other local schools, and if successful will go on to statewide and finally nationwide matches. These matches are as intense as any sporting event. Students wear team shirts, and even go so far as to paint their faces and cheer like any zealous sports fan would.
Much of what the Creston High's Robotics Team does fits in with what Atomic Object does. We write custom software for automated machinery, much like the programmers from the robotics team. We also do web development, much like the web design component of the robotics team. Gumina made it a point to say that "Atomic Object's sponsorship is not buying parts for the robot, the money is actually going towards the education of the students." By sponsoring the team, AO is investing in the education and growth of Creston's bright students, and the Grand Rapids community at large.
Atomic Object Internships
Atomic Object’s intern program is unlike most within the tech industry. Generally, both clients and the company hosting the intern do not utilize the intern’s full talent. However, Atomic Object (Atomic) has worked hard to develop an intern program that provides more value to the interns and clients than a typical internship program.
The Atomic internship program’s model is structured more like an apprenticeship. Interns work under the guidance and care of a “wizard,” one of Atomic’s senior software developers. The wizard finds projects to assign the intern, which can be either projects the wizard is working on or projects other developers are working on. This provides the intern with more experience and variety than your typical internship program as he/she works on whichever projects the developer may be currently involved with. Atomic interns have worked on everything from automated system tests to iPhone games, an assortment which gives the intern an opportunity to contribute in meaningful, not menial ways. Along with the challenge of working on a wide range of projects, interns are often invited to follow their wizard to client meetings—essentially shadowing their mentor.
This model gives the interns a true taste of real world work experience, providing them with an opportunity to experience all the intellectual and creative facets of the development process, instead of just the routine “work” portion of the business. This prepares interns to confidently interact with clients and instills the mores that go with business interactions.
Atomic also benefits from the internship program in a variety of ways. In addition to having an extra set of hands to assist the senior developer, the internship program also gives Atomic a link to a talent pool, by establishing connections with college students and schools. Atomic’s positive reputation among employees and interns has led to a number of new staff members, which is beneficial to both the interns and Atomic Object.
10 Reasons We Have Daily "Stand Up" Meetings
Every day at Atomic Object starts with a brief, informal meeting. In the corporate world, “team” meetings leave a bad taste in most people’s mouths’ as being unnecessarily long, drawn out and ultimately of little value. AO’s approach is a bit different than your typical sit-around-the-conference table meeting for a few reasons:
- Meetings create a “brain trust”. Clients generally have two or four employees working on a project at any given time. Morning meetings give employees who are not necessarily involved with the project a chance to offer their wisdom, advice and problem-solving skills. In effect, when hiring Atomic Object for your project, you are receiving the collective wisdom of the entire staff.
- Meetings unify the team. It is not always easy to tell what various groups are working on. This is a chance to talk about what each employee is currently involved with. Knowing what others have worked on in the past provides employees with a mental reference of who may be valuable to their projects in the future.
- Anyone may suggest a topic. Throughout the day, as ideas emerge, all employees are encouraged to add to the next morning’s meeting agenda by placing a short note or keyword on the chalk board. The chalkboard helps direct focus to the most relevant topics at hand.
- The meetings are cheap. Standing keeps it short. No chairs, no tables allowed. Meetings rarely go much past the five-minute mark. This also eliminates the possibility of distraction by iPhones, laptops or any other device that could feasibly be resting on the table in front of the employee.
- Learn from everyone’s mistakes. The reality is that while we always try our hardest not to, we do sometimes make mistakes. The sharing of information and lessons learned at the meetings can save other employees from making similar mistakes. This ultimately saves the company time, improves efficiency and increases client satisfaction.
- Stand up meetings are very focused. Once the meeting begins all topics are work-related. No small talk. Topics all relate back to relevant issues surrounding the office, current projects or the industry at large.
- Meetings are scheduled at 9AM, with mandatory attendance. This spurs employees to arrive at the office consistently and on time. In a tech office where work can theoretically be done remotely, this creates motivation to spend time in the office on a consistent basis. Time spent in the office often results in spontaneous collaborative efforts and problem solving sessions that in turn benefit our client’s projects and our efficiency.
- Employees keep each other updated. The tech industry moves quickly. A mountain of new information is published daily. The meeting gives employees a chance to share the information they have personally found most relevant and valuable, which others may have missed.
- Introductions are made. As new employees and customers appear around the office, it gives everyone a chance to say “hi” and meet the new face. This makes the new hire feel welcome, and fosters community within the office environment.
- Meetings generate conversation. As topics are discussed, ideas are fostered which lead to additional discussion. This leads to discussion and collaborative opportunities among employees, after the meeting is adjourned.
Atomic Object in Rapid Growth
Rapid Growth TV created a video about Carl Erickson and Atomic Object. Check it out on the Rapid Growth Media site.
http://www.rapidgrowthmedia.com/features/rgtvatomicobject.aspx
In-house UX Workshop
Over the last 18 months, Atomic has made significant growth in our product development services. We now kickoff most projects with an initial discovery and design phase. In this phase we grow our understanding of the client's domain and their vision of the software they want to build. We create artifacts like financial models, personas, wireframes, visual mockups, prototypes and release plans. Eventually, we create a backlog of estimated stories that the development team can start implementing in the development phase.
A few developers at Atomic have shifted into a UX role. We've been growing the company's awareness of UX and product development practices. Last Thursday and Friday Atomic held an in-house UX workshop led by Lane Halley and Jeff Patton. The workshop exercises focused on a speculative development opportunity Atomic has been considering.
Thursday morning started by Lane and Jeff asking what we wanted to get out of the the workshop. They built a backlog of objectives for the workshop and included what we wanted to learn.
Once the schedule was set, we started by talking to the project's stakeholders about their general ideas for the project. Lane and Jeff gave a sample stakeholder interview with one of the stakeholders. We were taught some interview techniques and had the opportunity to practice interviewing with partners. We had some interview candidates lined up for the afternoon so we put together an outline of interview questions.
After Thursday's lunch we slimmed down to a smaller group. This group refined and organized the interview outlines. We conducted four interviews as pairs while the rest of the group observed. We had a retrospective after each interview where we compared notes and critiqued the interviewers.
On Friday the whole company came back together and the interviewers shared their notes. The notes were taken on cards. The cards were laid out and grouped together based on observational similarity. We constructed provisional personas (obviously real personas would require more research) from our notes. Each persona had a name, attributes, objectives and values. We broke out into teams and constructed context scenarios for each persona.
After Friday's lunch, Jeff had our product stakeholders define their high level business goals. We discussed what would constitute success. The discussion gave us insight into what kind of metrics the software may need to provide.
Then Jeff asked how we define a user story. This was a rich discussion that gave us insight into how much we have internalized user stories and how the simple definition of a story has changed over time
After our user story discussion, we extracted activities from our context scenarios. Jeff led us through an exercise where we created a story map. We organized our activities and derived stories from the activities. We looked to the project stakeholders for story validation. We then engaged the stakeholders in release planning using the story map. The exercise showed a great way to prioritize high level stories before fully defining the details required of a finer grained story to be entered into a development backlog.
The workshop ended with a retrospective where the entire company asked questions and shared thoughts.
I'm very excited to see Atomic continue to grow in our UX and product development practices. We've stayed at the forefront of agile development and management for some time. While there, we saw that our clients needed help in formalizing what their project was, who it was for and what business value it would provide. That need and our drive for excellence has pushed us forward to better help our clients. We are enjoying the ability to provide the necessary up front services that ensure we are developing successful products.
Projectstance: shared beliefs at Atomic
Atomic has strong opinions about how to do projects, and we have practices that are so deeply a part of our culture that they are taken for granted internally. There’s a common way we approach all the projects we do, whether it’s embedded, desktop or web, in any of the many domains in which we work. I’ve known this for a while, but I’ve never had a good word for it. Watching one of our younger developers on a recent project gave me that word.
People at Atomic have a strong projectstance.
Read the rest of this entryJerry Weinberg on Importance of Software Quality
My friends at Citerus put together a great newsletter. If you don’t mind reading through a little Swedish intro (the content is mostly in English), I’d highly recommend subscribing.
From a recent interview with Jerry Weinberg in their newsletter:
Q: You seem pretty relentless about quality, why is quality so important to you?A: Because if you don’t care about quality, everything else is trivial. (I call this The First Law of Software Engineering.) You need to ship on a certain date? If you don’t care about quality, you just ship. You need to cut costs? If you don’t care about quality, you just stop when you run out of money. You need to boost morale? If you don’t care about quality, you do whatever your people want. (Oh, wait a minute. What if they want quality, even if you don’t care? You want to destroy a professional software organization. Act as if you don’t care about quality. The professionals will leave, either physically or psychologically.)
So, that’s why quality is so important, not just to me, but to our industry. And, until we start caring, we’re not going to get better. And I know we can get better, because when I’ve worked with clients whose entire business (or people’s lives) depends on quality, they produce quality software. Curiously, it turns out that quality software is cheaper in the end, but if you’re not into long-term thinking, you won’t see that.

