Getting your project off the ground Johannes Brodwall
Getting your project off the ground Johannes Brodwall
Bootstrapping a team
Raising the team engagement
Turning a corner
Growing the team
Etter 15 års erfaring fra IT bransjen i Norge, innså Johannes Brodwall: “Det er immari kaldt her!” Nå jobber han for IT bransjen i Sri Lanka. Men er fortsatt mest i kalde Norge.
“How do you start a project and achieve understanding at the beginning? ”
“How do you {start a project} and achieve understanding at the beginning? ”
Keep it simple Defer commitment Inspect and adapt It depends
Concrete tools for non-superheroes
3 tools (and 1 bonus)
1. 2. 3. 4. 5. 6. 7. 8. Discuss the problem Understand who’s involved Describe what it does Visualize the context Understand the domain Lay down the foundation Create the roadmap Dramatize the demo
When
Typical plan for kickoff Monday Tuesday Wednesday Thursday Friday Elevator pitch, Stakeholders Usage flow Dev baseline Roadmap Review usage Wrap up docs Dev baseline Lunch Dev infrastructure Look at what’s Tech going on today framework Lunch Usage review, Refine Context, models Domain Review, Retrospective Plan week 2
Typical plan for kickoff Monday Tuesday Wednesday Thursday Friday Elevator pitch, Stakeholders Usage flow Dev baseline Roadmap Review usage Wrap up docs Dev baseline Lunch Dev infrastructure Look at what’s Tech going on today framework Lunch Usage review, Refine Context, models Domain Review, Retrospective Plan week 2
Discuss the problem
Form groups of 3 (or 2) You will have five minutes to discuss
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.
Sample problem
The problem: “A program to assign a worker to a client”
The problem: “A program to assign a worker to a client” (yes, it’s unclear!)
For a temporary employment agent who wants to match candidates to client needs, the Temporary Staffing System is an interactive web application, which lets them register and match candidates and positions. Unlike competing systems this lets us share selective information with our clients.
Who?
Typical plan for kickoff Monday Tuesday Wednesday Thursday Friday Elevator pitch, Stakeholders Usage flow Dev baseline Roadmap Review usage Wrap up docs Dev baseline Lunch Dev infrastructure Lunch Look at what’s Tech going on today framework Lunch Usage review, Refine Context, models Domain Review, Retrospective Plan week 2
For a temporary employment agent who wants to match candidates to client needs, the Temporary Staffing System is an interactive web application, which lets them register and match candidates and positions. Unlike competing systems this lets us share selective information with our clients.
Agent Worker Client
Who? # Clients do ? ? ? every ? ? ? via ? ? ? # Agents do ? ? ? every ? ? ? via ? ? ? # Workers do ? ? ? every ? ? ? via ? ? ?
Who? # Clients do ? ? ? every ? ? ? via ? ? ? # Project managers do ? ? ? every ? ? ? via ? ? ? # Agents do ? ? ? every ? ? ? via ? ? ? # Applicatants do ? ? ? every ? ? ? via ? ? ? # Workers do ? ? ? every ? ? ? via ? ? ?
Who? Tens of Clients sign up for service a few times every year via meetings About 100 client project managers request workers to match specific skills every few months Around 20 Agents proposes workers to open positions Several hundred Applicants applies for position once every few months Hundreds of Workers submit timesheets every (few) days via their mobiles
Who else? Payroll
Typical plan for kickoff Monday Tuesday Wednesday Thursday Friday Elevator pitch, Stakeholders Usage flow Dev baseline Roadmap Review usage Wrap up docs Dev baseline Lunch Dev infrastructure Look at what’s Tech going on today framework Lunch Usage review, Refine Context, models Domain Review, Retrospective Plan week 2
Describe the usage
1. 2. 3. 4. 5. 6. Need: Someone identifies a need Trigger: Someone does something with the system The system responds in some way … … The goal has been fulfilled
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. A new company wants to hire a skilled worker for a temporary position Administrative user adds the client details and login to the system Client logs into the application and completes new position description, including skill requirements Temp agency adds a worker and proposes the worker to a position registered by a client Client gets notified of new proposals (via email) Client views status of all open positions in the system External to the system: Client interviews candidate, request further information and makes a decision whether to hire or not Client accepts or rejects the worker in the system As worker performs work, they register their time in the system At the end of a billing period, the system generates billing information to accounting system and salary information to salary system
Typical plan for kickoff Monday Tuesday Wednesday Thursday Friday Elevator pitch, Stakeholders Usage flow Dev baseline Roadmap Review usage Wrap up docs Dev baseline Lunch Dev infrastructure Look at what’s Tech going on today framework Lunch Usage review, Refine Context, models Domain Review, Retrospective Plan week 2
Typical plan for kickoff Monday Tuesday Wednesday Thursday Friday Elevator pitch, Stakeholders Usage flow Dev baseline Roadmap Review usage Wrap up docs Dev baseline Lunch Dev infrastructure Look at what’s Tech going on today framework Lunch Usage review, Refine Context, models Domain Review, Retrospective Plan week 2
Laying down foundation
Constraints: • • Interact per user • Portability Supported platform
Example: • • • Agent: ____ Project manager: ____ • Applicant: ____ • Worker: ____ Supported platform: ____ stack
Example: • Agent: Web or desktop Client manager: Web or any mobile • Applicant: Web • Worker: Mobile • • Supported platform: Java stack
Example: • • • Agent: Swing Client manager: Spring MVC • Applicant: Spring MVC • Worker: Android Supported platform: Java stack
Example: • Agent: Responsive Java. Script/Spring MVC • Client manager: Responsive Java. Script/Spring MVC • Applicant: Responsive Java. Script/Spring MVC • Worker: Responsive Java. Script/Spring MVC • Supported platform: Java stack
Frameworks: • What can the team support • Max one: Project risk or tech risk
Example risky project: • New team • New supplier • New domain • New codebase
Example risky tech: • New database system • New framework • New programming language
Typical plan for kickoff Monday Tuesday Wednesday Thursday Friday Elevator pitch, Stakeholders Usage flow Dev baseline Roadmap Review usage Wrap up docs Dev baseline Lunch Dev infrastructure Look at what’s Tech going on today framework Lunch Usage review, Refine Context, models Domain Review, Retrospective Plan week 2
Solo programming
Solo programming • • Integration issues Inconsistent coding • Merge conflicts
Mob programming
Pair programming
Resource utilization vs Knowledge sharing
Typical plan for kickoff Monday Tuesday Wednesday Thursday Friday Elevator pitch, Stakeholders Usage flow Dev baseline Roadmap Review usage Wrap up docs Dev baseline Lunch Dev infrastructure Look at what’s Tech going on today framework Lunch Usage review, Refine Context, models Domain Review, Retrospective Plan week 2
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. A new company wants to hire a skilled worker for a temporary position Administrative user adds the client details and login to the system Client logs into the application and completes new position description, including skill requirements Temp agency adds a worker and proposes the worker to a position registered by a client Client gets notified of new proposals (via email) Client views status of all open positions in the system External to the system: Client interviews candidate, request further information and makes a decision whether to hire or not Client accepts or rejects the worker in the system As worker performs work, they register their time in the system At the end of a billing period, the system generates billing information to accounting system and salary information to salary system
1. 2. 3. 4. 5. 6. 7. Experimental create open position Experimental list positions Simplified create open position Simplified list positions Complete create open positions Complete list positions …
1. 2. 3. 4. 5. 6. Experimental create open position Experimental list positions Simplified create open position Simplified list positions Complete create open positions Complete list positions 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Basic create client account Complete create client account Basic login admin user Basic login client user Complete login client user Basic add worker Complete add worker Basic propose worker for position Complete confirm worker for position Basic enter timesheet (in this version temp agency enters on behalf of worker) Experimental billing report Basic salary report 18. 19. 20.
20. 21. 22. 23. 24. 25. 26. 27. 28. 29. … Attend training on CSS Basic layout and styling of web pages Complete layout and styling of web pages Polished layout and styling of web pages Locate slowest pages and make some performance improvements Deploy solution to target platform Deploy demo version to wider set of stakeholders Deploy pilot version Exploratory test of complete flow
Week 1: Experimental create open position Week 1: Experimental list positions Week 1: Attend training on CSS Week 2: Simplified create open position Week 2: Basic layout and styling of web pages Week 3: Deploy solution to target platform … Week 4: Complete layout and styling of web pages Week 4: Complete create open positions Week 4: Complete list positions Week 4: Deploy demo version to wider set of stakeholders … Week 6: Exploratory test of complete flow
Typical plan for kickoff Monday Tuesday Wednesday Thursday Friday Elevator pitch, Stakeholders Usage flow Dev baseline Roadmap Review usage Wrap up docs Dev baseline Lunch Dev infrastructure Look at what’s Tech going on today framework Lunch Usage review, Refine Context, models Domain Review, Retrospective Plan week 2
Plan the show
Demo script
1. 2. 3. 4. 5. 6. 7. Preconditions Start up the system What do you see? Activate a function What do you see? Activate variations of function Thus we demonstrate that we have delivered x
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. A new company wants to hire a skilled worker for a temporary position Administrative user adds the client details and login to the system Client logs into the application and completes new position description, including skill requirements Temp agency adds a worker and proposes the worker to a position registered by a client Client gets notified of new proposals (via email) Client views status of all open positions in the system External to the system: Client interviews candidate, request further information and makes a decision whether to hire or not Client accepts or rejects the worker in the system As worker performs work, they register their time in the system At the end of a billing period, the system generates billing information to accounting system and salary information to salary system
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. A new company wants to hire a skilled worker for a temporary position Administrative user adds the client details and login to the system Client logs into the application and completes new position description, including skill requirements Temp agency adds a worker and proposes the worker to a position registered by a client Client gets notified of new proposals (via email) Client views status of all open positions in the system External to the system: Client interviews candidate, request further information and makes a decision whether to hire or not Client accepts or rejects the worker in the system As worker performs work, they register their time in the system At the end of a billing period, the system generates billing information to accounting system and salary information to salary system
Typical plan for kickoff Monday Tuesday Wednesday Thursday Friday Elevator pitch, Stakeholders Usage flow Dev baseline Roadmap Review usage Wrap up docs Dev baseline Lunch Dev infrastructure Look at what’s Tech going on today framework Lunch Usage review, Refine Context, models Domain Review, Retrospective Plan week 2
3 tools
1. Discuss the problem 2. Describe the system 3. Plan the show
1. Elevator pitch 2. Context diagram 3. Demo script
Typical plan for kickoff Monday Tuesday Wednesday Thursday Friday Elevator pitch, Stakeholders Usage flow Dev baseline Roadmap Review usage Wrap up docs Dev baseline Lunch Dev infrastructure Look at what’s Tech going on today framework Lunch Usage review, Refine Context, models Domain Review, Retrospective Plan week 2
Puzzlers Achievements Actions
Conclusion:
When you return: Create an elevator pitch with your customer
Thank you Johannes Brodwall jbr@exilesoft. com www. johannesbrodwall. com @jhannes
- Slides: 75