Aug 9, 2010
How to deal with overwhelming problems/goals
It’s common in life to encounter problems that are a) really big, b) difficult to understand or c) a brand new area that you’ve never encountered before. In areas like software development, developers are always dealing with new domains that are totally different than what they’ve seen before. In my years of experience, I’m still finding new techniques but here are some that I’ve found helpful:
- Don’t let the helplessness set in – It’s so easy to look at the problem at absolutely melt into the ground and slip away with a heavy heart. Don’t let this happen! If you’re put in this position to fix this problem, someone has confidence you can fix it. If you’ve brought this on yourself, that’s okay too! Look at previous insane things you’ve wrestled into submission. If this problem SIGNIFICANTLY more difficult? Probably not. So take heart! You can do this.
- Get some help. Introverts typically do really well sorting through things by taking time to just think them through. Extroverts (as in my case) typically need an external source to help them sort it out. If I know someone who knows this domain well, I’ll call them up or meet for coffee and get their take on the problem. Ask questions like: “have you had this type of problem before?”, “How would you approach this problem?”, or if you’re really stuck: “What should I do?”
- Write down the core of the problem – When your brain is trying to get a handle on the problem, it is going through all the hypothetical situations and is going a mile a minute trying to figure it out. Instead, try writing down the problem in one line. When you do that, magically you’ve been able to contain the entire problem into those couple of words. It is now “bounded”. From there you can try this second technique:
- Breakup and isolate the problems – For most problems, you can break them up into smaller chunks. This helps you take a very abstract, pie-in-the-sky idea and make it into very actionable and concrete problems. Examples: “Find a better job within 6 months” can be turned into something not nearly as scary:
- Think of jobs I would like
- Talk to friends who have cool jobs and find out what they did to get them
- Find a local meetup for people interested in this area
- Purchase a book on amazon about that job
- Find out the education or experience needed to get that job
- Set realistic and attainable goals – If you plan to fix the world today, you may be disappointed by the time your heads hits the pillow. Instead in the morning, think of one thing that will contribute (even in a small way) to achieving your goal. The other really positive reason is that reaching your goals gives a surge of energy that will propel you forward towards your next goal. Instead of “build this application that everyone would love” it could be “create this <small> feature and tell a friend to get their feedback”.
- Work in fixed time periods with deep focus – It is harder than ever to stay focused on the task at hand. It’s so much easier to check facebook and your favorite blog than to do hard work. Since I’m sure you didn’t know this (kidding), you’re now without excuse. Try some of the strategies to rebuild your focus on Lifehacker here. Personally, I use the Pomodoro technique and the time located at tomatoi.st
- Don’t avoid the hard parts – Following the last point, start with the hard parts first and when you have the most energy. Otherwise, are you actually going to tackle the issues towards the end of the day? I didn’t think so..
- Dive in and just start – I have found that poking around into the core of the problem and seeing how stuff works (breaking the code in the software case) is the best way to actually understand how I could fix the problem.
If you have other tips, I’d love hear them.