My technical cofounder (a software development company) does not want to explain the code to me and allow me to modify it myself and work closely with the development team as one of them even though I’m the founder and have 7 years programming experience, claiming this will waste time. Is this normal?
A "software development company" is NOT a "technical cofounder".
If you're paying them money, you have every right to participate any way that you want. If they don't like what you want to do, they're free to work for/with someone else. Yes, even if it wastes time. (Of course, they get to charge you for time wasted.)
That said, is playing with the code the best use of your time?
If you need to get into the weeds, you've hired the wrong company OR you don't know how to explain the problem to them. Either way, getting into the weeds does not solve the root problem.
If you want to get into the weeds, you're not CEO material. You don't know how to delegate and you don't know how to manage your time.
No, It shouldn't be. If you have the knowledge and the curiosity to understand the code I don't see any reason for not helping you. That said, the development process is important and if you want to help you would need to understand it and be part of it when coding (code review, pr, style practices, etc).
First, the source code should be in the posses of the company. I can not tell you how many times we had to start over on the code because the company did have/own the source code. Make sure you have and own the source code. Are you sure the company owns the source code?
Second, it is important to have clear roles and responsibilities. One person (and not more than one) should own the product requirements (usually called the product manager) and another person should own developing the product. The person who's role and responsibility it is gets to make the decision of how/what is done, and also owns the result - you do measure results, correct? If they don't want you to write code, and you do anyway, then you now own the results, not them - they are just doing what you told them to do, and you own the result - can't have it both ways.
Not having clear roles and responsibilities is one of the 7 deadly sins of a startup. I encourage you to explore this idea more - we have several blogs on this idea on our website you can read.
May I ask, why you like to modify code while a team is working on it?
Although, as a cofounder / owner, you should have complete access of code repository and all documents that explains it.
You do not state what your agreed role is or your area of responsibility.
If you are the CTO, then yes, you should be able to review and work on the code. Do not be surprised when your tech co-founder leaves, however. Only one of you can drive the bus. It also implies a lack of trust. However, a CTO that writes code is not a CTO, they are an engineer. In the beginning this may be more fluid, but as you stand up an organization, these roles must be separate.
If you are (you have not stated) in a different role, then no, leave your tech co-founder to execute on their tasks and you concentrate on your tasks. It is why there is a team.