charls_Aws
Joined 8 years ago
Joined 8 years ago
Ordering a pizza as shown in the above example is very contrived, no one needs that, a GUI is much better to execute this use case. But the power of chatbots will light up if it can answer 'Would this pizza be too spicy?", "can you deliver this after 4pm?". What I mean is when the chatbots can take over more of customer queries which otherwise might be directed to the store via phone call. Or something which requires deep knowledge of the product and when not every corner case can be put on the GUI menu.
1: Break tasks into as small as you can, say a few hours to a day.
2: Add time estimates for writing the main code, writing tests, doing integration test and code reviews separately.
3: Also take into the account the time which might be wasted to unknowns, things which you know needs to be done but do not have much idea on how you would do that. One way to refine this would to be to talk to other developers who might have some experience doing this part of the task.
4: Account for 'unknown unknowns' these are the tasks which will show up but you can't really predict these upfront. Any software developer who has done commercial software can tell you that for every project 10-20% time is used in this which we did not even anticipate. These things always show up.
Now if you break down tasks into these parts, add up the time and then add a 'buffer' say 10-20% on it and give your estimate. I am sure you will face pressure to reduce estimates, but having a break up allows you to provide some support to the numbers you come up with.
Hope this helps.
I personally know a few friends who have wasted their prime years working in startups which never took off.