65
Johannes Brodwall Getting your project off the ground

Getting your project off the ground (BuildStuffLt)

Embed Size (px)

DESCRIPTION

So you're just getting started with a new (part of a) project with a new (part of a) team. Here are some things you can do to quickly get started.

Citation preview

Page 1: Getting your project off the ground (BuildStuffLt)

Johannes Brodwall

Getting yourproject off the

ground

Page 2: Getting your project off the ground (BuildStuffLt)

Bootstrapping a team

Page 3: Getting your project off the ground (BuildStuffLt)

Raising the team engagement

Page 4: Getting your project off the ground (BuildStuffLt)

Turning a corner

Page 5: Getting your project off the ground (BuildStuffLt)

Growing the team

Page 6: Getting your project off the ground (BuildStuffLt)
Page 7: Getting your project off the ground (BuildStuffLt)

“How do you start a project and achieve

understanding at the beginning?”

Page 8: Getting your project off the ground (BuildStuffLt)

“How do you {start a project} and achieve understanding at the

beginning?”

Page 9: Getting your project off the ground (BuildStuffLt)

Keep it simple

Defer commitment

Inspect and adapt

It depends

Page 10: Getting your project off the ground (BuildStuffLt)

Concrete tools fornon-superheroes

Page 11: Getting your project off the ground (BuildStuffLt)

3 tools

Page 12: Getting your project off the ground (BuildStuffLt)

1. Discuss the problem

2. Understand who’s involved

3. Describe what it does

4. Visualize the context

5. Understand the domain

6. Lay down the foundation

7. Dramatize the demo

Page 13: Getting your project off the ground (BuildStuffLt)

When

Page 14: Getting your project off the ground (BuildStuffLt)

Monday Tuesday Wednesday Thursday Friday

Elevator pitch,Stakeholders

Dev baseline Dev baselineReview usage

Define progress,Stories

Wrap up docsDev baseline

Lunch Lunch Lunch Lunch Lunch

Look at what’s going on today

Usage flowDev baseline

Usage review,Context,Domain,Deployment

Refine models

Review,RetrospectivePlan week 2

Typical plan for kickoff

Page 15: Getting your project off the ground (BuildStuffLt)

Monday Tuesday Wednesday Thursday Friday

Elevator pitch,Stakeholders

Dev baseline Dev baselineReview usage

Define progress,Stories

Wrap up docsDev baseline

Lunch Lunch Lunch Lunch Lunch

Look at what’s going on today

Usage flowDev baseline

Usage review,Context,Domain,Deployment

Refine models

Review,RetrospectivePlan week 2

Typical plan for kickoff

Page 16: Getting your project off the ground (BuildStuffLt)

Discuss the problem

Page 17: Getting your project off the ground (BuildStuffLt)

The problem:

“A program to assign a worker to a client”

Page 18: Getting your project off the ground (BuildStuffLt)

The problem:

“A program to assign a worker to a client”

(yes, it’s unclear!)

Page 19: Getting your project off the ground (BuildStuffLt)

Form groups of 3 (or 2)

You will have five minutes to discuss

Page 20: Getting your project off the ground (BuildStuffLt)

For some user/stakeholder

Who wants to achive some goal

The name of the system

Is a type of system

Which lets them perform some operation(s).

Unlike most compelling alternative

This gives them some advantages.

Page 21: Getting your project off the ground (BuildStuffLt)

For our client’s building managers

Who wants to wants to keep their property in good working conditions

The Mobility Workforce Manager

Is a work management system for mobile workers

Which lets them book and track rutine and incident based work orders.

Unlike the old system

This lets workers self-organize around tasks that they can solve, so the work is done faster.

Page 22: Getting your project off the ground (BuildStuffLt)

Who?

Page 23: Getting your project off the ground (BuildStuffLt)

For our client’s building managers

Who wants to wants to keep their property in good working conditions

The Mobility Workforce Manager

Is a work management system for mobile workers

Which lets them book and track rutine and incident based work orders.

Unlike the old system

This lets workers self-organize around tasks that they can solve, so the work is done faster.

Who

Page 24: Getting your project off the ground (BuildStuffLt)

Worker

Dispatcher

Building manager

Client

Page 25: Getting your project off the ground (BuildStuffLt)

Who?# Clients do ??? every ??? via ???

# Dispatchers do ??? every ??? via ???

# Workers do ??? every ??? via ???

# Building Managers do ??? every ??? via ???

Page 26: Getting your project off the ground (BuildStuffLt)

