Outsourcing · Web Development

How to design milestones for a web development project when outsourcing?

Daniel Schmidt

June 24th, 2015

We are creating an interpretation e-commerce platform initially aimed at the Chinese market. We are in the process of interviewing applicants to help us create this but do not have the technical ability ourselves. (We are on the lookout for a CTO but have not found the right person yet).


My question is: What are realistic milestones which we can base payment upon completion of?

If you need more details please let me know.
A great idea is 1% of the work. Execution is the other 99%. In this course, we’ll teach you how to conduct market analysis, create an MVP and pivot (if needed), launch your business, survey customers, iterate your product/service based on feedback, and gain traction quickly.

Alistair Davidson Eclicktick Consulting

June 24th, 2015

Unless you have a relatively small project, I think an agile approach would be your best bet. Rather than define the full project up front, you would be better off with a continuous development model run on a scrum basis (e.g. with deliverables every two weeks) The advantage of this approach is that you have frequent review of what has been done and an early opportunity to revise the project. Rather than seek a team that claims to have done web projects, you would probably be better with a team with continuous release experience (i.e. scrum). With scrum you prioritize what is important, agree on its delivery for each two week cycle or sprint. Then in the next sprint, you would move to the next most important set of releases, but only after showing users what was produced in the first sprint. With a web project, what you probably want to avoid is spending all your budget up front before you really know how customers will interact with it. Alistair Davidson Alistair Davidson Eclicktick Consulting 100 N. Whisman Road, Suite 2213 Mountain View, CA 94043 Unified communications number: +1-650-450-9011 (rings all my phones) Mobile: +1-650-868-5588 Business: +1-650-450-9011 or +1-650-206-5770 Skype: alistairdavidson E-mail: alistair@eclicktick.com Blog: alistairdavidson.blogspot.com Twitter: @alistairdavidso Linkedin: http://www.linkedin.com/in/alistairdavidsoneclicktick Amazon.com author page: amazon.com/author/alistairdavidson Latest books: Innovation Zeitgeist, Digital Virtues and Memes Contributing Editor, Strategy & Leadership magazine http://www.strategyandleadership.com Certifications: Certified Scrum Master, Scrum Product Owner, Ensighten Certified Professional Manage

Ivan Latysh Director of Technology at Sapient Nitro

June 24th, 2015

I would say, do not start development until you establish technology governance in the company.
You are correct for looking for CTO. He will be responsible for establishing technology roadmap, development, security and QA practices, conducting code reviews, etc.

Ming Tsui

June 24th, 2015

Watch out for scams.

Mary Baum Digital consultant and web developer to the tennis industry. Standard on WordPress and the Genesis Framework.

July 1st, 2015

Your CTO doesn't have to be a him.

The current development lead for all of WordPress is named Helen Hou-Sandi.

Madra David

June 24th, 2015

Hello
You have not specified If you are hiring locally or remotely , the advise I am going to give is mainly applicable if you are hiring remotely.
I am a Freelance Software developer, I do have done a lot of remote consultancy work and  I have found that the best way to do this is to set weekly milestones , break things down into small chunks that you can go over at the end of every week, this way you get to watch the Project `grow` and the communication between you and the developer(s) remains constant and onpoint.
Most projects fail because mis-communication between the business end and the developer end  .
So break the project down into small chunks that can be implemented weekly , have constant communication so that you are both on the same page this way you will spot any friction ,miscommunication and errors really quickly

Daniel Schmidt

June 24th, 2015

Yes, we are working through the process of getting a technical adviser on-board and ideally we will have some input from him next week.

Marc Rowen

June 25th, 2015

Agree Agile is usually the way to go if done well. Would just caution if your existing team is not at least somewhat technical, and the product is at all complex, it will be hard to gauge progress well early on. 

Agile projects and scrums are not magic bullets. Agile will move things better than traditional methods (IMO), but movement is not always equal to progress.

Sam McAfee Building Popup Incubators for Corporate Innovation Programs

June 25th, 2015

I would also explicitly avoid structuring compensation based on milestones. It creates a set of conflicting incentives between parties. You want them to produce the milestone as quickly as possible, and they want to get to the milestone by doing as little as possible. It would be much better to arrange a structure where you pay a steady rate for time and materials, much as you would a staff, but that you have regular, agile check-ins on progress as Alistair suggested. I would go weekly, myself. You don't want to set up a situation where you're arguing about whether or not a particular milestone was completed or not, based on some spec. That gets ugly fast. Decouple the compensation question entirely from the specifics of the output, and use some other process (like sprints, etc.) to stay on top of the speed and quality of output.

Sushmita Chatterjee

July 2nd, 2015

I have been working as a EA , solution architect in my previous roles and there is no magic bullet answer .
Inspite of my extensive technical expertise and outsourcing experience for large project , I burnt my fingers when I was hiring freelancers for my own very early startup . Here are some of my lessons learned
1) In Agile/ Scrum/ Kanban - whatever methodology we choose , we need some concrete use cases to startup which may be defined even at a non tech level
2) The development landscape is important . I am working with a technical area 3D and VR that I have never worked before . So you need to tap in to expertise via knowledge or shared experiences via Internet or ex colleagues on the correct architecture to choose especially with plethora of tools and frameworks . To some extent if you not aware of some of the pitfalls of existing technology you may end up not choosing the right fit solution.
3) I chose milestone based delivery with well defined feature as the technology being new , T&M did not seem feasible . However after a initial milestone delivery freelancer failed to deliver when more advanced features were required.
I have a new freelancer person now , with whom I am working at a slower pace and he has the right skills to think out of the box , not just in development but design too , as I have just started on the prototype . Some things as planned out may not work and be ready for trade offs 

Russ Gilbert Founder & Managing Director at Blue Sun Media

July 1st, 2015

For outsourced companies it's imperative that you have extremely clear requirements and milestones.  While the hourly rate is generally lower I've seen many, many outsourced projects go off the rails, and in fact I get called in a lot of the time to clean them up.

In terms of structuring the project:

1) You need someone who understands technology and someone who understands how to manage development projects.  That can be the same individual or two, but if it's two they need to get along and work well together.

2) You should have the product as well defined as possible in terms of processes and visuals.  Ideally you even have a database schema designed as well as wireframes if not complete designs.  If you don't have  a tech lead or CTO, I'd recommend working with someone local to produce these vs. trying to offshore them.  

3) You should have a weekly call to go over deliverables and show progress.  Breaking everything into weekly increments is a great way to make sure you all understand what's being done as well.

As far as the business side of things, there are the three approaches I've tried personally and I've had the most luck with the third, the worst luck with the second.

1) Deposit up front, balance on milestone delivery - This can work, but it can create the dynamic someone mentioned above as the developers will start cutting corners once it delays the check.

2) Retainer - set amount each week or month - DO NOT DO THIS.  It makes the incentive to draw out the project as long as possible.  Some indian companies I've seen even pay per line of code which is just awful.

3) No deposit, set a weekly payout amount with "balance" on the milestone.   This keeps the client engaged but keeps them from cutting corners still provides incentive at the delivery point.  Additionally, weeks where they don't deliver anything or miss your scheduled call means no retainer.  

The other thing you can do with Item 3 is have any timeline slip start to come out of the "final" payment.  The advantage here is that if things aren't going well at a certain, you can cut your losses.

Hope this helps!