Wiredcraft / test-pm

Interview test for PM applicants
MIT License
0 stars 1 forks source link

Test for Matthieu #10

Closed mpathiuk closed 6 years ago

mpathiuk commented 6 years ago

First make sure you read the test guidelines here: https://github.com/Wiredcraft/test-pm

This task will be followed up asynchronously over a few days and should not take more than two hours in total.

Project Introduction You have been assigned as project manager for a project for the client Chopper Corp (your client stakeholder is Charlie ). The outcome of this project will be a website which allows a user to sign up, and log-in to a system that gives them commodity prices and availability information. The system as a whole is expected in 7 weeks.

Project Details The work has been divided into two parts: • the backend and frontend for login and signup - This will be handled by Wiredcraft completely • the backend and frontend for commodity prices and availability information which will be provided by a separate company Shane Labs, you will need to interface with Yiwan, their project manager, to coordinate as they are building this system from scratch for Chopper Corp.

The specific requirements for the registration have been decided as Username, Password and Email address fields. The login will be based on username. And after sign up the commodity prices and availability information system expects to receive the Username and Email so they can customise the information.

In your team you have: • A designer who can make mockups and flow diagrams of the login and once confirmed, implement the frontend • A developer who can implement the backend and help out integrating the login frontend • A dev-ops engineer who can set up the servers and take care of deployment.

Your Task

The first step of this task is for you to provide the following:

• Clarify the requirements and provide your understanding of the final scope for Wiredcraft's work. • An initial project plan including:

  1. A work breakdown for Wiredcraft's integration with Shane Labs up to the final delivery
  2. a rough timeline of what you think needs to happen in this project and deliverables. You can use the methodology of your choice for this plan,
  3. Outline the project phases you would have and what should be delivered at each phase. The plan can be a few paragraphs of text and the timeline can also be made using Github markdown by outlining what needs to be done during each week.
  4. A rough outline of the process you would use for the day-to-day organisation of the development team and a short overview of how you would manage the communication flows internally and externally.

You can also kick off with any questions to multiple people in one GitHub comment, I will answer likewise and bring up more cases to test your communication skills as we go along: (Assume you have already been introduced to the client (@ccCharlie111) and commodity prices and availability service vendor (@slYiwan222) ) and you can @myteam333 for questions to your development team)

e.g. @slYiwan222222 - Hi there, can I confirm with you the requirements for ... @ccCharlie111 - I heard from slYiwan222222 that they need to have xxx, does that mean we need to change .... @myteam333 - I'm not clear on how xxx could work, can you tell me more about it? @mpathiuk - For the test, I don't understand what you mean by xxx ...

matthieumellul commented 6 years ago

Hi Mik,

I understand that in this business case, Wiredcraft is to develop and deliver the sign-up and login services for an e-commerce website. The client (Chopper Inc. represented by Charlie) also works with one external party (Shane Labs, represented by Yiwan) that is in charge of the other functionalities (display commodity prices and availabilities) and which whom we have to collaborate with (in particular to guarantee the customization of the shopping experience).

I also understand that the project timeframe is 7 weeks, and that we are a 4 people team including a project manager, a designer, a developer, and a dev-ops engineer. I assume that my team has to deliver a validated version of the project in a staging environment.

At this stage I have a few questions regarding the business case:

After this first read, I would cetainly recommend the following steps for this projects:

During week 1:

  1. kick-off the project and set-up the work environment:

    • have a call or meeting with Charlie to confirm the scope and requirements for the projects (in particular: which devices, which formats) and get to know each other
    • brief the team and gather the first questions (probably the developer will have questions about the technical environment, the requirements for sending the login information for customizing the shopping experience, the environments where the website will be in production etc.)
    • have a call or meeting between Wiredraft team, Charlie and Shane Labs team to confirm the scope, requirements, and constraints of the project, the levels and areas of involvement of the different parties, to ask our questions and get to know each other
    • at the same time, dev-ops can set-up the servers and working environment (according to Wiredcraft internal guidelines - I would recommend a development environment, and an internal staging environment for internal testing)
  2. write down specifications and prepare the next steps

    • as soon as the preparation steps are concluded, I will be able to document a roadmap for the project that can be validated by the team and shared with the client as long as the memos of the meetings. The developer will be able to write a detailed work plan and the designer to prepare the mock-ups and templates
    • I will start building a detailed calendar and task list for the following weeks.

Guidelines for the following weeks

I guess the development phase will have two major aspects: 1.the login and sign-up modules, 2.the connexion with Shane Labs's platform. I think after week 1 and coordination with the developer, we will probably get to a work plan like the following:

week 2

week 3

week 4

week 5

week 6

week 7

Regarding communication flows:

internally

externally

mpathiuk commented 6 years ago

From me:

do you confirm that the 7 weeks term is to deliver the development in a staging environment, or do I assume the 7 weeks term is set to deliver an online production version?

7 weeks to staging, as you have assumed.

who will be managing the client's database, Wiredcraft or Shane Labs or the client?

The Client

who is responsible for the graphical charter or the template? Do I assume we are given one?

We are and your designer can handle this with the client directly

what is the budget for this project? How many days can each team member allocate to this project?

Assume that the team is on this full time and the budget and contracts are already taken care of.

mpathiuk commented 6 years ago

Your plan is in progress and it's now week 2.

