Depending on your situation, you may be taking up side work for extra cash and fun (like me), or you might be doing it because you really need the income. If you are doing it because you need the money, then this article really won't apply. This was written from the position of being able to say "no thanks" to a project if it doesn't appeal to you.
Typically, I won't go actively seeking side work unless I need the money for an upcoming purchase or if I am bored and need something productive to do. I get pinged for work a few times a month on average, and in the past I would jump on any opportunity to work and learn. After a very sour experience with one of my first side projects, I realized that I needed to step back and really consider everything before accepting new projects in the future. Otherwise, it can often be a nightmare to deal with, and that's the exact opposite of what I want when I am seeking work for fun. If it's not fun anymore, why do it?
There are two different aspects of evaluating projects before taking them on. The first is the project's technical details and logistics, the second is the client(s) and their interactions. Deciding a project based on the first factor is pretty easy. If the work sounds fun and you think you can meet the schedule, then go for it. It's an added bonus when the pay is good. The other factor is the one I want to dive into more.
That first project that left me jaded was for a website that I won't disclose here, but needless to say it was a dating site for a very specific group of people. When I first emailed to inquire about the project, I got a response that included bad grammar, poor spelling, and often all capitals for sentences at a time. Today, this would be an automatic clue to let it go because communication is such a critical part of working with someone for these projects. Often the lure of money will let us tolerate and ignore these issues, but everyone has a limit.
Virtually every email I got was riddled with poor English and bad etiquette, so we tried a phone conversation at one point. I could barely hear or understand the person on the other end because of their accent and voice, so communication via phone was out. I want to pause right here to say I have nothing against people who are not natural English speakers and working with them. I work with individuals like that on a daily basis in my primary job and I have taken on side work with others who also struggle with English. The problem isn't really their accent or their grammar, it's more their willingness to try to be clear and use what tools they are best at to their advantage. There is no valid reason for typing in all capitals.
So in addition to very difficult communication, there was often the feeling of pulling teeth about receiving payment and explaining what sort of functionality I could provide. The site already existed before I began working and it was terrrrrribly written. It was a single Perl file with 5000 lines or so and NO COMMENTING! That should have been my second clue that this was a bad project to accept. I started doing small features, but it progressed into bigger overhauls that really would have been easier if I had just started from scratch with the whole site. At some point I actually said I was no longer interested in working with him and he started getting very persistent. He even offered more money. In the end I came back and it was a terrible experience again so we parted ways on bad terms.
It's important to know when to cut your losses and call it quits. I far exceeded that point. In addition, the warning signs that I ignored before even getting started were very obvious. I believe very firmly in going with your gut feelings. If something just doesn't jive well with you there is probably a reason for that and it should be given sufficient weight. A job is a job, but nothing says it has to be a bad experience. These days I pick my clients just as much as they pick me. I am up front about what services I can provide and am very honest about what I can and cannot do. If I am not completely interested in a project or comfortable with the client, I pass on it before going further. In the end, it is to the benefit of both parties if a bad relationship is prevented from beginning. I hope my advice proves useful to you if you're in the same boat as me. Happy coding!