1 팔로워

After attending a few seminars on the topic of productivity and time management and reading a couple of books on the subject, I was introduced to some profound concepts and made some great realizations about the way I used to work. With this new knowledge, I completely redesigned my workflow framework something that lead in a tremendous boost of my productivity.

I would like to share with you the most important tips that will help you boost your productivity, increase your overall output and, perhaps most importantly, free you time to spend in other activities.

Note that the following tips can be applied to both personal and professional aspects, the principles are essentially the same.

So, let’s hit the road…

Never, ever, ever read e-mails first thing in the morning

If there is one thing to keep from this article, then this is it. Again, never read e-mails first thing in the morning. If you do, you will automatically be positioned in a reactive and passive mode instead of the active and creative mode we want to be.

Check and respond to e-mails only in predefined time windows within the day. Those should be before launch break, let’s say around 12.00-13.00, and then again at around 16.00, when your energy levels will be low anyway so you won’t lose any productive energy. Don’t worry, this “urgent” e-mail, is not really that urgent.

Avoid meetings if you can

Meetings are the number one productivity killers in the corporate environment. There I said it. You know it, I know it, everybody knows (but perhaps won’t admit).

“Meetings are an addictive, highly self-indulgent activity that corporations and other large organizations habitually engage in only because they cannot actually masturbate.” – Dave Barry

Yeap, this pretty much sums it up. What is most interesting is that a meeting kills the productivity of multiple people at the same time. Amazing. So, if it is not absolutely critical to attend, just skip it. Say that you have a lot in your hands (which is probably true) and arrange to check with a colleague after the meeting to fill you in about the important stuff.

If it is really important to hold a meeting (this should be rare actually), then keep these things in mind:

  • Do it late in the afternoon when your productivity is down anyway.
  • Always have an agenda of topics to be discussed. Don’t deviate from those.
  • Set up a strict end time. Call the meeting off when this time comes.
  • Don’t leave the room without clear, actionable next steps.

Eliminate distractions

This is huge. The world in the information age is full of distractions coming in every possible way and keeping you from getting things done. I would classify distractions in two main categories: those that we create ourselves and those that are created by others.

Let’s start with the distractions that we create ourselves. This seems odd to think about, but the truth is that we manage to keep ourselves from being productive, even if we do not do this consciously. Examples are abundant: setting up our e-mail and social media accounts to “notify” us when something “important” happens, switching between different tasks like maniacs, getting a quick “fix” at Hacker News or Reddit and the list goes on.

The thing is that you should setup your work environment in a way that when you are actually on a task, there is nothing to distract you. Begin by switching off all your notifications, be it text messages on your mobile, Facebook updates etc. Next, exit your e-mail application or if you decide to leave it on, make sure that the automatic Send/Receive option is disabled. Then, eliminate access to any non productive sites that you usually hang like DZone, Hacker News etc. Note that I did not say “don’t use”, I used the phrase “eliminate access”. We are all geeks here so I trust you that you will find the technical way to accomplish this. You can use a low level approach of editing your machine’s “hosts” file to make facebook.com point to or using a plugin to temporarily restrict access to those sites. I personally use the Blocksite plugin. With this setup, you will be in a position where you have eliminated the majority of the distractions that you essentially cause yourself.

Let’s move on to the distractions that other people cause. You could argue that some of the above distractions are caused by other people but the hard truth is that you cause them yourself since nobody forces you to check Twitter or Facebook. What I refer to here are “obtrusive” distractions. For example, how many times this scenario has happened to you? You get an e-mail by your manager and then he calls you to ask you if you got said e-mail. Talk about productivity. Or what about this: A colleague pokes you while you are debugging your code and asks you how something trivial is accomplished in Java and the first response that comes to your mind is “Google it, bitch!“.

In reality, those distractions are a bit tricky to defend yourself from because it is easy to go overboard and pass the limits of what is socially acceptable. Some ideas would be using headphones (though I have found that even this does not work sometimes), allowing the incoming calls to go to voice mail and checking them later, hanging a piece of paper on your PC that says “Do not disturb, coding in progress” etc. You will have to gauge what would be appropriate in your work establishment and proceed accordingly. The goal is to allow for an uninterrupted workflow.

Prepare a list of tasks to do the night before

The previous night you should make a clean list of tasks that is important to be accomplished the day that follows. I am not talking about huge lists of several items, this never works. Instead, pinpoint 2-3 important tasks, those that if performed, significant progress will occur in your projects. It should go like this: “If I only accomplish these two tasks today, will I feel productive about my day?“. If yes, jot them down.

