I have 1 project under me and looks like we are ahead of time in this. We told client that the project will be completed in a month, and the developer completed it in 2 weeks. What should you do in this situation?
Start with a high-5 all around! :)
Meet with your customer. Let them know you think you've completed the feature and give them a demo. Ask them if it meets their acceptance criteria. My bet is the customer will have some tweaks or changes now that they have seen it. By circling back to them right away, you've got a chance these changes can be made without impacting the customer's final delivery date.
Frequent communication with the customer will ensure you are going in the right direction and allow for changes as reality intercedes.
And if you really are done, then celebrate. Success is something to be recognized.
7+1 for giving it back to the customer. It is rare that you build exactly what they wanted. Just because you think you've got it figured out, doesn't mean you do. And if you actually are done early, a demo like this gives them the chance to start to use it earlier, request additional features, or simply pay less than expected (if they are paying an hourly rate). Mar 2, 2012 at 21:43
Customer are not in the city. They are located away...– RG-3Mar 2, 2012 at 21:51
1WebEx! If nothing else, you tell them "We're done," and see what they want to do next. Mar 2, 2012 at 22:25
@Joel I would let the customer decide whether you're done. They might see the demo and decide that it doesn't meet their requirements. +1, though, for suggesting to meet with the customer to ask them for their feedback. If they are happy with the scope and happy with early delivery, this might generate additional "brownie points".– ManfredMar 3, 2012 at 1:09
1@jmort253 Yes, agreed. My comment was meant regarding Joel's comment they should tell them "We're done". In my view whether or not someone is done is in the end the customer's decision not the developer's decision. But then again, there can be other factors.– ManfredMar 3, 2012 at 1:39
I'd echo Joel's answer about checking with customer and also simpixleated's about polishing.
A few other thoughts though, on the lines of "are you sure you're finished":
You have a month project, developed in 2 weeks. Is there any plan for testing the software that has been developed? Either from a functionality point of view or other less visible aspects e.g. performance under load, security, usability, accessibility etc.
Is the deployment method understood and tested? If it is software to run on the client's PC has it been installed and tested on PCs other than the developers to prove there are no unknown dependencies?
Is user acceptance testing or usability testing planned - this can flush out unexpected needs or problems.
I find depending on the client items such as above can be greater effort than the actual development
No offense, but it looks like something too good to be true! Did you clearly understand what your clients asked? Did you miss a part of it? Sorry to be a skeptic, but usually you have much more work than you can handle. Unless you planned wrongly at the beginning. I would call your clients as soon as possible to validate with them if what you did corresponds to what they asked. If it is yes, congratulations! But do not expect to leave something like that every time.
I think this is a great point. It's quite possible that the project was seemingly completed early simply because the team didn't understand the requirement. +1 Mar 3, 2012 at 1:34
It's entirely possible that it is a planning mistake - after all variance goes both ways. Just because the IT industry usually under-estimates, it can sometimes over-estimate too. Sometimes you think something could be difficult and allow contingency, but it turns out the developer has done something similar before, or finds reusable components that speed things up and all is done ahead of time.– Kris CMar 3, 2012 at 10:23
@Kris - Either way, the team shouldn't bust out the champagne until talking to the client and agreeing that it is indeed completed. I'm with you though, sometimes it does happen that something is really done. Mar 4, 2012 at 19:32
agreed :) acceptance criteria and signoff are important. I mentioned user acceptance testing in my answer - I'd expect user testing and signoff before software is formally delivered and the all important final payment changes hands!– Kris CMar 4, 2012 at 19:47
Polish, refine, and deliver something beyond your own expectations and standards of quality. You could easily spend another week or two testing and improving (without adding unrequested features) every little detail and still deliver it ahead of time. For example, testing on additional platforms/browsers, fixing bugs that may have been acceptable before, running through additional validation tools, etc.
3What if the functionality isn't what the customer really wanted? What if the customer has realized they didn't explain all their functionlity? You have an opportunity to touch base with your customer, take it. My opinion. Mar 2, 2012 at 21:32
I think thats a good idea Joel. Thanks, will keep this in mind.– RG-3Mar 2, 2012 at 21:51
3@ simpixelated - This is where the term 'gold-plating' comes from; adding things that weren't asked for, and it's the flip side of scope creep. If you've completed the project according to the customers specs and requirements, then continuing to work on it beyond that is just spending their money without a good reason. What you're advocating also brings with it a risk issue - You're done and it's ready. But now you add or change something (without authorization) and break it and have to spend additional time to fix it, and possibly jeopardizing the finish date. Mar 2, 2012 at 22:39
1"You could easily spend another week or two testing and improving (my emphasis) every little detail and still deliver on time." It sounds like @simpixelated is just suggesting that the team make sure the quality is there, that there are no major defects and that minor bugs are fixed. I understand that "gold-plating" implies adding features not asked for, whereas this sounds to me like he's just suggesting taking the time to make sure all i's are dotted and t's are crossed, kind of like re-reading over a proposal + correcting errors before submitting it. +1 Mar 3, 2012 at 1:38
1@Trevor - Still, perhaps one of us should edit this answer just to make that point real crystal clear that "beyond expectations" doesn't mean go crazy and start adding in random features. I think it is worth pointing out specifically that this time should only be used for careful review and fixing of defects. If you and Joel misunderstood, it's quite possible many others will as well :) Mar 3, 2012 at 1:44
Congratulations! And pass it along to the team. Specifically, take the team out for a celebration; food and/or activity. if possible, consider giving them a bonus.
Do not pretend the project is not over - that's a sure-fire way to demoralize the team.
Unless there's a good reason not to, inform the customer that you are ready to deliver - and make a big deal about the early delivery. After all, you want the team to repeat this feat.
Do not start adding features, no matter how trivial. If it's tested and approved then ship it. Adding even the smallest feature could cause major delays; if it aint broke, don't fix it.
Do not squeeze the next schedule on the assumption that you have a Super Team. That's equivalent to punishing them for doing a great job.