This is a good question, and one that I see many, many businesses struggle with.
Everybody has different circumstances, but if you find yourself needing to fire people so often that morale is an issue, my guess is that your screening process is lacking in some way. I would definitely spend some time thinking about what traits your failed employees have in common, and see if you can't iterate on your hiring process to try to find candidates who are better matches.
With that said, the best morale boosters in a chaotic workplace are honesty and transparency with your employees.
Without knowing more about your business, some things to think about:
- Set clear, measurable, realistic performance metrics with your employees. Being realistic is important here; employees should be motivated to aim as high as possible, but should also not feel like they are consistently struggling to meet some impossible expectation, with the threat of termination looming over them.
- Make sure that new hires understand your business climate, and that you simply do not have room for people who cannot perform. Again, as part of your hiring process, make sure that potential hires understand what will be expected of them, how they will be measured, and what will happen if they don't meet those expectations.
- If an employee is not meeting expectations, be immediately honest with that person. Make sure they understand what areas they are failing in, and what they need to do to remedy those failures. Do not rely on an "annual performance review" or some other cycle to communicate your expectations to employees; your business is young and moving quickly, so move quickly with your employees as well.
- If your gut feeling is that even with improvement, an employee is not going to work out in the long run, be honest with them about it. In the past I have sat down with somebody and said something to the effect of: "You are not meeting expectations in areas X, Y, and Z. We can try to improve those areas over the next 3-4 weeks and re-evaluate, or, we can give you a few weeks severance today." This gives them a reasonable choice and gives you an easy out if they elect to stay but do not improve.
- If you get to the point that you need to fire somebody, again, be as up front as possible, both with the employee and with the rest of your staff, particularly those who are in the same functional areas as that employee. Tell the employee why they are being let go. If you can afford it, offer terminated employees some small severance package, even if it's just two weeks pay or something similar (consider this an investment in morale; in a small company, it is important -- word travels fast). Once the employee has left, immediately meet with those in his/her functional area (e.g. sales, engineering, customer service, whatever) and explain why the decision was made, re-iterate your goals for that team, and communicate how you are replacing that role. Ask your employees for feedback -- don't make it seem like you made the decision on a whim.
- Generally speaking, listen to your staff. Hold regular, short meetings with your staff to re-state the company mission, to review successes and failures, and so on. Make everybody feel like they are a part of the team, but don't go overboard. The average employee doesn't need to hear about a particular software release, product decision, or contract signing, but, letting them know basic information about how the business is doing helps them feel connected, which in turn increases motivation and (hopefully) productivity. Invite employees to give you feedback on how YOU (or your management team) are doing.
These aren't necessarily HR best practices, but a small company environment can be quite different from a large one. If you are turning over a high percentage of your staff, morale problems are a huge concern, especially with a small staff. Treat your employees with honesty and respect, and they will appreciate you for it, even as you make changes.