Context:
I am currently part of a small group of students/professionals which is attempting to build a startup. We are in the early stages, MVP development and validation, but not yet incorporated.
Originally, when conforming the team and assigning the tasks and roles, I took over the technical aspects, including the server setup, database administration, and software development (both front & back-end). We are now more than half a year in, and all we have from a technical standpoint was put together single-handedly by me.
Problem:
Another member of the team keeps asking for me to "share my code", "give him access", and to "let him tinker with it". It should be noted that although this colleague has a technical background, he steered away from the technical tasks during the role assignment, and is now responsible for an entirely different area. Moreover, he has up until now not been involved on any level in the development process.
To better illustrate his usual requests with an example, during our latest exchange, he brought up the request with the following motivation: "I've got some ideas to add to our project and I would like to tinker with it. I also want to add this skill to my CV. Could you [make the code available] so that I can add a few bits here and there aswell?"
Argument Summary
I am able to see see both sides of the conundrum and realize that this is a somewhat common dispute. I'll try to summarize the main arguments for and against this request:
On the one side, sharing and opening access to the code might make sense when considering that:
Team mentality: The project is a group endeavor, and hence it makes sense to share all of its aspects, resources and developments with the group.
Growth: As the project grows, it is unlikely that it will be manageable by a sole developer, hence it will eventually need to be opened up.
Dynamics: We have been working together for some time now, and intend to keep doing so until this project hopefully becomes a business. Hence, maintaining good dynamics and team-relationships seems like the preferable way to go, and rejecting his request will likely sour said dynamics.
On the other side, granting access to my code at this stage seems risky, and I am wary of doing so given that:
Lack of agreements: There are no formal agreements in the group yet. That is, no shareholder agreement, no intellectual property agreement, no binding contracts, no schemas for future compensation based on initial contributions, and so on. Hence the lines defining ownership and credit are somewhat blurry, and given past experiences, yielding my work willingly under such circumstances would be unwise.
Credit: The technical aspects of the project has always been my responsibility, and hence my work and relevance in the project are easy to substantiate. This will hopefully eventually translate into weight when negotiating the shareholder agreements / remunerations. Giving away the code would undermining my relevance and would make a new way of attributing credit necessary.
Unnecessary overhead: Having to manage the "tinkering" and potential version control issues induced by a new developer who has little to no knowledge of the project's technicalities, with no pressing need for it at this stage, would add an unjustified burden and a time overhead to my workflow.
Honesty and legitimacy: The development of what we now have required a substantial investment of time and effort. Giving access to another developer to chip in "some cool ideas" to be able to claim having "co-developed" the project on his resume seems dishonest, and in my opinion takes away from the seriousness and legitimacy of what I have built.
Role Conflict: As the "CTO"/"Lead Developer" of the project, I should have some say in who enters the development flow of the project, and in which capacity. This is being trumped over by the fact of the other person also being a "founder".
Personality Clash: A more subjective argument is a simple personality mismatch. This teammate and I have on previous occasions clashed on how certain aspects of the project should have been carried out, and the results have almost always been "his way or his way". This, in my opinion would be mayhem in a development environment, and would severely impair my decision making capability as a lead developer.
Questions
I hope this is not too abstract and that perhaps some of you can offer some advice on how to more forward. In order to make my doubts more tangible, I have written down some concrete questions:
Is granting access to critical source-code for others to "tinker with" common in informal startup scenarios?
How can a main developer maintain control over his work and protect his relevance in a group/startup/company after opening it up to other developers, in settings where no contracts or formalities have yet been drawn?
Thank you in advance.