Wiredcraft / test-pm

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

Test for David #8

Closed mpathiuk closed 7 years ago

mpathiuk commented 7 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 10k Corp (your client stakeholder is Yiwan). 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 stock market information. The system as a whole is expected in 5 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 stock information which will be provided by a separate company Charlie Labs, you will need to interface with Chopper, their project manager, to coordinate as they are building this system from scratch for 10K 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 stock market 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:

A work breakdown for Wiredcraft's integration with Charlie labs up to the final delivery 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, 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. 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 (@yiwan111) and stock market service vendor (@chopper222) ) and you can @myteam333 for questions to your development team)

e.g. @chopper222 - Hi there, can I confirm with you the requirements for ... @yiwan111 - I heard from chopper222 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 ...

david-adam commented 7 years ago

@chopper222 - Hi there, can I ask when you need to receive the username and email after the user login? should we immediately send the info to your after the user successfully logged in?

david-adam commented 7 years ago

@yiwan111 - Hi there, can I clarify the requirements for the user registration with you? Which back-end system will be used to authenticate the user registration and login? Is it the Charlie's stock market service?

@chopper222 - can you share with me the plan and timeline for implementing the user customization and / or the user authentication service?

david-adam commented 7 years ago

@mpathiuk For the test, I want to ask if the requirements and the final scope should provided in user stories? Will me as the PM to write the user stories? Or they can also be provided as a block of the text describe the requirements?

david-adam commented 7 years ago

@Yiwan111. Hello, I have several points to confirm regarding the user login and signup page: 1. What's the validation rules for the username field? EX. Min 8 characters, only numerical & alphabet characters ? Do special characters allowed? If allowed, which ones?

  1. For the Email field, should we only validate the email address according format or need validate if it is a real existed real email address? 3. For the password field, same like the username field, what is the validation rules? And should we provide an on page password strength indicator for the user ? 4. Lastly, Do you think we need have a CAPTCHA feature on this page ?

Many thanks in advance for your replying. :)

david-adam commented 7 years ago

@Choper222, @Yiwan111: Hello guys, can you tell which features in the new system for the user check the stock information has? WiredCraft will build the signup / login page, and integrate with Charlie's user customization service, but it's good to know what the end user will get after this project is done. :)

mpathiuk commented 7 years ago

From @chopper222: 1. Yes send us the login details immediately after the user logs in, we will then respond with the correct stock data for this user. Our staging system will be ready for your integration testing at the end of week 2. Until then we are providing some mock API's for you to test against which return some test stock data. Assume you have been provided with the full spec of the data returned for stock information.

From @yiwan111 : Your system will hold the auth details (username, email, password) and once logged in you'll then get the correct data from Charlie Labs stock service.

  1. We'll let you decide the validation rules according to industry standards. 2. Needs to exist in your DB. 3. you can choose. 4. No need for CAPTCHA at this stage.

From @mpathiuk: You can add them as a bullet points with a short description. Let's try to keep it high level, what I want to assess is if you have a good understanding of the work breakdown and how you aim to tackle that with your team. Let's not get too into the technical details but concentrate on the requirements, work breakdown structure and project plan.

david-adam commented 7 years ago

@mpathiuk For the QA, can I assume the team will do the QA without dedicated QA staff? And I will apply the SCRUM process?

mpathiuk commented 7 years ago

Yes for QA, and you can apply whichever methodology you think is suitable.

david-adam commented 7 years ago

@chopper222. Hello, may I know when the front-end information for the user customized stock update will be ready on your side?

david-adam commented 7 years ago

High-level requirements and scope for WiredCraft:

david-adam commented 7 years ago

WBS: 10k corp-wbs

david-adam commented 7 years ago

Project plan & timeline. Divided this project to two major phases ( thus releases ). We will adapt the scrum process, though the two sprints do not necessarily have the same length, should plan more time for the integration work with Charlie labs.

Phase 1 - User Signup and Login: week 1 to week 2

Week 1

Phase 2 - Charlie's User customization integration: Week 3 to week 5.

Week 3

Week 4.

Week 5.

david-adam commented 7 years ago

@yiwan111, @chopper222. I have the following assumptions on how the user accounts management will work, can you kindly clarify or validate these:

  1. We will not sync the user account info from Charlie labs new stock system. When a new user account created, we will store it in our own database.

  2. When log user in, we will authenticate against our own database, no other external system's DB will check.

  3. Assume Charlie's new stock system only needed user information on their side are: username and email and we will call Charlie's API to push this info.

  4. After sending the info via an API call, the customized stock updates information will be returned.

david-adam commented 7 years ago