Who?Tens of Clients sign up for service a few times every year

via meetings

Around 20 Dispatchers assign worker teams to maintenance tasks all the time via specialized application

Several hundred specialized Workers accept tasks and confirm tasks a few times per day via mobile

Hundreds of Building Managers order maintenance tasks for their buildings every few days via web

Page 27: Getting your project off the ground (BuildStuffLt)

Who else?Payroll

Page 28: Getting your project off the ground (BuildStuffLt)

Monday Tuesday Wednesday Thursday Friday

Elevator pitch,Stakeholders

Dev baseline Dev baselineReview usage

Define progress,Stories

Wrap up docsDev baseline

Lunch Lunch Lunch Lunch Lunch

Look at what’s going on today

Usage flowDev baseline

Usage review,Context,Domain,Deployment

Refine models

Review,RetrospectivePlan week 2

Typical plan for kickoff

Page 29: Getting your project off the ground (BuildStuffLt)

Describe the usage

Page 30: Getting your project off the ground (BuildStuffLt)

1. Need: Someone identifies a need

2. Trigger: Someone does something with the system

3. The system responds in some way

4. …

5. …

6. The goal has been fulfilled

Page 31: Getting your project off the ground (BuildStuffLt)

1. Building manager has works that needs done (e.g. change mats)1. Alternative: Periodic trigger

2. Building manager register works request on web site

3. Dispatcher lists unhandled work orders1. Alternative: Dispatcher filters, searches and sorts work orders

4. Dispatcher displays work order

5. Dispatcher assign tasks to workers based on skills registered in training system

6. Worker get notified of task on their mobile

7. Worker acknowledges task1. Alternative: If worker rejects task, system marks it as unassigned and

alerts dispatcher

8. Worker performs task

9. Worker registers the task as done

10. Worker registers time and materials spent on task on mobile

11. System notifies payroll of time spent

12. System submits invoicing data to accounting system

13. Building is in great shape!

Page 32: Getting your project off the ground (BuildStuffLt)

Worker

Mobile

Server

Payroll

Personell

Accounting

Dispatcher

Building manager

Page 33: Getting your project off the ground (BuildStuffLt)

Worker

Mobile

Server

Payroll

Accounting

Dispatcher

Building manager

Page 34: Getting your project off the ground (BuildStuffLt)

Monday Tuesday Wednesday Thursday Friday

Elevator pitch,Stakeholders

Dev baseline Dev baselineReview usage

Define progress,Stories

Wrap up docsDev baseline

Lunch Lunch Lunch Lunch Lunch

Look at what’s going on today

Usage flowDev baseline

Usage review,Context,Domain,Deployment

Refine models

Review,RetrospectivePlan week 2

Typical plan for kickoff

Page 35: Getting your project off the ground (BuildStuffLt)

Laying down foundation

Page 36: Getting your project off the ground (BuildStuffLt)

Constraints:• Interact per user

• Portability• Supported platform

Page 37: Getting your project off the ground (BuildStuffLt)

Example:• Dispatcher: ____

• Building manager: ____• Worker: ____

• Supported platform: Java stack

Page 38: Getting your project off the ground (BuildStuffLt)

Example:• Dispatcher: Web or desktop

• Building manager: Web or any mobile• Worker: Provided mobile

• Supported platform: Java stack

Page 39: Getting your project off the ground (BuildStuffLt)

Example:• Dispatcher: “HTML5”

• Building manager: Responsive web• Worker: Android

• Supported platform: Java stack

Page 40: Getting your project off the ground (BuildStuffLt)

Example:• Dispatcher: Responsive web SPA

• Building manager: Responsive web SPA

• Worker: Responsive web SPA

• Supported platform: Java stack

Page 41: Getting your project off the ground (BuildStuffLt)

Frameworks:• What can the team support

• Max one: Project risk or tech risk

Page 42: Getting your project off the ground (BuildStuffLt)

Example risky project:• New team

• New supplier• New domain

• New codebase

Page 43: Getting your project off the ground (BuildStuffLt)

Example risky tech:• New database system

• New framework• New programming

language

Page 44: Getting your project off the ground (BuildStuffLt)

Solo programming

Page 45: Getting your project off the ground (BuildStuffLt)

Solo programming• Integration issues

• Inconsistent coding• Merge conflicts

Page 46: Getting your project off the ground (BuildStuffLt)

Mob programming

Page 47: Getting your project off the ground (BuildStuffLt)

Pair programming

Page 48: Getting your project off the ground (BuildStuffLt)

Resource utilization