Do the most important tasks first

As mentioned above, e-mails should never be the first thing to deal with. So, what would that be? The most important task in the list! You have identified the single most crucial task so, you sit down and deal with it without thinking about anything else. Ideally, you should finish this in “one seating”. Take a short break and then proceed with the second most major task in your list. I will talk in a later section about how to alternate work and breaks for optimal results.

Batching is not only for databases

I am sure that most of you are familiar with the concept of query batching. In short, you “batch” a lot of similar DB queries and send only one request in the database which allows for better performance. Optimization at its best. Guess what, you can use the same principles for your own tasks! WIth that way, you will minimize the activation costs and various overheads that come with certain tasks. Good examples of tasks that batching can be applied to are e-mail checking (notice a pattern here?), phone calls and generally any menial, repetitive work.

Automate like there is no tomorrow

Another thing to add to your productivity toolbox is the concept of automation. As programmers, we live essentially in quite an automated environment but yet I have seen several incidents where people resolve to manually performing a menial, mundane task which could easily be automated. Look, humans fail, are less reliable than machines and fail even more when the task at hand is boring and insignificant. Strive to automate as many of the tasks as possible. Examples would be performing a full application build with just one click, deploying to production servers using only one script etc. Seriously, do not lose mental and physical energy performing something that a machine would perform faster, more reliably and without your involvement.

Alternate “work” and “play” for maximum results

So, it is now time to talk about how to actually set up a work framework. What I would like to suggest is allocating specific time periods that would be earmarked as “work” and time periods that would be assigned as “break” or even better “play”.

For example, you would dedicate 45 minutes of continuous, focused work on a specific task and then, follow that up with a 15 minutes break where you can surf the internet, check your social media updates, read the latest Java Code Geeks articles etc. Make sure to move your eyes away from the screen during the break and definitely getting some mild physical action. Seriously, sitting can kill you, stand up and walk.

The concept is that, among other things, the “play” time period would serve as a reward to yourself for having the discipline to plow through the longer time period of working. Our minds are mysterious things but I can assure you that setting up a reward mechanism like this will help you accomplish more stuff and have some fun time as well.

On the technical side of accomplishing this, there are numerous timer applications and you can also experiment with the Pomodoro technique.

Jot everything down

What I refer to here is making the habit of noting everything down. Whether it is a new idea you have, a new approach you would like to follow for a problem you are trying to solve or a bill you have to pay tomorrow. You have to make sure that your brain’s capacity is not consumed by “remembering stuff” but on focusing on the specific goal you are trying to accomplish.

Think of your brain as a computer CPU. The “stuff” you assign to it is similar to launching several process in the background. It will eventually cause it to hang and not work properly. The process of jotting things down will offload your brain and allow it to perform in a more optimal way.

Make separate lists and categorize those thoughts you have. Lists could include “Potential Projects”, “Thing to buy”, “Development” etc., so that you can quickly scan through them later on.

Leverage “flow” – Working “in the zone”

This is the holy grail. This is what we are trying to achieve by properly designing our working framework. This is what all the aforementioned tips will allow you to achieve. I am sure you have experienced a state of “flow” or “being in the zone” as it is more commonly known among programmers. It is that time period when your mind is totally dedicated, laser focused to a particular task or problem and you essentially lose track of time. You code and code and code and nothing else exists. External stimuli do not even register with your brain and there is only you and your favorite IDE. I would dare to bet that 80% of all progress in our programming work is performed during “flow” incidents. Heck, I got in the zone while writing this article!

The bottom line here is that you have to put yourself in a position where you can get in “flow” easily and stay there as long as possible. This is the mode our brains have evolved to work in and this will skyrocket your productivity. I love being in the zone and I am sure you love it too, so why not give ourselves the chance to experience this more?

So, there you have it. A few simple tips for getting the most out of your time. Please, try those for a short period (say one or two weeks) and then let me know in the comments how it goes. You can even shoot me an e-mail, I would be happy to hear from you!

And as always, sharing is caring. If you found those tips helpful, share with a colleague, let’s make our work environment a little more optimized.

편집 게시물 신고 종료 삭제

질문 2013-07-24 11:07:28 +0900

Dev10의 그라바타 이미지

수정 2013-09-04 16:26:39 +0900

director의 그라바타 이미지

