Johannes Brodwall Getting your project off the ground
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.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.Create the roadmap 8.Dramatize the demo
When
MondayTuesdayWednesdayThursdayFriday Elevator pitch, Stakeholders Usage flow Dev infrastructure Dev baseline Review usage RoadmapWrap up docs Dev baseline Lunch Look at what’s going on today Tech framework Usage review, Context, Domain Refine models Review, Retrospective Plan week 2 Typical plan for kickoff
MondayTuesdayWednesdayThursdayFriday Elevator pitch, Stakeholders Usage flow Dev infrastructure Dev baseline Review usage RoadmapWrap up docs Dev baseline Lunch Look at what’s going on today Tech framework Usage review, Context, Domain Refine models Review, Retrospective Plan week 2 Typical plan for kickoff
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.
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?
MondayTuesdayWednesdayThursdayFriday Elevator pitch, Stakeholders Usage flow Dev infrastructure Dev baseline Review usage RoadmapWrap up docs Dev baseline Lunch Look at what’s going on today Tech framework Usage review, Context, Domain Refine models Review, Retrospective Plan week 2 Typical plan for kickoff
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
MondayTuesdayWednesdayThursdayFriday Elevator pitch, Stakeholders Usage flow Dev infrastructure Dev baseline Review usage RoadmapWrap up docs Dev baseline Lunch Look at what’s going on today Tech framework Usage review, Context, Domain Refine models Review, Retrospective Plan week 2 Typical plan for kickoff
Describe the usage
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
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
1.A new company wants to hire a skilled worker for a temporary position 2.Administrative user adds the client details and login to the system 3.Client logs into the application and completes new position description, including skill requirements 4.Temp agency adds a worker and proposes the worker to a position registered by a client 5.Client gets notified of new proposals (via ) 6.Client views status of all open positions in the system 7.External to the system: Client interviews candidate, request further information and makes a decision whether to hire or not 8.Client accepts or rejects the worker in the system 9.As worker performs work, they register their time in the system 10.At the end of a billing period, the system generates billing information to accounting system and salary information to salary system
MondayTuesdayWednesdayThursdayFriday Elevator pitch, Stakeholders Usage flow Dev infrastructure Dev baseline Review usage RoadmapWrap up docs Dev baseline Lunch Look at what’s going on today Tech framework Usage review, Context, Domain Refine models Review, Retrospective Plan week 2 Typical plan for kickoff
MondayTuesdayWednesdayThursdayFriday Elevator pitch, Stakeholders Usage flow Dev infrastructure Dev baseline Review usage RoadmapWrap up docs Dev baseline Lunch Look at what’s going on today Tech framework Usage review, Context, Domain Refine models Review, Retrospective Plan week 2 Typical plan for kickoff
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 JavaScript/Spring MVC Client manager: Responsive JavaScript/Spring MVC Applicant: Responsive JavaScript/Spring MVC Worker: Responsive JavaScript/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
MondayTuesdayWednesdayThursdayFriday Elevator pitch, Stakeholders Usage flow Dev infrastructure Dev baseline Review usage RoadmapWrap up docs Dev baseline Lunch Look at what’s going on today Tech framework Usage review, Context, Domain Refine models Review, Retrospective Plan week 2 Typical plan for kickoff
Solo programming
Integration issues Inconsistent coding Merge conflicts
Mob programming
Pair programming
Resource utilization vs Knowledge sharing
MondayTuesdayWednesdayThursdayFriday Elevator pitch, Stakeholders Usage flow Dev infrastructure Dev baseline Review usage RoadmapWrap up docs Dev baseline Lunch Look at what’s going on today Tech framework Usage review, Context, Domain Refine models Review, Retrospective Plan week 2 Typical plan for kickoff
1.A new company wants to hire a skilled worker for a temporary position 2.Administrative user adds the client details and login to the system 3.Client logs into the application and completes new position description, including skill requirements 4.Temp agency adds a worker and proposes the worker to a position registered by a client 5.Client gets notified of new proposals (via ) 6.Client views status of all open positions in the system 7.External to the system: Client interviews candidate, request further information and makes a decision whether to hire or not 8.Client accepts or rejects the worker in the system 9.As worker performs work, they register their time in the system 10.At the end of a billing period, the system generates billing information to accounting system and salary information to salary system
1.Experimental create open position 2.Experimental list positions 3.Simplified create open position 4.Simplified list positions 5.Complete create open positions 6.Complete list positions 7.…
1.Experimental create open position 2.Experimental list positions 3.Simplified create open position 4.Simplified list positions 5.Complete create open positions 6.Complete list positions 7.Basic create client account 8.Complete create client account 9.Basic login admin user 10.Basic login client user 11.Complete login client user 12.Basic add worker 13.Complete add worker 14.Basic propose worker for position 15.Complete propose worker for position 16.Complete confirm worker for position 17.Basic enter timesheet (in this version temp agency enters on behalf of worker) 18.Experimental billing report 19.Basic billing report 20.Basic salary report
20.… 21.Attend training on CSS 22.Basic layout and styling of web pages 23.Complete layout and styling of web pages 24.Polished layout and styling of web pages 25.Locate slowest pages and make some performance improvements 26.Deploy solution to target platform 27.Deploy demo version to wider set of stakeholders 28.Deploy pilot version 29.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
MondayTuesdayWednesdayThursdayFriday Elevator pitch, Stakeholders Usage flow Dev infrastructure Dev baseline Review usage RoadmapWrap up docs Dev baseline Lunch Look at what’s going on today Tech framework Usage review, Context, Domain Refine models Review, Retrospective Plan week 2 Typical plan for kickoff
Plan the show
Demo script
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
1.A new company wants to hire a skilled worker for a temporary position 2.Administrative user adds the client details and login to the system 3.Client logs into the application and completes new position description, including skill requirements 4.Temp agency adds a worker and proposes the worker to a position registered by a client 5.Client gets notified of new proposals (via ) 6.Client views status of all open positions in the system 7.External to the system: Client interviews candidate, request further information and makes a decision whether to hire or not 8.Client accepts or rejects the worker in the system 9.As worker performs work, they register their time in the system 10.At the end of a billing period, the system generates billing information to accounting system and salary information to salary system
1.A new company wants to hire a skilled worker for a temporary position 2.Administrative user adds the client details and login to the system 3.Client logs into the application and completes new position description, including skill requirements 4.Temp agency adds a worker and proposes the worker to a position registered by a client 5.Client gets notified of new proposals (via ) 6.Client views status of all open positions in the system 7.External to the system: Client interviews candidate, request further information and makes a decision whether to hire or not 8.Client accepts or rejects the worker in the system 9.As worker performs work, they register their time in the system 10.At the end of a billing period, the system generates billing information to accounting system and salary information to salary system
MondayTuesdayWednesdayThursdayFriday Elevator pitch, Stakeholders Usage flow Dev infrastructure Dev baseline Review usage RoadmapWrap up docs Dev baseline Lunch Look at what’s going on today Tech framework Usage review, Context, Domain Refine models Review, Retrospective Plan week 2 Typical plan for kickoff
3 tools
1.Discuss the problem 2.Describe the system 3.Plan the show
1.Elevator pitch 2.Context diagram 3.Demo script
MondayTuesdayWednesdayThursdayFriday Elevator pitch, Stakeholders Usage flow Dev infrastructure Dev baseline Review usage RoadmapWrap up docs Dev baseline Lunch Look at what’s going on today Tech framework Usage review, Context, Domain Refine models Review, Retrospective Plan week 2 Typical plan for kickoff
Achievements Actions Puzzlers
Conclusion:
When you return: Create an elevator pitch with your customer
Thank you Johannes Brodwall