Skip to content

Instantly share code, notes, and snippets.

@calumhalcrow
Last active February 12, 2019 07:46
Show Gist options
  • Save calumhalcrow/3db01beadd139a574a456f00c0e25ac3 to your computer and use it in GitHub Desktop.
Save calumhalcrow/3db01beadd139a574a456f00c0e25ac3 to your computer and use it in GitHub Desktop.
Rapid River's talent test for Technical Project Manager applicants.

PLEASE NOTE: We'd prefer you send your answers to workwithus@rrsoft.co rather than post them publicly in another Gist, or in comments on this Gist ;-)

Part 1: Project Management

The following questions all describe specific problematic project management situations, and ask you how you'd deal with them.

1. Estimations and Timelines

You have recently joined a software team and have been asked to provide project management guidance. The team consists of four developers, and is quite well "gelled". To date, the team has been following a Kanban & Release Train style approach to completing tasks. They are reasonably productive, and project stakeholders are generally happy with the team's output.

However, stakeholders have a niggling problem which they'd like you to address: they want reasonably accurate information about when future work will be completed. They've tried asking the team's developers to estimate project stories, but this hasn't yielded meaningful information. Either the estimates are so poor that they might as well not exist, or the direction of work has changed so much that stories that were expected to be complete are currently un-started and on the back-burner.

How would you guide the team to a state in which it was producing reliable estimates and timelines?

2. Greenfield Project

You have been asked to manage a new "greenfield" project for a Rapid River client. The client has given you some high-level instructions on what they'd like to achieve:

  • The client owns three businesses with which fitness trainers can own an account with.
  • The client would like to build a backend system which consolidates trainers’ profiles from each of these three businesses into one universal profile, for internal use by the client.
  • The new project will provide an API through which these universal profiles can be accessed.
  • Profile information from the existing businesses will have to be collected into the new project, and then normalized to fit a common profile format.

They've also indicated that they'd like to start with a team size of two developers and yourself.

You're not convinced that this information is enough to go on to ensure that we deliver what it is that our client really wants.

What would you do next in this situation to maximize the likelihood that this project ultimately is successful?

3. Course Correction

You have been asked to take over the management of a team of software developers. The team is in the midst of building out an overhaul of a key component of an existing web application. To date, the project has been managed by the team's lead developer. Although they've made reasonable progress, things are starting to go awry:

  • The tracking of tasks has moved from the team's project management solution into a shared spreadsheet.
  • The project has a test suite, which was previously always verified to be passing before new code was accepted. This practice has however been abandoned, as recent work on the overhaul has caused some tests to fail. The team plans to fix this “later”.
  • Developers are having difficulty getting their work accepted, as they frequently find their changes conflict with the recent work of others.
  • Bugs reported by QA and product owners are regressing, which is causing no end of frustration for everyone involved.

At the outset of the overhaul, the roadmap and timeline seemed quite clear. But now nobody can talk to how close the team is to finishing. Stakeholders would like to regain a reasonable understanding of where the project is.

What steps would you take to address this state of affairs, and to get the project to a place where stakeholders can again understand what the status of the project is?

Part 2: Technical Ability

This section's purpose is to ask you to demonstrate general technical ability in designing and deploying software applications.

4. Data Modelling

Each voter can vote in zero or more referenda. Each referendum has one or more questions, and each question is a yes/no vote. Write the simplest normalized schema to describe this in generic SQL statements or as an entity-relationship diagram. Point out where the indexes would be if you want to quickly know the results of a given referendum question, but you never expect to query a single voter's voting record.

5. Availability on AWS

Your client plans to host their web application on AWS. When would you advise (a) deployment in a single availability zone, (b) deployment in multiple availability zones in a single region (c) deployment in multiple regions? What operational difficulty or complexity, if any, is added as you go from (a) to (b) to (c)?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment