So my boss informed me earlier this week that my contract would not be renewed at the end of this month. I work as a software developer and the HR says that they are hiring an IT staff who would be doing all the system administration and also the software and coding duties (which is what I've been doing for the last 18 months). So I was served with a contract termination letter which states that I won't be renewed and that therefore my last working day would be the end of this month of April. What beats me is that as per the the job description of the incoming IT staff person, he doesn't posses those software coding skills and there could be a vacuum upon my absence. I don't know how to counter this as the decision for my termination has already been made and I'm in the midst of a crucial organisational project. How should I go about this? To counter and stay on till the project is done or just move on altogether?
You should move on
The first thing you should think about here is What are the reasons for the company deciding not to renew the contract?.
Since you already know that there is a -less skilled (?)- replacement, the most likely explanation is that the company just wants to save money; either because they think the remaining work of the project is not challenging enough to justify using your services or because - plain and simply - they don't want to continue developing the project and just need a different person to maintain it.
In any case, you are coming out of a relatively long contract - they know you, they know about your skills and how you work - so the fact that they didn't offered your an alternative project or any other solution is actually denoting that they don't need your services. And that should be the most important thing for you right now: The project responsibilities are not yours anymore - focus on the next step in your career instead.
Making your living as a contractor, you look for a new job and sign a contract soon to avoid running out of money. You have until the end of the month to avoid a payment gap.
Now you know there is a possibility that your current company will run into trouble when you are gone. If you don't have a new job at that time then it's up to you to exploit the situation to your best abilities. If you have a job at a time, then bad luck to the company.
The truth is this isn't your problem. It isn't your project, it belongs to your client. For whatever reason, they have decided to go on without you. You don't owe them anything beyond what you promised in the terms of your current contract. It's great you take such pride in your work and want to see it through, but your first priority needs to be about taking care of yourself.
What is your problem, is that you are about to be out of a job. So you need to fix that. Time to start looking for a new contract.
It is possible they don't realize how essential you are to the project or what is going to happen after you leave. Feel free to set up a meeting with the project manager make your case for why they should keep you on and what will happen to the project if they don't. Maybe they will extend your contract. But do this because you need a job, not because you owe it to them to finish the project. You only owe them what is in your contract. They may still turn you down, in which case you need to be prepared to walk away and look for your next contract elsewhere.
What they do after you are gone is for them to figure out. You need to figure out how to keep earning a paycheck.
kamiaga - many companies are very shortsighted. Your cost is (probably) greater than the less experienced person they are bringing in.
They have made their decision. It would be very unusual if you could stay on until after your contract is up in order complete a project. As your contract is expired you would risk doing without pay.
The best you can do is to leave good documentation for the next employee. Talk with your supervisor about a transition plan for the next employee (helpful if they start before you roll-off).
As most of the answers have noted, you need to try to line up a new job starting the first of the next month.
However, there's the question of what should you do at this job until then.
Did you get any guidance along with the non-renewal of the contract?
Is the crucial project you're working on scheduled to be done by the end of the month? Will it be?
If the project is on schedule and will be done before you leave, then work to finish the project.
However, since you mention it, I'm guessing that it won't be done by then. Hopefully, this is known to your current customer. If not, you need to have a tough conversation as soon as possible.
Again, I'm going to assume that the customer doesn't expect the project to be done. In that case, you need to know how they expect you to finish your time on it. If you're working on fairly independent pieces, then it may be more important to document where you're leaving off, any concerns you have, etc. than to plug through and try to get things working.
I would want to confirm what the customer's expectation is. It sounds like this customer doesn't have complaints about what you've done, other than perhaps the costs involved. Ethically, you want to end the relationship maintaining your personal standards of excellence. Also, you probably would like to be able to use this customer as a good reference. Making sure your activity and their expectations line up for this last month should help you achieve both goals.
Most of the above are good suggestions. I would simply like to add a great piece of advice I got from a colleague at one point during a particularly difficult time (thanks Russ!):
"If I'm going to get fired anyway, I might as well get fired for doing the right thing, as opposed to the wrong thing".
Be a professional, do your job, and start lining up other work ASAP. If your client finds out down the road that they made a mistake, you would have significant leverage. But don't count on it.