Article background

This article is the result of the mistakes that I made when doing projects. I’d like to share them with you, so you won’t repeat them. In my career, I had the honour to do 5 projects as solopreneur. This means that I was responsible for the project from it’s beginning till delivery.  During those projects, I did some mistakes that I want to write about. Those were only my fault – no one else to blame. If only I knew what I need to ask myself before starting an IT project…

Introduction

Let’s assume you’ve read all “management” articles. You know the scope of a project. Both timeline and Gant charts were sent. You know who will be on the team. The client agreed for your hourly rate and payments are secured. You thought about everything they wrote about in “how to start project” articles.
Now you are asking yourself a question: is there anything else I should cover?
From my perspective, starting an IT project requires asking more questions. What’s more, I would say that starting all projects requires more question. Let’s take a close look what those are

Don’t rush

Often it happens, that when we start something new we rush. New Lego bricks? I need to build them after I get home! New phone? I will open it right in my car on my way home. New project? Let’s start it as soon as possible! Why do we rush? Let’s slow down.
“Don’t rush” – this is my first principle when I start something new. I know that clients need to have everything “ASAP” and they would like it to be doneyesterday“. Hey! We can’t do everything like this.
Take a step back. Calm down. Check your list. See if you did everything. Answer yourselft a questions: am I good to proceed?.
We need to get it done, we will handle put-anything-in-here later” – this never ends well. So I recommend you: don’t rush. Take your time when starting a new IT project and check if you covered everything.
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?

If you are helping someone with IT project then it probably means that they want to earn money out of it. Depending on a country you live in, you need to take legal actions to cover this subject. I ain’t a lawyer to tell you what should you do. Especially that this is country-specific. Let me put it this way: talk to your lawyer. He/she knows best what you should do.

Do they want to own the code?

During my career, I noticed that clients tend to think that they have full access to the work they ordered. Before starting a new project, think about passing source codes. Do you sell the “product” or do you also sell it’s source code? If you don’t want your client to have access to the code, you need to communicate it before starting an IT project. If you want to charge extra for source code, tell it at the beginning. Be transparent.
If you sell the code, remember that you might not have the rights to reuse it in different projects (talk to your lawyer!). Maybe you should consider putting useful code in the package?
For sure you need handle it in advance and tell your clients what they can expect at the end.

Do they want to control repositories?

This is a minor thing but it can go nasty if you don’t asnwer it before starting IT project. “Who is the owner of repository?”. From my experience, this is a small thing. It’s so small we don’t even think about it. Trust me, it can be confusing. Migrating repository in the middle of project is something you don’t want to to.

Who will be controling needed accounts?

Often, building IT solutions requires plenty of different “accounts”. Let’s take for an example building a mobile app. Building and publishing small app requires access to the following:
  1. Repository and tasks board
  2. GooglePlay account (deploy Android app to GooglePlay)Apple Developer account (deploy iOs app to AppStore)
  3. Access to AWS/Azure/wherever-you-host-your-api
… and more accounts depending what you use.
If they don’t want to own eg. AWS account then it’s fine. But how will you handle costs? Are you going to invoice them every month based on usage? Do you want to to that?
From my experience, this is one of the most complicated questions as it is coupled with others. If they want to be in charge of the server, it doesn’t make sense not to give them code. It is your role as a professional developer to explain to your client why is that.

What about a warranty?

The last question is to cover your future. Do you want to give some kind of warranty? If yes, what is the scope of it? Is it free? Can I say that this is not how I wanted it to be and change it? Where is the limit? When are you going to say “stop”?
This is something that you need to cover. For your own sake.
Remember this is business. At some point, you will meet people that will try to take advantage of your kindness. They will say “it’s a bug” when the truth would be it’s a change request. Think about it an advance.

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?

As I’ve stated at the begining, this is an article was written because of all fuckups I did. I didn’t answer all those questions and it led to problems.
I can tell you what is on my “before starting an IT project” checklist.
  1. 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?
  2. 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).
  3. 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.
  4. 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.
  5. 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.

Afterword

When Googling “before starting an IT project” I didn’t find any article covering such topic. Everything was from the managment point of view. Let me put it clear: you need to also read those. No way you can proceed without that knowledge. I hope that having knowledge from those articles and mine will result in a checklist what you need to do before starting an IT project.
On the other hand, if you have more inights how starting an IT projects looks like, please leave a comment or send me an email. I will be more then happy to learn something new from you my dear reader 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *