3

I have worked for many software projects where I am developing software solution to the customer where I need to integrate with the customer back-end using web service provided by the customer in order to retrieve information, etc...

The problem is the customer might not deliver the required web service on time. Or might deliver web service in a different sequence than the plan.

My question is how to plan the project so that my coding and implementation will start according to the delivered required web services? Should I consider using agile? an how to use it in that case?

And how to deal with the risk of the delaying from customer?


The solution can be divided into phases and might be delivered based on the readiness of the web service.

Suppose I require 16 web service. If the customer deliver three now I can implement part of the project and go live with it. After if customer develop another two web service I can be ready to implement another part of the project. and so on How to put that in the plan structure ?

  • 2
    Tie your completion date to the date of completion of the web service. For example: "Our completion date shall be four weeks after the completion of the web service." – Robert Harvey May 12 '15 at 3:19
  • @RobertHarvey but how to add that tie in the project plan ? – Abdurrahman Khamis May 12 '15 at 19:10
  • Do you really have to have the actual web services to proceed with development? Or can you just simulate/mock those services until they actually become available, develop while the real services are being implemented, and then perform a final integration test before signoff? – Robert Harvey May 12 '15 at 19:32
  • @RobertHarvey Your plan for simulate the web service and perform final integration test is fine. However for some limitations I have to wait the actual web service to start my implementation. How to add that in the project plan? Should I keep my plan to be incomplete and append new tasks according to the delivered web services ? Thanks – Abdurrahman Khamis May 12 '15 at 19:46
2

The important thing is to develop an open, transparent and trusting relationship with the client. The customer needs to understand what your challenges - and cost - are to work in the manner you are being forced to work in. At the same time, you need to understand why is it that the client cannot deliver in a predictable manner. Once there is appreciation for both sides, usually solutions will emerge that will satisfy both sides.

But it takes time to get there with the client. There are a few things you could do to make it easier to have such a discussion:

  1. Set up a Kanban board that highlights and visualizes the work being done by your customer and you. A simple example is the one shown below:

enter image description here

The board visualizes the process being used by both sides - and the work being done at any point of time. The numbers next to the column headers are WIP (work-in-progress) limits - the maximum number of work that can go on at any stage at any point of time. If you are the only worker on your team, for example, then the WIP limit for the entire second row should ideally be just 1. For now, ignore these numbers and simply put up the board with your and the customer's process so you and the customer can see what is going on.

  1. Work out an agreement with the customer on the minimum number of web-services that should always be available in your input queue. So, for example, the last column in the first row (Customer - Done) must have at least 2 or 3 web-services (minimum WIP limit) so when you finish working on one, you have a second one always available to start on. So, initially, you may have a bit of a lag as you wait for the customer to complete at least 203 web-services, but from then on, you should always have work to do.

  2. The overall sequencing of the web-services depends on your overall design - and when you need which services broadly. That needs to be done initially, with some leeway given for the variations in the actual delivery that you have come to experience.

Based on that design, you might identify initially, the set of web-services you need to deliver each 'feature' or "MVP" (minimum viable product) - that you can actually demonstrate working.

The advantage of using the Kanban board is that you can use it to show the customer the problem you are facing much more effectively than by just describing it - a picture is worth a 1000 words - and probably 100s of 1000s of dollars! To build the board, you could use a physical board with stickies or an electronic Kanban board - especially, if your customer is in a remote location.

Hope this helps.

| improve this answer | |
  • Thank you for sharing that is really helpful . but how to include that in the project plan ? – Abdurrahman Khamis May 12 '15 at 19:09
  • I suppose you can have a section in the plan about "Project Management/ Collaboration" - where you propose using this method to facilitate the tracking of status of both the client's and your own work? Given the uncertain schedule of delivery of web-services by the customer, you could suggest that you follow the above process - as long as the client is also agreeable to it - and spell out some of the possible advantages of doing that. You can use details from my answer above if you like - I have no issues with that. If you need any more help, I can be reached at mahesh@digite.com. Cheers! – Mahesh Singh May 12 '15 at 19:31
2

Well... this happens all the time, and going agile is not going to fix the issue, rather you could get the web service definitions / contracts finalized. At this point you could actually start to build your system with mocking of the client web service using some tool like SOAPUI.

Once the customer service is up and running, you can actually test it. Of course this is not the ideal solution but, if you do not have any other things that can be done during this period, this may actually save some time.

| improve this answer | |
  • Thank you for sharing that answer however my solution can be divided into phases . check the update on the subject – Abdurrahman Khamis May 12 '15 at 19:07
0

...how to plan the project so that my coding and implementation will start according to the delivered required web services?

It sounds like you already do such planning, but that the customer sometimes delivers late or out of sequence.

Should I consider using agile?

Yes, you should consider "using agile". Whether or not you actually chose to adopt agile practices, or a Scrum specifically, should depend on your careful consideration of your circumstances... and not just the problem you have described here.

...how to use it in that case?

and

...how to deal with the risk of the delaying from customer?

Here, it would be easier to answer for the case of a particular method, like Scrum, rather than agile principles more generally.

With Scrum, the aim it to deliver high quality increments of a deliverable solution. Scrum gives priority to the quality of the deliverable, rather than its timeliness. With Scrum, essentially, the risk, and consequence, of delays is accepted. The customer, and their team delivering the component you depend on, after all, should be part of the Scrum team.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.