---
created_at: '2017-07-24T08:27:42.000Z'
title: Fire And Motion (2002)
url: https://www.joelonsoftware.com/2002/01/06/fire-and-motion/
author: joebaf
points: 80
story_text: 
comment_text: 
num_comments: 8
story_id: 
story_title: 
story_url: 
parent_id: 
created_at_i: 1500884862
_tags:
- story
- author_joebaf
- story_14836749
objectID: '14836749'

---
[Source](https://www.joelonsoftware.com/2002/01/06/fire-and-motion/ "Permalink to Fire And Motion &#8211; Joel on Software")

# Fire And Motion &#8211; Joel on Software

[Skip to content][1]

* [__View menu][2]
* [____View sidebar][3]

# [Joel on Software][4]

## 

## Your host

![][5]

I'm Joel Spolsky, a software developer in New York City. [More about me][6].

Search

![][7]Read the archives in dead-tree format! Many of these articles have been collected into [four books][8], available at your favorite bookstore. It's an excellent way to read the site in the bath, or throw it at your boss.

## Careers

![][9]

Ready to level up? [Stack Overflow Jobs][10] is the job site that puts the needs of developers first. Whether you want to take control of your search or [let employers discover you][11], we're on a mission to help every developer find a job they love.

Looking to hire smart programmers who get things done? [Stack Overflow Talent][12] is a fully-customized sourcing solution that helps you understand, reach, and attract developers on the platform they trust most. Find the right candidates for your jobs. [Learn more.][13]

![][14]

For my day job, I'm the co-founder and CEO of [Stack Overflow][15], the largest online community for programmers to learn, share their knowledge, and level up. Each month, more than 40 million professional and aspiring programmers visit Stack Overflow to ask and answer questions and find better jobs. Stack Overflow is also the flagship site of the [Stack Exchange network][16], 160+ question and answer sites dedicated to all kinds of topics from cooking to gaming. According to Quantcast, Stack Overflow is the 30th largest web property in the United States and in the top 100 in the world.  
  
[ ![profile for Joel Spolsky on Stack Exchange, a network of free, community-driven Q&A sites][17]  
][18]

![][19]  
I also founded [Fog Creek Software][20], one of the most influential small tech companies in the world. As an independent, privately-owned company, we've been making customers happy since the turn of the century. We share what we've learned about how to make great software, both by writing about our ideas and by creating products, like [FogBugz][21], [Trello][22] and [Gomix][23], that help others make great technology. As a result, Fog Creek's impact on the world of developers rivals companies a thousand times our size.

## Twitter! Twitter!

[My Tweets][24]

[January 6, 2002December 5, 2016][25] by  [Joel Spolsky][26]

# Fire And Motion

* [Top 10][27], [CEO][28], [News][29]

Sometimes I just can’t get anything done.

Sure, I come into the office, putter around, check my email every ten seconds, read the web, even do a few brainless tasks like paying the American Express bill. But getting back into the flow of writing code just doesn’t happen.

![Tetris][30]These bouts of unproductiveness usually last for a day or two. But there have been times in my career as a developer when I went for weeks at a time without being able to get anything done. As they say, I’m not in flow. I’m not in the zone. I’m not anywhere.

Everybody has mood swings; for some people they are mild, for others, they can be more pronounced or even dysfunctional. And the unproductive periods do seem to correlate somewhat with gloomier moods.

It makes me think of those researchers who say that basically people _can’t _control what they eat, so any attempt to diet is bound to be short term and they will always yoyo back to their natural weight. Maybe as a software developer I really can’t control when I’m productive, and I just have to take the slow times with the fast times and hope that they average out to enough lines of code to make me employable.

 

  ![Go read The Onion for a while.][31]  
   

What drives me crazy is that ever since my first job I’ve realized that as a developer, I usually average about two or three hours a day of productive coding. When I had a summer internship at Microsoft, a fellow intern told me he was actually only going into work from 12 to 5 every day. Five hours, minus lunch, and his team _loved_ him because he still managed to get a lot more done than average. I’ve found the same thing to be true. I feel a little bit guilty when I see how hard everybody else seems to be working, and I get about two or three quality hours in a day, and still I’ve always been one of the most productive members of the team. That’s probably why when Peopleware and XP insist on eliminating overtime and working strictly 40 hour weeks, they do so secure in the knowledge that this won’t reduce a team’s output.

But it’s not the days when I “only” get two hours of work done that worry me. It’s the days when I can’t do _anything_.

I’ve thought about this a lot. I tried to remember the time when I got the most work done in my career. It was probably when Microsoft moved me into a beautiful, plush new office with large picture windows overlooking a pretty stone courtyard full of cherry trees in bloom. Everything was clicking. For months I worked nonstop grinding out the detailed specification for Excel Basic — a monumental ream of paper going into incredible detail covering a gigantic object model and programming environment. I literally never stopped. When I had to go to Boston for MacWorld I took a laptop with me, and documented the Window class sitting on a pleasant terrace at HBS.

Once you get into flow it’s not too hard to keep going. Many of my days go like this: (1) get into work (2) check email, read the web, etc. (3) decide that I might as well have lunch before getting to work (4) get back from lunch (5) check email, read the web, etc. (6) finally decide that I’ve got to get started (7) check email, read the web, etc. (8) decide again that I _really_ have to get started (9) launch the damn editor and (10) write code nonstop until I don’t realize that it’s already 7:30 pm.

Somewhere between step 8 and step 9 there seems to be a bug, because I can’t always make it across that chasm.![bike trip][32] For me, just getting started is the _only _hard thing. An object at rest tends to remain at rest. There’s something incredible heavy in my brain that is extremely hard to get up to speed, but once it’s rolling at full speed, it takes no effort to keep it going. Like a bicycle decked out for a cross-country, self-supported [bike trip][33] — when you first start riding a bike with all that gear, it’s hard to believe how much work it takes to get rolling, but once you are rolling, it feels just as easy as riding a bike without any gear.

Maybe this is the key to productivity: _just getting started_. Maybe when [pair programming][34] works it works because when you schedule a pair programming session with your buddy, you force each other to get started.

![Joel in the Army][35]

When I was an Israeli paratrooper a general stopped by to give us a little speech about strategy. In infantry battles, he told us, there is only one strategy: Fire and Motion. You move towards the enemy while firing your weapon. The firing forces him to keep his head down so he can’t fire at you. (That’s what the soldiers mean when they shout “cover me.” It means, “fire at our enemy so he has to duck and can’t fire at me while I run across this street, here.” It works.)  The motion allows you to conquer territory and get closer to your enemy, where your shots are much more likely to hit their target. If you’re not moving, the enemy gets to decide what happens, which is not a good thing. If you’re not firing, the enemy will fire at you, pinning you down.

I remembered this for a long time. I noticed how almost every kind of military strategy, from air force dogfights to large scale naval maneuvers, is based on the idea of Fire and Motion. It took me another fifteen years to realize that the principle of Fire and Motion is how you get things done in life. You have to move forward a little bit, every day. It doesn’t matter if your code is lame and buggy and nobody wants it. If you are moving forward, writing code and fixing bugs constantly, time is on your side. Watch out when your competition fires at you. Do they just want to force you to keep busy reacting to their volleys, so you can’t move forward?

Think of the history of data access strategies to come out of Microsoft. ODBC, RDO, DAO, ADO, OLEDB, now ADO.NET – All New! Are these technological imperatives? The result of an incompetent design group that needs to reinvent data access every goddamn year? (That’s probably it, actually.) But the end result is just cover fire. The competition has no choice but to spend all their time porting and keeping up, time that they can’t spend writing new features. Look closely at the software landscape. The companies that do well are the ones who rely least on big companies and don’t have to spend all their cycles catching up and reimplementing and fixing bugs that crop up only on Windows XP. The companies who stumble are the ones who spend too much time reading tea leaves to figure out the future direction of Microsoft. People get worried about .NET and decide to rewrite their whole architecture for .NET because they think they have to. Microsoft is shooting at you, and it’s just cover fire so that they can move forward and you can’t, because this is how the game is played, Bubby. Are you going to support [Hailstorm][36]? [SOAP][37]? [RDF][38]? Are you supporting it because your customers need it, or because someone is firing at you and you feel like you have to respond? The sales teams of the big companies understand cover fire. They go into their customers and say, “OK, you don’t have to buy from us. Buy from the best vendor. But make sure that you get a product that supports (XML / SOAP / CDE / J2EE) because otherwise you’ll be [Locked In The Trunk][39].” Then when the little companies try to sell into that account, all they hear is obedient CTOs parrotting “Do you have J2EE?” And they have to waste all their time building in J2EE even if it doesn’t really make any sales, and gives them no opportunity to distinguish themselves. It’s a checkbox feature — you do it because you need the checkbox saying you have it, but nobody will use it or needs it. And it’s cover fire.

Fire and Motion, for small companies like mine, means two things. You have to have [time on your side][40], and you have to move forward every day. Sooner or later you will win. All I managed to do yesterday is improve the color scheme in FogBUGZ just a little bit. That’s OK. It’s getting better all the time. Every day our software is better and better and we have more and more customers and that’s all that matters. Until we’re a company the size of Oracle, we don’t have to think about grand strategies. We just have to come in every morning and somehow, launch the editor.

![It's getting better all the time... o/~][41]  
[ Discuss][42]

## Want to know more?

You're reading [Joel on Software][4], stuffed with years and years of completely raving mad articles about software development, managing software teams, designing user interfaces, running successful software companies, and rubber duckies. 

![][43]

## About the author.

I'm Joel Spolsky, co-founder of [Trello][44] and [Fog Creek Software][45], and CEO of [Stack Overflow. [More about me][6]. 

# Post navigation

←[ Previous Post 2002/01/06][46]

[Next Post → 2002/01/08][47]

[Proudly powered by WordPress][48]

[1]: https://www.joelonsoftware.com#content
[2]: https://www.joelonsoftware.com#tab-1
[3]: https://www.joelonsoftware.com#tab-3
[4]: https://www.joelonsoftware.com/
[5]: https://i2.wp.com/www.joelonsoftware.com/wp-content/uploads/2016/12/Pong.png?w=730&ssl=1
[6]: https://www.joelonsoftware.com/about-me/
[7]: https://i0.wp.com/www.joelonsoftware.com/wp-content/uploads/2016/12/newdesign-books.png?w=730&ssl=1
[8]: https://www.joelonsoftware.com/buy-the-books/
[9]: https://i0.wp.com/www.joelonsoftware.com/wp-content/uploads/2016/12/jobs.jpg?w=730&ssl=1
[10]: http://stackoverflow.com/jobs
[11]: http://stackoverflow.com/jobs/why-jobs
[12]: https://www.stackoverflowbusiness.com/talent
[13]: https://www.stackoverflowbusiness.com/talent/request-a-demo?utm_source=joelonsoftware&utm_medium=referral&utm_term=learn-more
[14]: https://i1.wp.com/www.joelonsoftware.com/wp-content/uploads/2016/12/so-logo.png?w=730&ssl=1
[15]: http://stackoverflow.com
[16]: http://stackexchange.com
[17]: https://i1.wp.com/stackexchange.com/users/flair/4.png?resize=208%2C58&ssl=1 "profile for Joel Spolsky on Stack Exchange, a network of free, community-driven Q&A sites"
[18]: https://stackoverflow.com/users/story/4
[19]: https://i0.wp.com/www.joelonsoftware.com/wp-content/uploads/2016/12/fc-logo.png?w=730&ssl=1
[20]: http://fogcreek.com/
[21]: http://www.fogcreek.com/fogbugz
[22]: http://trello.com
[23]: https://gomix.com/
[24]: https://twitter.com/spolsky
[25]: https://www.joelonsoftware.com/2002/01/06/fire-and-motion/
[26]: https://www.joelonsoftware.com/author/joelonsoftware/
[27]: https://www.joelonsoftware.com/category/reading-lists/top-10/
[28]: https://www.joelonsoftware.com/category/reading-lists/ceo/
[29]: https://www.joelonsoftware.com/category/news/
[30]: https://i1.wp.com/www.joelonsoftware.com/wp-content/uploads/2002/01/bored-tetris.gif?resize=200%2C166&ssl=1
[31]: https://i1.wp.com/www.joelonsoftware.com/wp-content/uploads/2002/01/bored-onion.gif?resize=200%2C183&ssl=1
[32]: https://i2.wp.com/www.joelonsoftware.com/wp-content/uploads/2002/01/bike-trip.jpg?resize=113%2C103&ssl=1
[33]: http://www.panix.com/~spolsky/biketrip/index.htm
[34]: http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=2058
[35]: https://i0.wp.com/www.joelonsoftware.com/wp-content/uploads/2002/01/ARMY-wee.jpg?resize=91%2C99&ssl=1
[36]: http://wmf.editthispage.com/discuss/msgReader$3194?mode=topic
[37]: http://radiodiscuss.userland.com/soap
[38]: http://www.w3.org/RDF/
[39]: http://davenet.userland.com/2001/07/06/theMicroChannelArchitecture
[40]: https://www.joelonsoftware.com/articles/fog0000000056.html
[41]: https://i0.wp.com/www.joelonsoftware.com/wp-content/uploads/2002/01/editing.gif?resize=359%2C217&ssl=1
[42]: http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=2290
[43]: https://secure.gravatar.com/avatar/d95216e70bed7430716b91ddd6df55fe?s=64&d=mm&r=pg
[44]: https://trello.com/
[45]: http://www.fogcreek.com/
[46]: https://www.joelonsoftware.com/2002/01/06/20020106/
[47]: https://www.joelonsoftware.com/2002/01/08/20020108/
[48]: http://wordpress.org/

