Hacker News new | past | comments | ask | show | jobs | submit login

I've had the same problem for a while -- one of the down sides to running a business and being its sole software developer / sysadmin.

For software development specifically, you can change how you approach programming and find that it's possible to still make progress on software in 30 minute increments.

Practice thinking about your project throughout the day. Get the "big idea" stuff done while you're on the toilet, driving, taking a shower, getting lunch. Keeping the project "loaded" in your head helps to predict architectural issues, makes it easier to break the project down into smaller pieces, makes it easier to get started coding, and keeps you motivated to work on it.

Choose a list of small things that need to be done. Every project has them. Don't try to get the small thing done completely right the first time. For example, say my project needs to be able to read email headers. How should it go about that? (Think about that throughout the day.) It will need a function that reads a message and spits out the headers separate from the body. Write that, that's easy. Then it'll need a function that reads each line of the headers, and returns them as an array. Write that, that's easy. Then it'll need another function that takes each element of the headers array and splits them into label: value pairs. Write that, that's easy.

A nice side effect of this approach is that you end up with some very clean code. Each function does one thing, does it well, and its output feeds naturally into the input of the next function.

Build a library like this. If you only have 30 minutes at a time, your personal library of code is essential. Maintain and organize it. (That's another thing that can be done in 30 minute chunks.) Keep a notes file open in a tab in your IDE and do regular brain dumps to it. Write unit tests, or go back and do cleanup on a function that needs cleaning up.

Then, on a regular basis -- at least once a week, in my case -- retreat to a coffee shop or call up a buddy you have that's a writer, and set a "productivity day". The key is to get out of your regular environment and have another person with you. You each end up pushing the other to focus and be productive. Use this time to put all of your functions together, do some testing, and build scaffolding for the "big" parts of your project. My session about a week ago netted me almost 1,000 lines of added/deleted/modified code, according to Github.

It's a very different approach from the usual method of "sit down and bang it out for hours," but it works, and it helps to defeat all that mindset about flow that other programmers struggle with.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: