Every team or individual encounters pitfalls that attempt to derail the success of a project. Many times, theses pitfalls can be determined prior to encountering them. With proper planning, a team can take the appropriate measure to overcome any pitfall. In this session we discuss how planning starts during the estimation process and continues until the project is launched. Planning tasks that will be covered include; project estimation, feature specifications, use cases, wireframes, architecture, and build and release planning.
2. Who are these guys? James Polanco & Aaron Pedersen Co-founders of DevelopmentArc Web Application Architects Co-Authors of: Adobe Flash Platform from Start to Finish: Working Collaboratively Using Adobe Creative Suite 5 Understanding the Adobe Flex® 3 Component and Framework Lifecycle Understanding Flex 4 Component Development Developers of Maque, Adobe WorkflowLab, Scion.com, Yahoo! Flickr Mail, and much more...
4. Common pitfalls Budgets don’t allow for planning Clients don’t understand why they should pay for planning Clients often feel planning is already completed by their team Budgets are defined before your involvement Teams are worried they may lose the project, so we cut corners
5. Common pitfalls Estimation is done before planning Estimation is often mistakenly considered the planning phase Teams want goals before the problems are discovered Clients want you to fix bid based on a rough sketch of what they want We usually don’t really know what we want, yet we need to estimate how much it will cost
6. Common Pitfalls Excitement of a project buries planning Clients are eager to start development and gloss over the planning process Development teams (all disciplines) are eager to start doing what we do best
7. Common pitfalls Poorly implemented workflows give planning a bad name “The problem with waterfall is it’s all about planning” “We use agile because we can start developing right now” “We already did all the planning we need... at the start of the project”
9. Results of bad Planning Scope Creep Adding new features... is planning But did you plan for it? Estimation is done yet now we are adding new and unexpected features Unexplored features are often bigger then we expected Unexpected features lead reconsidering project milestones and goals
10. Results of bad Planning Over-budget & Overtime More features = more time More features = more resources More time + more resource = more $$$
11. Results of bad Planning Conflict Scope creep, budget bloat, extended deadlines cause unhappy clients Poorly planned projects puts extreme stress on the development team All work and no play, makes Jack a dull boy
13. Tasks of planning Brainstorming Brainstorming is a no-bounds or limit exercise Allow the client (or you) to brain dump their vision Include your team in this process Create a two-way conversation Defining Constraints Understand time and budget limits Prioritize time vs. budget
14. Tasks of planning Features Define features based on brainstorming results Prioritize features based on the defined constraints Feature list should be organized into “must have”, “nice to have”, “if we can” Technical Research Define any technical unknowns that could impact constraints Use this time to read up on and test technologies to understand their potential risk to the project
15. Tasks of planning Estimation Estimate each feature individually Organize based on priority Always give a range of time (ideal vs. risk), not just a set number of hours Budget for more planning tasks Use case development, specification development, prototyping and wire framing Budget for other non-feature specific tasks Meetings, emailing, source control, environment setup, QA and deployment
16. Tasks of planning Use Cases Create a set of use cases for each feature Always consider non-intuitive uses Use cases can be high-level or explicit based on the complexity of the feature Specifications Break features into clearly defined elements Consider each element as a task that can be assigned during the project This can be during sprints, iterations, backlogs, etc...
17. Tasks of planning Prototyping Used to explore technical implementations Used to explore usability Used to explore different UX options Used to gain quick feedback from clients and users
18. Tasks of planning Wireframes Wireframes can come before or after the prototype process (or both) Wireframes are visible representations of the feature specifications and use cases Wireframes offer a workflow for client and team interaction Wireframes can expose missing or unknown areas within the project Catch it early, and plan for it... rather then later and pay for it...
20. A bad scenario... Misunderstood “Agile” project ran on fixed bid Startup with grand (yet misunderstood) vision wants to launch yesterday... Tight, three month-deadline, meant no time for planning Inexperienced management team thought, “hey, let’s do this using Agile...”
21. A bad scenario... The Results Project was 12 months late... Multi-project managers were brought on and then let go during the project Countless hours were given away for free to the client Project team was disgruntled and had significant turnover Client was pissed!!!
22. A Slightly Better scenario... Startup has a “big” idea Wanted us to fix bid based on a 10 page slide deck of ideal features They were all brief descriptions of what the features were They wanted an estimate from us in a few days There were huge technical challenges and unknowns with almost every feature They had a 3-4 month window to complete before showing to egger investors
23. A Slightly Better scenario... The Results We told them no... at least not without some research We created a planning strategy to develop an estimate for the project Technical Research -> High-level Feature Spec -> Estimate of cost This estimation process cost us about 20 hours of unpaid time
24. A Slightly Better scenario... We didn’t get the project... The client saw the project was way larger then they initially understood and took a different approach We were actually happy to lose the 20 hours vs. committing to a project we didn’t understand This ended up saving us hundreds of hours and a metric shit-ton of money
26. How Much time? More then you think... Alan Cooper said (paraphrasing): “Don’t ask me how much the project will cost. Ask me how much it will cost you to have me tell you how much the project will cost...”
28. Convincing clients... Have planning and analysis as a separate contract This is the Alan Cooper approach Can save the client a ton of cash and energy Gives the client a well-thought out strategy for achieving their project’s goals We recommend that this is process is hourly-based, which can lead into fixed bid Gives you and the client something to return to throughout the project
29. Convincing clients... Give your clients better insight Help them understand the size and complexity of their project Keep them involved at each step of the planning to understand what, and most importantly, why you are doing it Allows for easier explanation of how “changing features” impacts the project
31. Planning never stops... Projects are continually evolving Features will change, it’s okay... this makes the project better in the long run Continue to update your documents to reflect any change Use project constraints to limit unnecessary (or unreasonable) change Prioritize change, with the understanding that something has to give to stay within the constraints We can’t catch everything up front, so budget for future unknowns
33. Thanks!!! Understanding Flex 4 Component Development http://bit.ly/ptJLhC Adobe Flash Platform from Start to Finish: Working Collaboratively Using Adobe Creative Suite 5 http://amzn.to/r0eqFs Adobe Flex 4 Component Development Training (August 10th) http://bit.ly/nb5ikl Download Maque Beta 3: http://maqueapp.com