생산성과 시간 관리에 관한 세미나들을 참석하고, 이 주제에 관한 몇권의 책을 읽은후 저의 작업하는 방식에 대해 깊게 깨달은 바가 많습니다. 새로운 깨달음으로 저의 일하는 방식을 완전히 새롭게 설계하여, 생산성을 엄청나게 향상할수 있게 되었습니다.

여러분도 이 방법을 이용하여 생산성을 향상하고 더 많을 작업을 수행하고, 여유 시간에 다른활동을 할 수 있으면 좋겠습니다.

앞으로 설명드릴 내용은 개인 시간과 업무 시간을 관리하는 데 둘다 적용될 수 있습니다. 왜냐하면 둘은 원리적으로 같기때문이죠.

그럼 시작해 볼까요…

절대로 절대로 이메일 읽는것으로 아침 업무를 시작하지 마시기 바랍니다.

이 글에서 제시하는 방법들 중, 이 것 한 가지만이라도 적용해 보세요. 다시 말씀드리지만 절대로 아침 시작부터 이메일을 읽지 마세요. 업무 시작부터 이메일을 읽으면, 적극적이고 창조적인 마음가짐 대신 소극적이고 수동적인 상태가 되버립니다

이메일은 꼭 하루 중 정해두신 시간에만 읽으십시오. 점심시간 전 대략 12시에서 오후 한시정도 그리고 오후 4시쯤, 에너지 레벨이 어차피 낮어서 생산성을 저하시키지 않는 때가 좋습니다. “긴급한” 이메일들은 사실 그리 급하지 않으니 걱정마세요.

가능하면 회의는 피하라

회의는 회사 내에서 생산성을 죽이는 첫번째 요인입니다. 그렇습니다. 당신도 알고 나도 알고 다들 압니다(아마 인정하진 않겠지만)

회의란 회사나 큰조직에서 습관적으로 행하는 중독적이고 매우 자기만족적인 행위다. 회사에서 사람들이 자위행위 대신 회의를 하는 것이라 볼 수도 있다. -데이브베리

네 그렇습니다. 중요한건 회의라는 것이 동시에 여러사람의 생산성을 갉아 먹는다는 겁니다. 그래서 꼭 참석해야만 하는 경우가 아니라면 그냥 지나치세요. 당장 해야할 일들이 너무 많아서(아마 그럴겁니다) 참석 못하겠다고 한후, 회의를 마치고 온 동료들로부터 회의중 중요한 내용들만 골라서 듣도록 하세요.

만일 정말로 회의가 필요하다면 (흔치 않겠지만) 다음을 염두에 두세요.

  • 생산성이 어차피 떨어지는 오후시간 늦게 하세요
  • 언제나 회의주제를 정하고 그 주제에 집중하세요
  • 회의 끝나는 시간을 엄수하세요. 시간이 되면 회의를 끝내세요
  • 명확하게 실행 할 수 있는 일을 정하지 않고서는 회의실을 나오지 마세요.

방해물 제거

매우 중요합니다. 정보화 시대에는 업무완수를 방해하는 것들이 널려 있습니다. 두가지 종류로 나눌수 있는데요. 우리 자신이 만드는 방해물과 다른사람이 제공하는 방해물이 있습니다.

우리 스스로가 만드는 방해물부터 살펴보죠. 안 그럴 것 같지만 무의식적으로, 우리 스스로가 생산성을 떨어뜨리는 행동을 합니다. 많은 예들이 있죠. 이메일이나 SNS 알림을 켜놓는 다던지, 정신없이 이업무 하다 저업무 하다 한다던지, Hacker news나 Reddit에서 쓸 데 없는 문서를 들여다 본다던지, 하는 것들입니다.

일을 하고자 할때 만큼을, 일 하는 것을 방해받지 않을 수 있는 환경을 만들어야 한다는 것입니다. 우선 알림들을 모두 끕니다. 휴대폰 문자 착신음, 페이스북 업데이트 그리고 이메일도 끄고 업무에 필요하지 않은 Dzone이나 Hacker News등의 사이트를 접속하지 못하도록합니다.

이용하지 않는것이 아니라 접속하지 못하도록 하라고 말한 것을 명심하세요. 우리 다들 IT 전문가들이고, 기술적으로 어떻게 해야하는지 알아낼 수 있으리라 생각합니다. “hosts”화일을 편집하여 페이스북 사이트가로 연결되도록 한다던지, 브라유저 추가기능으로 일시적으로 접속을 못하도록 만들수 있습니다. 저는 개인적으로 Blocksite plugin 를 이용합니다. 이런 방법으로 여러분 스스로가 만드는 방해물들의 대부분을 제거할수 있습니다.

