You probably know that consulting is a career option for web developers and it can be a lucrative one if you do it right. There's a bit of a subtlety that no one really tells you about when you get started, although it's kind of implied. When you're a consultant you can and probably will get thrown on multiple projects at the same time for completely different clients.
It's not unusual to bounce around on 4 - 5 projects in a 3 month period. Getting used to this kind of work load and doing it quickly is the key to your success as a consultant and I want to show you a few of those things.
Having two clients doing sprints within a few days of each other is stressful. You're rushed to get as much done as possible and both of them are "the most important". You have to keep yourself from getting overwhelmed and the way to do that is by creating your own prioritization system for really getting things done.
The first place to start is to compare the deadlines. If one deadline is further away than the other, work on the one that's due first. Another thing to you can do is talk to your clients. Most of the time they don't completely understand what goes into the development process and if their timeline is too short, tell them that.
Something else to consider is which project can you finish relatively fast versus which will take you time to research. Look at how much you need to finish alone versus what you can delegate to co-workers. Make sure you're able to explain your decision if the need arises.
Switching between code bases can take some time because you have to start thinking about something unrelated to what you've been working on for hours or days. Keeping a few notes on the stuff you have to adjust between projects will save you a lot of time. You might need to get on a different network to access a database and it would be helpful to have the steps to do that handy.
Certain projects run in different environments and you need to set them up a specific way. Your notes will guide you through the process every time you forget it. Personally, I still like to write things down so I always have a notebook with me. If you want more of a cloud-based thing then you probably know about OneNote or Evernote.
If you trust your memory it's ok to skip this. All I know is that I forget set up steps all the time and it gets really old asking people the same question over and over.
You might get stuck on your highest priority project and can't figure out what the problem is. Try to get something done on a different project when that happens. Switching to a different task will give you a chance to forget about the big problem while still getting work done.
Sometimes a different project will have a similar problem and you figure it out pretty easily. The good thing about switching through projects is that you get exposure to different issues fast. After you see the same bug a few times you start to know how to fix it. That's why you have to keep moving.
Of course if you hop to another project and you can't make a breakthrough with it, taking a break is fine. Step away from your computer and go stare out of a window. Give yourself a few minutes to let your mind wander somewhere else.
This is harder done than said, like most of the things in life. Everybody has a max capacity for how much work they can get finished and it not be garbage. Find your max and make sure that you never cross it more than once. Crossing it once won't kill you, but it will make you remember.
If management keeps trying to pile on more work you need to be able to explain why you can't do it at the moment. Make sure you can show them what you mean when you say you're at your max. Break down the projects and ask them what you should cut.
That way if they still decide to give you the work you have their approval to skip certain tasks for now. The goal of saying no is to keep yourself from being overly stressed not necessarily to avoid work. Learn how you can use "no" to keep your workload manageable.
Track those hours! Any work you do for a client should be billed to that particular client, not someone else. You don't have to do anything too intense. Just keep a few notes on what you were doing throughout the day so you can give them to your clients if they want to see the specifics.
Also, check your deadlines every morning and afternoon. Once you get into your groove, losing track of time gets easy. Being mindful of your time will help you decide how long to spend on each task before working on something else. The goal is to get a finished project to the client. They don't really care about the order you wrote the code in.
As a side note, make sure you plan some time to get up and move around. If you're in a time crunch it's nothing to sit at your desk for 5+ hours. That's not good for you. Spending those precious minutes to walk around or go get some water will not destroy a project.
Consulting work isn't for everyone and that's ok. It's not the only career option you have. Another thing to keep in mind is that you won't be working like this all the time. Sure you might be working at break-neck speeds for a few months. But the lull comes eventually and you'll end up on just one project or a project that's only going to take a few more days. It's wild out here.
Do you have any experience with consulting? I think it's a good way to get some really good experience really fast.
Hey! You should follow me on Twitter because reasons: https://twitter.com/FlippedCoding