Don’t get me wrong! I am not saying you should procrastinate. Hell now! Be professional, don’t take shortcuts because someone tell you to do it.
How do I handle copyrights?
Do they want to own the code?
Do they want to control repositories?
Who will be controling needed accounts?
- Repository and tasks board
- GooglePlay account (deploy Android app to GooglePlay)Apple Developer account (deploy iOs app to AppStore)
- Access to AWS/Azure/wherever-you-host-your-api
What about a warranty?
How will you communicate?
Projects is a close collaboration between you and your client. Probably once a week you will have status call, you will have to specify the UI of the app and much more. How do you want to establish communication? Is client ok to join your slack? Would he prefer phone calls or Slack/Teams/Zoom/Hangout/whatever meetings? What about emails?
For sure, you need answers for those before you begin the project.
What are the possible bottlenecks?
Knowing the scope of the project, you have general overview how it will look like. Now, please take a step back and check if you have all needed assets to do it? Try fidning possible bottlnecks that may slow you down. If the project you are starting, gets delayed then the next one is going to start later. The next one too. If something goes wrong you will have domino effect. What’s more those doesn’t need to be projects. Maybe you want to go for a vacation or your child is going to be born. For sure there is something that doesn’t allow you to be late with this new project. If something goes not as planned then you might need to adjust other plans. Are you willing to do it?
Let’s take a look at UI/UX for example. Is the designer on the client’s side? When will we get image resources? How is he going to export them? Do we want vectors or png files? The list goes on. It’s only UI/UX.
Then you have something like buisness decisions. Who’s gonna make them? How can I contact him/her? What if he doesn’t reply?
For sure you want to get the project running as smooth as possible. Try figuring out all possible obstacles that you may face. Have them covered in advance. Of course it’s not possible to cover everything. At least you can do you best and think about common cases. You might thank me later.
What do I do?
- I give clients exploitation rights. It does make sense not to do it. You aren’t going to use their product anyway, so why not?
- The client owns the code. If I know, that there is a small chance, I would like to reuse the code in future, I put it in a separate library. Of course, client is not paying for such work. I do it “in my spare time” and I am not charging for such work (I don’t do fixed price projects).
- Repositories by default are mine. This can be changed on client’s request. But I make it clear from the beggning that if they want to change it, they need to say it.
- I convince the client to be the accounts holder. I don’t want to cover payments for the accounts after the project finishes. Having a small project hosted on AWS/Azure can cost few euros monthly. It’s not much. Now, please multiply it by 20 different projects that I can have. The cost grows. I don’t want that. That was one reason. Another reason it that that having both the code and the accounts access places the client in charge. If they are not satisfied with my work, they can go and ask another company to do it for them. Without accounts, there is not much they can do.
- There is one more thing that I didn’t write above. Recently, I started informing my clients that I might write blogpost about the work done in their project. I believe this is something they need to be aware of in advance.