다른 사람이 만드는 방해물로 넘어가죠. 위에 말한경우도 다른사람 때문에 생기는 방해라고 할지 모르지만 사실 트위터나 페이스북을 보라고 아무도 강요하지 않습니다. 이제 살펴볼 방해물들은, 외부에서 강요된 방해물들입니다. 다음과 같은 상황이 얼마나 자주 일어나나요. 팀장이 이메일을 보낸후 당신을 불러서 이메일을 받았는지 확인하는 상황. 그래놓고 생산성을 말한다니. 이건 어떤가요: 디버깅에 집중하고 있을때 동료가 와서는, 정말 기초적인 자바 관련 질문을 합니다. 당신 머리속에는 “검색해봐 XX야!” 라는 생각이 먼저 들죠.

현실적으로는 앞서 말한 상황들을 차단하다보면 [상사나 동료의 말을 무시하는것 처럼 보여] 사회성에 문제 있는것처럼 보일수 있기 때문에, 이런 방해들로 부터 스스로를 지켜내는것이 쉽지 않습니다. 아이디어 중에 하나는 헤드폰을 사용하는것입니다(이것도 잘 안통할때가 있긴 합니다만) 걸려오는 전화는 음성사서함으로 가도록하고 나중에 확인합니다. “방해하지 마세요 코딩중입니다”라는 종이를 붙혀놓는것도 할수 있죠. 어느 정도까지 자신의 직장환경에서 받아들여질수 있는지 탐색해봐야 할 것입니다. 최종 목표는 방해받지않고 업무에 집중하는 것입니다.

해야할일 목록을 전날 저녁에 준비한다.

그 다음날 해야만 하는 중요한 업무사항 목록을 만들어야 합니다. 여러 일들의 긴 목록을 말하는 것이 아닙니다. 그거 어차피 못합니다. 대신에 만일 완수한다면 프로젝트진행에 큰도움이 되는 중요한 일 2-3개에 촛점을 맞춥니다. 스스로 이런 질문을 해봅니다. “만일 이 두가지를 오늘 끝내면 오늘 하루가 생산적이였다고 느낄까?” 만일 그렇다면, 그 두가지를 적습니다.

가장 중요한것 먼저하기.

위 에 언급했듯이 이메일은 절대로 먼저 할일이 아닙니다. 그럼 무얼 먼저 해야 할가요? 작업목록에 적은 가장 중요한일! 당신은 가장 중요한 업무를 골라냈읍니다. 앉아서 다른 생각말고 그일에 집중해야죠. 이상적으로는 한번 앉은자리에서 끝내야합니다. 그 다음은 짧은 휴식을 취한후 목록에서 두번째로 중요하다는 일을 해야죠. 최적의 결과를 위해 일과휴식시간 관리를 어떤식으로 할지는 다음 항목에서 말하겠습니다.

배치는 데이터베이스만을 위한것이 아니다.

쿼리 배칭에 관해 다들 알고 계실거라 생각합니다. 짧게 말해 여러개의 비슷한 DB 쿼리를 모아서 한번에 보내면 속도가 향상됩니다. 최적화에 최선을 다한다는것, 이거 업무에도 적용되는 개념입니다. 이것을 적용하면 해당업무 에 필요한 준비 시간을 최소화 할수 있고 결과적으로 업무를 완료하는 시간을 줄일 수 있습니다. 배치 처리를 할 수 있는 일들은, 이메일 확인(또 나왔죠?), 전화응답 그리고 다른 모든 단숙반복업무입니다.

자동화에 최선을 다해라

생산성을 높이기 위해 자동화 개념을 빼놓을 수 없습니다. 우리는 프로그래머로서 본질적으로 자동화된 환경에 살고 있습니다. 그러나 쉽게 자동화할수 있는 하찮고 따분한 일들을 수동으로 하는것들을 종종 목격할수 있습니다. 보세요, 인간은 실수를 하고 기계보다 신뢰성이 떨어지고 하고있는일이 지루하고 중요하지않으면 더더욱 실수하기 쉽습니다. 가능하면 많은일들을 자동화 하세요. 예를 들면 어플리케이션 빌드를 한번의 클릭으로 수행하는것입니다 기계가 더빨리 실수없이 할수있는 작업에 신경과 에너지를 낭비하지 마세요.

최대의 성과를 위해 “작업”과 “놀이”를 병행하세요.