vs

Knowledge sharing

Page 49: Getting your project off the ground (BuildStuffLt)

Monday Tuesday Wednesday Thursday Friday

Elevator pitch,Stakeholders

Dev baseline Dev baselineReview usage

Define progress,Stories

Wrap up docsDev baseline

Lunch Lunch Lunch Lunch Lunch

Look at what’s going on today

Usage flowDev baseline

Usage review,Context,Domain,Deployment

Refine models

Review,RetrospectivePlan week 2

Typical plan for kickoff

Page 50: Getting your project off the ground (BuildStuffLt)

Plan the show

Page 51: Getting your project off the ground (BuildStuffLt)

Demo script

Page 52: Getting your project off the ground (BuildStuffLt)

1. Preconditions

2. Start up the system

3. What do you see?

4. Activate a function

5. What do you see?

6. Activate variations of function

7. Thus we demonstrate that we have delivered x

Page 53: Getting your project off the ground (BuildStuffLt)

1. Building manager has works that needs done (e.g. change mats)1. Alternative: Periodic trigger

2. Building manager register works request on web site

3. Dispatcher lists unhandled work orders1. Alternative: Dispatcher filters, searches and sorts work orders

4. Dispatcher displays work order

5. Dispatcher assign tasks to workers based on skills registered in training system

6. Worker get notified of task on their mobile

7. Worker acknowledges task1. Alternative: If worker rejects task, system marks it as unassigned and

alerts dispatcher

8. Worker performs task

9. Worker registers the task as done

10. Worker registers time and materials spent on task on mobile

11. System notifies payroll of time spent

12. System submits invoicing data to accounting system

13. Building is in great shape!

Page 54: Getting your project off the ground (BuildStuffLt)

1. Building manager has works that needs done (e.g. change mats)1. Alternative: Periodic trigger

2. Building manager register work order on web site

3. Dispatcher lists unhandled work orders1. Alternative: Dispatcher filters, searches and sorts work orders

4. Dispatcher displays work order

5. Dispatcher assign tasks to workers based on skills registered in training system

6. Worker get notified of task on their mobile

7. Worker acknowledges task1. Alternative: If worker rejects task, system marks it as unassigned and

alerts dispatcher

8. Worker performs task

9. Worker registers the task as done

10. Worker registers time and materials spent on task on mobile

11. System notifies payroll of time spent

12. System submits invoicing data to accounting system

13. Building is in great shape!

Page 55: Getting your project off the ground (BuildStuffLt)

Stories

0. (Mock work orders)

1. Complete list of work orders

2. Simple work order filter

3. Placeholder display work order

4. Placeholder assign task

Page 56: Getting your project off the ground (BuildStuffLt)

Example: Dispatch a task

1. Faked: Building manager registers a work order

2. Dispatcher “logs into” web admin at http://test.workers.com/admin

3. Dispatcher sees a list of missions (future: sort, filter list)

4. Dispatcher selects a mission

5. Mission will display the type of tasks associated with the mission type

6. Dispatcher clicks a task

7. Application lists all the workers that can be assigned to the task (for now, all workers are listed)

8. Dispatcher selects a worker

9. Dispatcher is returned to mission screen and the worker is listed next to the task

Page 57: Getting your project off the ground (BuildStuffLt)

Stories – sprint 2

1. Polished list of work orders

2. Complete display work order

3. (Placeholder worker import)

4. Simple assign task

Page 58: Getting your project off the ground (BuildStuffLt)
Page 59: Getting your project off the ground (BuildStuffLt)

Monday Tuesday Wednesday Thursday Friday

Elevator pitch,Stakeholders

Dev baseline Dev baselineReview usage

Define progress,Stories

Wrap up docsDev baseline

Lunch Lunch Lunch Lunch Lunch

Look at what’s going on today

Usage flowDev baseline

Usage review,Context,Domain,Deployment

Refine models

Review,RetrospectivePlan week 2

Typical plan for kickoff

Page 60: Getting your project off the ground (BuildStuffLt)

3 tools

Page 61: Getting your project off the ground (BuildStuffLt)

1. Discuss the problem

2. Describe the system

3. Plan the show

Page 62: Getting your project off the ground (BuildStuffLt)

1. Elevator pitch

2. Context diagram

3. Demo script

Page 63: Getting your project off the ground (BuildStuffLt)

Conclusion:

Page 64: Getting your project off the ground (BuildStuffLt)

When you return:Create an elevator pitch with your

customerCreate a context diagram

Create a demo script for next sprint