@yiwan111. Hi there, regarding the design of the front-end page for the project, may I know which browsers and devices ( Web view and mobile ) need be supported? Should it be a responsive web page design?

And what's the target page loading speed on performance?

For the target users, do you have global user bases so we need provide multiple languages versions for the site?

david-adam commented 7 years ago

Assumptions:

Outline of the process you would use for the day-to-day organization of the development team:

-A quick daily sync with the development team at the team agreed time depends on the needs.

A short overview of how you would manage the communication flows internally and externally:

  1. Clarify requirements and feedbacks from the development team with client or partner. 2.After clarifying, create or update development issue to the development team or update Charlie's labs for the new development issue, and ask if for estimation or timeline updates needed. 3.Development team work on the issue or wait for Charlie's labs complete the issue.
  2. Issue resolved, qa-ed, pushed to staging. Or Charlie labs finished the issue.
  3. Check if all the issues in a release package are on staging.
  4. After 5th, communicate with client conducting UAT.
  5. After UAT pass, ask Dev-Ops to deploy to the production server.
  6. Depends on the situation, if deploy to existing live production server, conduct a quick regress and smoke test on the production server, and ask the client for approval.
  7. Organize a weekly sync-up meeting or online conference call with the team and Charlie labs before weekly updates meeting with the client and/or Charlie labs.
  8. Weekly meeting with the client and/or Charlie labs: update the project progress, highlight impediments and risks.
  9. After all features in the project released live. Communicate with client, ask for approval and sign off the project according to the contract.
david-adam commented 7 years ago

@Chopper222, Hello Chopper, regarding the front-end data for the user stock, which format will you provide to us? Will it be just a well-structured data or it is the final HTML output including style sheet information?

david-adam commented 7 years ago

@Chopper222, @Yiwan111, Hello, hope you are doing well. As you know we are currently building out a project plan and timeline, would be really great you can answer me the questions I sent previously regarding the assumptions, user signup / login page design questions and the front-end data for the user stock information?

@Chopper222, since we have two dependencies on your team: the user customization API, and the user stock information, can you share with me the project timeline on your side? Or can you update to me when you can have the user customized stock front-end information ready for us to integrate? Then I will incorporate your information into our project plan and timeline.

I will share with you the project plan and timeline once it is completed. Thanks!

david-adam commented 7 years ago

Hello, @yiwan111, @Chopper222 and @myteam333. Please see the final Project Plan as follows.

( @mpathiuk It is based the assumption that I received the answers from Chopper222 regarding the user customization API and stock front-end information )

Final Project plan & timeline.

Divided this project to two major phases ( thus releases ). We will adapt the scrum process, though the two sprints do not necessarily have the same length, should plan more time for the integration work with Charlie labs.

Phase 1 - User Signup and Login: week 1 to week 2

Week 1

Week 2

Phase 2 - Charlie's User customization integration: Week 3 to week 5.

Week 3

Week 4.

Week 5.

mpathiuk commented 7 years ago

Thanks @david-adam ,

I'd like to keep this high-level so we'll skip past the detail oriented questions for now.

You're in the middle of week 4 of your above plan when you hear from the client:

from @yiwan111 :

Hi there, I've just received word from corporate that we now need to ask the user to give us a bank card number and validate this during registration for security reasons. However we cannot delay the delivery timeline as this initiative has already been announced to the public. Let me know how you plan to get this done.

After checking in with your team you hear:

from @myteam333:

We can get the bank card validation done but it will add 3 weeks to the timeline if we do a full flow of validation. If we make a very simple flow for users to provide bank card but without validating this, we could have that in the current timeline.

What do you do next?

david-adam commented 7 years ago

@mpathiuk I will do as follows:

@yiwan111. Thanks for your urgent updates. For this is a scope and requirement changes, we estimated that it would need to add 3 weeks to the timeline if we provide a full flow for the back card input and validation, but if we can do it first without validation, we can meet the timeline. Therefore, may I propose for the following? We first only provide the back card input flow without the system validation in order to meet the release timeline, and we can continue work on the validation. You can arrange to do the bank card validation offline manually for about 3 weeks until the validation feature is online. In the meantime, I will update our change request and management document to reflect this change and get this approved if it is OK with you.

david-adam commented 7 years ago

@myteam333 I have a question about the credit card validation estimation . May I know why we need 3 weeks? Because the whole project originally is 5 weeks, if just considering development, it around 4 weeks; why add this single validation need 3 weeks more? Just want to know some details so I can explain to the client and to see if we have room to propose other alternatives.

mpathiuk commented 7 years ago

@david-adam Thanks you, we can count the test as completed and move on to the next steps. You'll hear from us by email.