작업을 실제로 어떻게 진행할지에 대해 얘기할 시간입니다 . 제안하고 싶은건 정해진 시간을 “업무”와 “휴식” 또는 “놀이”로 분할하여 표시하는것입니다.

예를 들면 45분동안 쉼없이 방해없이 특정한 업무에 집중하고 15분은 웹서핑이나 SNS 또는 최신의 Java Code Geeks 기사를 읽는다던지 할 수 있습니다. 그리고 휴식시간 동안은 스크린을 쳐다보지 말고 몸을 좀 움직이세요. 정말이지 앉아만 있으면 몸 상합니다. 일어나서 좀 걸으세요.

놀이 시간은 긴 시간의 업무를 수행한 것에 대한 보상입니다. 우리의 마음은 불가사의한 존재 입니다. 하지만 이러한 보상체계를 사용하면 보다 많은 업무를 완수 할 수 있고 재미도 있을것이라고 장담합니다.

시간을 분배할 수 있도록 기술적인 도움이 되는 타이머 앱들이 있고 Pomodoro technique을 가지고 실험 해볼수 있습니다

모두 다 필기해놓기

여기서 말하는것은 모든것을 필기하는 습관입니다. 새로운 아이디어나 당면한 문제를 해결하기 위한 새로운 접근법이나 내일 내야할 고지서라든지요. 두뇌의 역량을 “기억하는데” 사용하지말고 완수하여야 할 업무에 집중하도록 하는것입니다 당신의 두뇌를 CPU라고 생각해보시죠. “할일”이라는것은 백그라운드의 프로세스를 실행시키는것과 비슷합니다. [자꾸 일을 더하면] 결국은 멈추거나 제대로 작동하지 않습니다. 필기를 하는것은 두뇌의 일을 덜어주어 최적화상태로 동작할수 있게 해줍니다. 생각들에 대해 따로 따로 목록을 만들고 분류합니다. 목록의 제목으로 “잠재적 프로젝트”, “구입할것들”, “개발” 등등으로 붙힙니다 그러면 나중에 빨리 찾아볼수 있습니다.

몰입상태 활용하기

가장 중요한 것입니다. 이것이 바로 위에 언급한 팁들을 적용해서 얻고자 하는 것입니다. 다들 코딩을 할때 “몰입상태”에 빠져드는 것을 경험해보셨을 것입니다. 마음이 완전히 몰두된 상태여서 특정업무나 문제에 빠져들어 시간 가는줄도 모르는 상태입니다. 코딩하고 코딩하고 코딩만 머릿속에 있습니다. 외부자극은 두뇌에 전달되지 않고 당신과 당신이 몰두하는 IDE만 존재합니다. 감히 말하건데 80%의 업무 완수는 이런 몰입상태에서 이루어질것입니다. 이 글도 그런 상태에서 쓰고 있습니다.

결국 중요한것은 몰입상태에 쉽게 들어가고 그 상태를 가능한 오래 유지하는 상황을 만드는것입니다. 몰입 상태는, 우리의 두뇌가 작업에 최적화 되어 생산성을 극대화할수 있는 상태입니다. 저는 몰입상태에 빠져드는것을 좋아하고 여러분들도 좋아할것입니다 그러니 몰입상태에 빠져들수있도록 하는것이 좋겠죠?

다 말씀드렸습니다. 시간을 잘 활용하기 위한 몇개의 팁들 이였습니다. 부디 단시간(1-2주 정도) 시도해보고 어떻게 진행됐는지 알려 주세요. 이메일을 보내도 좋습니다. 기꺼운 마음으로 읽겠습니다! 그리고 언제나 처럼 공유하세요. 만일 저 팁들이 도움이 된다면 동료들과 공유하세요. 우리의 작업환경을 좀 더 최적화 합시다. (역주: 얼래 공유 알림 또 가겠군요 ㅋ)

편집 게시물 신고 삭제 publish 링크

게시 2013-07-24 11:14:53 +0900

Dev10의 그라바타 이미지


회의란 회사나 큰조직에서 습관적으로 행하는 중독적이고 매우 자기만족적인 행위다. 회사에서 사람들이 자위행위 대신 회의를 하는 것이라 볼 수도 있다. -데이브베리 좋은데요~

niconi ( 2013-09-27 19:00:10 +0900 )편집


질문: 2013-07-24 11:07:28 +0900

읽음: 3,154 시간

마지막 업데이트: Sep 04 '13