Blue Flavor

Bonsai Trees VII by Garrett Murray

Development Inspiration & Motivation

November 29th, 2007 at 7 a.m.

When working on a large project, developers often find themselves having a difficult time remaining engaged—especially near the end. It’s a common phenomenon: At the outset you’re charged up, ready to rock, you get your schema going and you start cranking out code. But by the end you’re dragging your feet and the work feels like a chore. This happens to the best of us. Luckily, there are several ways to keep yourself and your team inspired throughout the entire project.

Before the Code

In many shared-responsibility environments, developers can be quite isolated from most of the initial project process. It’s a common methodology to have design, IA and project management teams focus on putting together requirements, schedule and early deliverables without involving the developer or development team. In most cases, developers are only brought in to answer specific requirement questions (infrastructure, deployment options, development languages, rough timeline estimates) and then are left out until their part of the project begins.

Unfortunately, this disconnect further serves to create a lack of engagement in a development team. Developers often feel as though they are a cog in the wheel—development is just their small part of a bigger picture they have no influence on—rather than an integral part of the project on a whole. Lack of early input from developers can also cause problems when development begins, as design and IA can mandate work the team might find unnecessary or ill-advisable.

Many iterative processes attempt to realign this pattern for the better. Instead of waiting to involve your developers, iterative processes bring them in from the beginning. Other people working on the project ask them questions about technology, sure, but they also lay out design plans and IA. Better yet, they ask the developer for input and suggestions. Some developers are remarkably good at IA and UX design because it’s a large part of developing solid and usable applications. More often than not, developers will provide useful feedback that will not only heighten motivation, but will actually help to create a better end product for the client.

Design Affects

It continues to amaze me just how much design affects my motivation during a project’s lifetime. If the design is well done, logical, and not unnecessarily difficult to implement, motivation stays high. If, however, the design is messy or schizophrenic, poorly planned or very difficult to develop around, it makes it that much harder to stay focused and engaged.

There are different kinds of designers out there: One type knows what is required to take a design from Photoshop to full-fledged application and makes a constant effort to both ease that transition and keep the client pleased. The other type doesn’t. It’s suggested you try to find yourself working with the former. A good design can make everyone excited about a project. It’s especially helpful when a designer asks questions. Let me say that again: As a developer, you should make it clear that a designer can ask you questions about what you’re planning to do. The more a designer knows, the more he or she can work toward making your job easier in the long run.

Other Helpful Advice

Of course, even with a good design and early involvement in the process, occasionally you’ll still lose your inspiration near the end of a large project. You can, however, fight this by doing a few simple things. For example, re-factoring code, while it sounds boring and time-consuming, can add a great boost to motivation. There’s nothing better than simplifying a method or class only to realize that new functionality you’ve yet to write is even easier to implement. And clients never grow tired of performance increases, which is an added bonus.

Another simple way to maintain motivation is to interact with the client on a regular basis. Many developers (myself included) have a habit of developing “heads down” (or as I like to say, “going dark”), which can be alienating and will eventually affect the project more than one might realize. By having regular interaction with the client—if only to show progress and talk about what you’re doing—you’ll find yourself far more engaged with the project and the outcome. When a client interacts with developers on a regular basis they get more and more excited about the product you’re building for them, and that excitement can easily rub off on you.

Garrett Murray

More Information