380 likes | 635 Views
Classic Mistakes and Critical Success Factors. Outline. Classic Software Engineering Mistakes 2 case studies of Agile projects that failed Common Mistakes in Agile Projects Critical Success Factors for Agile Projects. Classic Mistakes. IT Project Management: Infamous
E N D
Outline Classic Software Engineering Mistakes 2 case studies of Agile projects that failed Common Mistakes in Agile Projects Critical Success Factors for Agile Projects
Classic Mistakes IT Project Management: Infamous failures, Classic mistakes, and best practices MIS Quarterly 2007, R. Ryan Nelson
Classic Mistakes People Process Product Technology
Classic Mistakes : People Undermined motivation Individual capabilities of the team members Failure to take action to deal with a problem employee Adding people to a late project
Classic Mistakes : Process • Waste time on fuzzy front end, approval and budgeting, aggressive schedule later • human tendency to underestimate and produce overly optimistic schedules • Insufficient risk management • lack of sponsorship, changes in stakeholder commitment, scope creep, and contractor failure. • Risks from outsourcing and offshoring • QA, interfaces, unstable requirements
Classic Mistakes : Product • Requirements gold-plating • unnecessary product size and/or characteristics • Developer gold-plating • Developers try out new technology / features • Feature creep • +/- 25% change in requirements over lifetime
Classic Mistakes : Technology • Silver-bullet syndrome • Expect new technology to solve all problems • 4GL, CASE tools, OOD • Overestimated savings from new tools or methods • Did not account for learning curve and unknown unknowns • Switching tools in the middle of a project • Version upgrade
Findings from empirical Study – 99 projects • Finding 1 • People (43%), Process (45%), Product (8%), Technology (4%) • Scope creep • Not a top 10, although ¼ of the projects faced scope creep and manager should watch out for it. • Top 3 mistakes found in ½ of the projects • Should have focused more on estimation, scheduling, stakeholders management, risk management
Common mistakes in Agile adoption Big-Bang Change or Training is enough https://dzone.com/articles/5-common-mistakes-in-agile-transformations
Outline Classic Software Engineering Mistakes 2 case studies of Agile projects that failed Common Mistakes in Agile Projects Critical Success Factors for Agile Projects
Case 1: Kanban Weakspot • Presumption: • “Kanban failures, it can be boiled down to people” • ineffectiveness to the system, not to the people • You can find potential Kanban weak spot on Kanban board http://blog.brodzinski.com/2011/10/when-kanban-fails.html
Kanban Board diagnosis • Not keeping the board up to date • doesn’t reflect the reality and your team is making their everyday project decisions basing on a lie • E.g. bottleneck in testing but not shown on a Kanban board, a developer would decide to start building a new feature instead of helping to sort bottleneck out • Make it Worse, instead of Make it Work http://blog.brodzinski.com/2011/10/when-kanban-fails.html
Kanban Board diagnosis • a board showing the way they’d like to work, and not the way they really work • not only making decisions basing on a lie again but it’s also more difficult to get things back on the right track again • not enough to update the sticky notes – you need to fix the design of the board too http://blog.brodzinski.com/2011/10/when-kanban-fails.html
Kanban Board diagnosis • Forgetting about a good old rule: KISS • End up over-engineering the board, • New symbol, new color • bury important information under the pile of meaningless data • Soon, people aren’t able to tell what means what and which visual represent which situation. • Lost > stop to care > back to square one http://blog.brodzinski.com/2011/10/when-kanban-fails.html
Kanban Board diagnosis • Not treat “limit” seriously • Limit the “work-in-progress” • No new feature, if the flow is not good http://blog.brodzinski.com/2011/10/when-kanban-fails.html
Not a project management tool • Kanban is not a project management tool, not a software process model, not a development approach • Kanban is a change-management approach • Or a process-driving tool • Use Kanban on top of other process model http://blog.brodzinski.com/2011/10/when-kanban-fails.html
Case 2: Pair Programming or Chatting • Common things in Pair Programming environment • Open Space • One Monitor • One keyboard • Discussion • Coffee !! http://www.nayima.be/html/chattingorpairprogramming.pdf
Pair Programming http://www.codinghorror.com/blog/2007/11/pair-programming-vs-code-reviews.html • Challenges • Not for everyone • Split Focus • No pride in ownership • No escape • Need a good chemistry / compatible pair • fivefold variation in programmer productivity, there is at least a fivefold variation in my own productivity from day to day http://tersesystems.com/2010/12/30/where-pair-programming-fails-for-me
Some ways to fail PP • Researching new technology • “Click on that link, no wait scroll up, over there, wait I wasn’t done reading that…” • Getting your environment going • When the environment (compiled source code, people, infrastructure) is not ready, no productivity • Paralysis • Style clashes, not comfortable writing something • Need TDD • Objective for each session • Weird rituals • Timer, Music http://www.agileatwork.com/5-ways-to-fail-at-pair-programming-2/
Outline Classic Software Engineering Mistakes 2 case studies of Agile projects that failed Common Mistakes in Agile Projects Critical Success Factors for Agile Projects
Common mistakes in Agile adoption • Big-Bang Change • What to do: • Pilot project • Start with a tiger team, then cross pollination • Start small • Having an in-house Agile Coach or Process Coach
Common mistakes in Agile adoption • Thinking your transformation is done • There is no “best practice”, no “silver bullet” • You won’t get it right at the first time • Use Sprint Review for Product Improvement • Use Sprint Retrospective for Process Improvement • Inspect and Adapt
Common mistakes in Agile adoption • Inappropriate Backlog Management • Un-Ready Product Backlog • Use “Definition of Ready” • Add new backlog item mid-sprint • Wait for the next train
Common mistakes in Agile adoption • Stakeholders are not committed • Product Owner is not available / not involved • Product Owner handles too many teams • Consider using a Product Manager • Scrum Master is not the project manager • Not command and control, but empower the team • No customer representatives / Business people • Find a proxy • Not involve supporting team • Contract, HR, testers
Common mistakes in Agile adoption • Poor communication • No transparency • Geographically dispersed • Not raising issues fast enough • What to do: • Set up a team area • Encourage face-to-face communication
Common mistakes in Agile adoption • Team management • Not a cross-functional team • High turnover • Working on multiple projects at a time • Team is not empowered : waiting for decision
Common mistakes in Agile adoption • Ignoring Quality • Not tracking or mitigating Technical Debt • No code refactoring • No peer review • Skip demo or duck-taping the demo • Skip Definition of Done • Give up Test Coverage
Common mistakes in Agile adoption • Use wrong metrics, • SLOC count • Make sure to look at both production SLOC and Test SLOC • Number of unit tests written • Measure by working code, not tests • Individual velocity or compare velocity between teams • Team, not individual • Compare same team but different sprints • Useful metrics: Value delivered, on time delivery, burn down / burn-up, cumulative flow diagram • Use metrics wrong • Use metrics as a target, as a measure of performance • Link metrics to goals, look at trends, change as appropriate
Outline Classic Software Engineering Mistakes 2 case studies of Agile projects that failed Common Mistakes in Agile Projects Critical Success Factors for Agile Projects
Critical Success Factors for Agile adoption • Stakeholder commitment • Leadership support, middle management support • Hire Agile coach • Customer Involvement (including HR, finance, etc) • Appropriate metrics • Quality and quantity • Appropriate Organizational structure • Start with a pilot project • People and Organizational preparation • Understand the risks
Critical Success Factors for Agile adoption • Process tailoring • No one size fits all • Fixed timebox • Quick turnaround time • Team composition • Knowledge, experience, and mindset • Multi-disciplinary • Requirements management • Continuous backlog grooming • Factor in / Bake in all –ilities • as acceptance criteria or Definition of Done
Critical Success Factors for Agile adoption • Embrace Software Engineering practices • Clean code, coding standards • Continuous development, integration, and testing • Continuous Improvement • Education and Training • Shared knowledge • Empower the team • Self- organizing, highly motivated • Bottom up approach
Critical Success Factors for Agile adoption • Tools and infrastructure • Co-located office • Tools that support collaboration and communication • System Complexity • Contracting language • Value-based system • Number of contractor • Requirements decomposability • System Scope
References IT Project Management: Infamous Failures, Classic Mistakes, and Best Practices https://www.knowledgehut.com/blog/agile-management/five-common-mistakes-in-agile https://hygger.io/blog/7-worst-mistakes-that-blow-up-your-agile-projects/ https://dzone.com/articles/5-common-mistakes-in-agile-transformations https://www.infoq.com/articles/not-destroy-team-metrics https://martinfowler.com/articles/useOfMetrics.html https://dzone.com/articles/10-common-scrum-mistakes-and-how-to-avoid-them https://help.rallydev.com/top-10-mistakes-teams https://www.credera.com/blog/business-insights/top-pitfalls-agile-development/