The client has set (and we have agreed to) the deadline for a project. In order to complete the project, the team needs to master a new tool chain including Selenium and Java.

How do I establish a plan for an agile project that includes both learning the software and delivering the customer value? For example, how do I scope work that is intrinsically unknown (e.g. "learn selenium"), and how do I mitigate the risks that arise from not knowing the software well enough to accurately estimate the work?

  • 3
    Web testing is outside of the site's scope. Is there a project management process issue that you'd like to address? If not, your question is likely to be closed as off-topic. – Todd A. Jacobs Feb 4 '14 at 11:54
  • I am expecting a answer for implementation of Selenium or any other tools and its processes. – Rekha Feb 5 '14 at 10:01
  • I would get consulting from a vendor or, if you have the time, start reading about and experimenting with the tool. Still not much to do about PM. – Gastón Algaze Feb 5 '14 at 16:48
  • Edited my question as per the given details so kindly suggest on the same. – Rekha Feb 13 '14 at 8:02
  • Hi Rekha, since we're a site that focuses on the field of project management, questions about programming languages like Java and testing tools like Selenium are off-topic. Each Stack Exchange site has its own specialty. Please see the list of Stack Exchange sites to see what other sites are out there. Also, see help center for a list of subjects that are on-topic on Project Management Stack Exchange. Good luck! – jmort253 Feb 13 '14 at 8:49

Project Definition and agreement

To be classified as a project, you need to have a defined scope, time plan (incl. milestones and deadline), resources and budget.

If the client/customer have a deadline, it must be based upon a scope and a timeplan to start with. Before the contractor (your company) should agree on a deadline, the time plan should have been evaluated, investigate resource knowledge and if required add tasks to handle learning. Then evaluated their time plan against yours, and if you either need to postpone the deadline or need more resources to match the given deadline, this has to be discussed between the client and contractor.

Current situation from a Project Management point of view

If the client has not provided you with sufficient documentation regarding scope, timeplan, resource estimation and budget and your company is in the situation you are now, I think both of you have done a major "No-No" already.

To mitigate...

I agree with @Gastón Algaze, that you need to talk to some expert/vendor to get more information of learning curve of the new software and then add tasks to the Gantt chart.

Then you have to either

  • put more resources, if that even is a solution to be finished in time. Will lead to more cost for your company and might thereby pass budget instead of deadline. Is the client willing to take that cost or will your company be forced to take that cost? If you have already agreed on the budget, I guess your company has to take that cost as education.


  • you will have to take your new time plan including a probable postponed deadline up for discussion with your client.

Both alternatives are not good, but best to do it early than as a surprize for the client and managers of your company.


This question is on a thin line between project management and team management.

For team management I would say to put one person on the "unknown" for a couple of days to get some basic actions performed. Write all this code in a project called "unknown-playground" (in your case "selenium-playground") and commit this code to the repository so anyone can contribute. From my experience, 3 days on an unknown is quite enough to finish a project.

This team member is declared as an "expert" on the topic and is in charge to increase the knowledge bank further as needed. Usually, talking to an external expert/vendor is not required, but very recommended. That includes asking questions online, which is my personal favorite.

Please note - this person writes to the playground project. I recommend having the rest of the team use the code snippets from the playground project to use in the real project. Do not bind the expert to all features related to this technology, only for acquiring knowledge or they will be isolated from the team which is bad. This expert should guide the rest of the team and the rest of the team should be encouraged to use this knowledge bank as often as possible.

From a project management perspective, I think the most useful thing to do is to set deadlines on the playground project. For example, lets use selenium: add a feature - load a page, click a button. And this should be delivered internally.

I do not agree on putting more resources - usually this only generates noise rather than helps.

Appointing a single authority to lead a technical side of the project most likely proves itself more efficient to the project and the team member's self esteem.

As a team leader, I had the unfortunate experience to deal with forced deadlines on projects with unknowns. This approach allows me to make the deadline more than you'd expect.

Whatever you do, do not tackle the unknown at the end of the project or it will fail for sure. Talk about it, be true to your customer, I am sure they will appreciate your effort, perhaps they will even be able to connect you to someone who can help (happened to me once).


I agree with all the aspects (primarily from regular project management standpoint) and comments made here.

I guess the wrinkle comes in terms of 'agile' nature of the project. I suggest below steps:

  1. Accommodate for training
  2. Set the productivity levels of members (learning new tech) to low number (say 50%) ramp it up as they go by
    1. Associate them with 'expert' developers to provide guidance
    2. Let them have planning meeting at the beginning of each user story; set up a task for that
    3. Have code reviews and database script reviews when the code is promoted

Repeat the process when new team members come on board or existing members with new technologies.

As mentioned by other members, ensure release planning is complete before leap into the project.



From a project management perspective, Budget, scope and time work hand in hand. Fixed time and fixed scope call for a somehow fixed budget. we would all like this situation. In this case you have fixed the project duration on the delivery of the unknown. My advice is that work with the client in defining the scope to a granular level and agree on what can be done in the given space of time and budget. If more is required to be accomplish with within the set time frame, then adjust the budget to cater for compressing or fast tracking the project. Don't forget to charge the client for the additional risk associated with fast tracking or compressing the project and also consider that additional resources will cost you more and could cause noise than help. I'm currently working on a project where we have over 10 subcontractors, 9 vaguely undefined work streams and my company is tasked with project managing all those streams. I'm tasked with pricing the work effort required in managing these work streams and fixed price. How does one price the unknown to a number without under-pricing or inflating the price? A realistic budget will entail working with the client in defining the scope to a point where it can be accurately estimated.

Your Answer