From Shane Labs slyiwan222222 : Hi @matthieumellul , we've just realised that due to new legal registrations, we will require you to pass us the user's phone number as well, and this will need to be validated by SMS. Can you let us know if this is doable within the timeframe or will need to come in a post-release fix?

After discussion with your team they come back to you: From: myteam333 adding SMS validation would add 3 weeks to the project, so we recommend delivering this feature 3 weeks after the initially planned release.

What are the next steps you would take in this case?

matthieumellul commented 6 years ago

Hi Mik,

I would do the following :

the very day:

  1. confirm the new specifications : quick check the new regulation to confirm if the issue raised by Shane Labs is relevant, how critical is it and if there is a way around it. If there is reasonable doubt, contact Shane Labs to challenge and confirm the specifications.

  2. prepare a recommandation for the client: if we have to integrate the new specifications I would firstly check the potential impact it has on going live. I would do a quick check with the team to understand why this new feature takes three weeks to be developped, and find if we can provide any internal solution: shorten the three weeks period or add extra workforce to deliver the project without changing the deadline. Then I would evaluate a budget for each reasonable option we can propose.

  3. inform the client of the situation, of its options and associated costs. I assume the client will share with me the business implications of a delay. Then I will confirm with the client the best option regarding its time and budget constraints.

  4. debrief with the team and update the planning and task lists according to the conclusion reached with the client.

  5. inform Shane Labs of the release date for the new feature in the staging environment

mpathiuk commented 6 years ago

You get the go ahead from the client for the SMS validation release 3 weeks after the initial release. Your team then proceeds with your plan for a few more weeks.

You're now in week 4 and your team tells you that due to unforeseen technical circumstances as well as some small changes that need to be made to support the SMS validation release they will not have the frontend finished for testing by the end of this week as planned. It will take one extra week. This would also push back the SMS validation release by 1 week.

What do you do now.

matthieumellul commented 6 years ago

Hi Mik,

as you can see on the workplan, I have initially planned a quite long internal testing period (about 30% of the total time) which allows some flexibility for the team before impacting the deadline for the client. Experience tells that it is always safer to be able to deal with some unexpected or unforseen issue.

What I would do at this stage :

internally

I would keep pressure on the team, and advocate to do our best to stick to the initial planning. I would in particular advocate that we have to start dealing with this new issue before confirming to the client that we have to push back the SMS validation release by 1 week - changing our own initial assement is a last resort measure, because it can impact negatively our position in future situations.

As a consequence, I will adapt the internal planning and plan for a status meeting by the middle of week 5. But I will not change the release deadline of the staging version.

I believe people often overestimate the difficulty of something they don't know, and things can turn out to be solved quicker than expected. At this stage I want to preserve this possibility, as much as to keep the team working, and with a positive spirit. However, I will also have to confirm with the team if they need help, to make sure that the eventual one week delay could not turn into a two weeks delay or more ; I will also have to evaluate the possibility of a partial release on staging.

with the client

At the same time, I have to prepare for the situation were the staging release would actually be delayed. So I'll start to share our concerns with the client, by phone if possible, mentioning that the development of the SMS validation step requires modifications on the other parts of the project that can affect the deadline of the release version. I'll assess the potential impact on the client if we have to postpone the release of the front end in staging (are their business consequences ? does he or do is team would still be available for testing if we have to postpone the release of the front end in the staging environment by one week?).


Consequently to this internal and external actions, on week five, I'll have a clearer ability to asses the situation and communicate it to the client.

mpathiuk commented 6 years ago

You're in week 7 development and testing is now completed. You are about to launch the first version without SMS validation when the client raises the question: "What do we do with users who sign up between now and the launch of SMS validation? We have the legal requirement to get the SMS for all users by 4 weeks time"

Assuming they will be ok with the budget for any upcoming work for your solution, what would you suggest?

matthieumellul commented 6 years ago

Hi would ask you for advice :)

And seriously, I will suggest to give ourself 3 days to confirm the date of launching. Since the initially 7 weeks project period was planned for a delivery in a staging environment, I assumed the launch was not set yet. I'll assume the client wants to launch as soon as possible.

At this point, I would suggest that we explore all available options to be ready as soon as possible to go live, being legally compliant. I would strongly recommand not to go live without the SMS validation feature.

If we launch now, since we need 3 weeks to develop the SMS validation feature, and 4 weeks to recover the SMS for all users to be legally compliant, this will left us only 1 week to test and go live to recover the SMS of the users who might have logged in, which I would think its too short. We don't want to release a feature that can compromise the users' login experience on the first days of the service being live. However, I understand and I will assume that the client has some business and marketing related issues that pushes him to launch as soon as possible.

During the 3 days I would then:

  1. confirm internaly if we can include and if we have extra people available to speed up the development of the SMS feature and evaluate our shortest possible launch date ;
  2. explore the possibility of recruiting a reliable third party that would provide the SMS validation service so that we can go live sooner. Maybe we can manage to be legally compliant by recovering the SMS in a different way, or some reliable specialized companies can provide a webservice that will enable our client to recover the SMS. In this last case, our team would need to connect and test a webservice for this third party before going live ; and develop, test and release our feature after. This might enable us to keep up with a tight launch deadline.
  3. ask Charlie to confirm with the stakeholders on his side its constraints for the launch date

After the three days, meet with Charlie and confirm the launch date.

mpathiuk commented 6 years ago

Thanks @matthieumellul We have enough information from the test. Closing as done and we'll be in touch.