Prototype vs full solution

I hear that the prototype is expensive, because we must do more work. I don't agree with it, because this is the way, when we invest our time to get better project on small time. I will explain it in this post.

The example

We need to create some functionality to implementation, so example CRUD for managing money and some diagrams. The client doesn't know what it wants and how it works.

The full solution way

I think this is very simple to resolve. We prepare project and tasks which we need to implement. We think about a lot of solutions. What can be wrong? What happened? How the users will use it? Prepared solution is described as tasks. Tasks are estimated. This gets our 2 weeks.

Ok, we have the solution, so go to implementation. During implementation, we have a problem with transactions, because we wake up that the clients will be more than 100. This bug we repair after one week. The implementation is done after 2 weeks.

We give a solution to a client and it will be unhappy. This is not what he wants, but it is usable, so the client doesn't invest more money to this project.

We invest 4 weeks to implement our simple project. This is very cheap, but the client is not happy.

The prototype

We prepare the simple application with bugs and simple UI for clients. CRUD we create from tutorial without transactions and other features. We finished it in one week.

We give this application to our clients. They started use and report a lot of bugs and what they need. We will repair it after 4 weeks. During this we add transactions, because they need it, but we don't add any unnecessary features. We add some improvement, which clients want.

We invest 5 weeks to implement our simple project, but clients are very happy and this program is fit for their problem.

Additionaly, we have a good relations with clients. Maybe next time, they will want to create a new project.

Compare

These stories are a little stretched, but I think we can imagine it. I want to show you my mind when I think about prototype and full solution.

Time is often better for the full solution. Why? Because we can make a plan for it, we will create this application with our knowledge and often similar to our previous projects. The prototype is always unknown what will happen. After prototype often we must create an application from the beginning, but with more requirements (theoretically, we should do it). This is not wasting time, I think this is investment.

Secondary measure is client satisfaction. Fast delivery is what the clients want, but when we give them a bugged application, they can don't trust us. We must prepare our clients for that it is prototype for them, but we have a feedback on early moments of projects. When we give them our projects and technical requirements, they often don't understand it.

The prototype can be a trap. During use this way we must be transparent. The clients should know about it that we deliver this functionality, but something doesn't work. We shouldn't paint the grass in green. When we give him a solution and we don't tell him about the weakness, they don't know what we will do on next time. If the client finds a known problem, they can say "this solution is not working, because we can't do...". Frustration is raised.

Prototyping

I show you stories for developers. We can prepare a working prototype of application in short time, but the faster solutions exist. We can prepare only process prototype and show our clients. We can create an imaginary user and show our clients how it will work. We can prepare dummy UI. These actions are very short. We can do it maybe on one day. It depends on the complexity of the problem. I think this is a very cheap investment with good profit.

Comments

Popular posts from this blog

Why TDD is bad practice?

How correctly imitate dependencies?

Software development using Angular 5 with Spring Boot