I am currently the project lead of an online volunteer run software project. I originally created this and work on it my in free time. There are also a few other people who took interest in this project and volunteered to help. I have never worked with other developers before. Currently, there is another developer volunteering to help program the project.
Before they were a developer, I knew them online since they took interest in the project. They did not have a lot of experience in software engineering, but they did know the programming language the project uses somewhat well. At this time, I was looking for another programmer to help speed up development, and told them that they could help code the project. I was hoping that despite their lack of experience, I would be able to get them up to speed with my guidance.
I was wrong.
This was two months ago, and by now I've realized that it will take a very long time for me to train them to become a fully competent developer. Currently, their skills simply aren't good enough for working on the project right now, and they need my assistance on completing almost every task. In retrospect, this might have been my fault since I miscalculated the amount of time I needed to train a new developer. I hope this does not sound unsympathetic, but from a purely business oriented perspective, the large amount of time I spend mentoring them is simply not worth the time I could otherwise be spending on the project itself.
I have considered that mentoring them is an investment, and eventually that they will have the skills to contribute to the project more efficiently. However, as it stands, I do this project for fun, after many responsibilities, so I really don't have the energy to teach someone every night when I get home. Mentoring takes the enjoyment out of the project for me. Besides, I plan on abandoning and/or finishing this project by the next 3 months, so it's worthless for me to make an investment in something I will abandon soon anyway.
Overall, it would be extremely beneficial for both me and the project to either remove them from the developer job, or reassign them to another role. However, this is awkward for three reasons:
They are a volunteer on this project. In fact, they showed enthusiasm for helping out, and I have a feeling they are very happy to be a developer. It's not the same as firing a paid worker, because they are sacrificing their relaxation and free time for this project. It would be very disrespectful to simply "fire" them.
They have already been a developer for about two months already. If I were to reject them for inexperience, I (normally) would have done this right away. As I mentioned earlier, I was not aware that their inexperience would interfere with the project this much.
I already knew this person online earlier, and they are a friend and also have been an enthusiastic supporter of this project. I don't want to burn any bridges.
Thanks in advance for any advice. I would rather work on my own currently without this other developer.
Note: I don't think this would apply to The Workplace, because they are a volunteer, and I am rather informal with the developer - in fact, I have mentioned that I am friends with them.
Similarly, I looked at this question about firing someone due to skills, but that is for a professional environment. As I mentioned in Awkwardness Reason #1, they are a volunteer and deserve some respect for sacrificing their valuable free time for this project.