Who is Agile?Startups Agile with out thinking about it Release early, release often Lean startups – agile customer devCorporate Agile Consultants Hired by clients that are not agile Tend to define the words Can explain the process
Agile history and forecast1. Microsoft daily build, Netscape weekly beta releases2. Agile manifesto. From consultants. Several named methodologies, like Scrum3. Corporate Agile phase, scrum masters, etc.4. Scrum / Kanban / XP / Lean -> Generic lightweight5. Large scale and ecosystem. Code contribution process, “Backwards Agile”6. Distributed agile software and hardware dev7. Wider array of acceleration tools, wielded by tech leads
Large Agile Projects Agile methodologies were designed for small co- located teams of 5-10 people This has been working well because productivity increases, more projects come into the scope of small teams. Also driving the startup world. Loading the dice: Small teams are always more efficient with any methodology The real proof, and expense, is in large projects. Not covered by most agile methodologies
Large scale agile methods Mythical Man Month claims – control communication Scrum of Scrums – hierarchical control Backward Agile – Do the planning at the end Code contribution mechanisms for Backward Agile Code review systems Continuous release and Kanban tendencies Cross-team dependency resolution, “all at once,” not scrum of scrums. Problem is dependency, not communication
Five Acceleration StreamsSoftware development is getting more productive. Five contributors:1. Methodologies, like Agile, and management2. Tools3. Platforms and code4. Cloud and on-demand resources5. Staffing innovations (on-demand, outsource, crowdsource, distributed)Future: Need to work across all of these
Global and Distributed Teams Agile methodologies SPECIFY co-location. Only about 20% of modern software teams are co- located We focus on truly global teams, as opposed to teams with multiple locations, “insourced” and “outsourced” Possible with a few simple tools and techniques
6 Keys to Distributed Agile1. Share a daily or continuous build2. Release on a fixed schedule3. Write it down in tickets4. Daily report and chat5. Watch a team activity stream6. Recruit good people
6 Things to skipIncreased productivity comes from doing less work1. Travel2. Architect in Advance (ALAP controversy)3. Add project managers4. Conference Call5. Interview6. Estimate
Distributed Agile Hardware Dev You can run distributed agile development in any situation where you can do a daily build at your locations Modeling, Simulation, TTL inventory, FPGA, 3-D printers, on-demand fabrication, etc. Other on-site build tools? Emerging “builder” communities and open source hardware
Technical leads Project Manager – knows the process, can lead, but does not know the subject matter Scrum master – Coach for the team. Neither a leader nor a developer. Huh? Technical lead – Developer who leads the development team, manages the immediate stack of tasks Needs some simple management training Required for distributed teams. They communicate by sharing code and designs.
Technical Lead Skills Development: You should be a developer, a good one. Release Management: Your main job is to resolve needs and roadblocks. Keep everyone working and builds running. Product Management: Prioritize. Saleable, and minimum releasable features. Let data drive your development by always gathering data for your problems and to prove your solutions. Recruiting: Learn how to test people inside the team. Don’t waste time with paper work. Document the “getting started” and learn to do “on boarding” to help them get started. Managing People: Be honest and helpful. Understand communication problems instead of getting angry about them.
For More Information: www.assembla.com blog.assembla.com 1-781-583-7541Get a 30-day FREE trial of Assembla at www.assembla.com/plans