Many doubt it to be so, but Agile Development and supporting Agile software DOES have a place among Government Agencies. Tune in to see the successes and failures as the FBI attempted to utilize Agile Development practices
Bertrand Meyer presents an overview of agile methods and provides an assessment of their merits and shortcomings. He discusses key agile concepts like the agile manifesto and principles. Meyer then evaluates what he sees as the good aspects of agile such as frequent iterations and emphasis on working code, as well as the ugly aspects like rejection of upfront requirements and analysis. Finally, he cautions that proper assessment of agile methods requires avoiding rhetorical devices and unverifiable claims often used in agile discourse.
This document provides an introduction to agile principles and practices. It discusses that agile values responding to change, continuous delivery, collaboration between teams, and delivering working software frequently through iterative development. It outlines three common agile practices: continuous feedback through testing, test-driven development, and continuous integration. The document emphasizes failing fast and delivering minimum viable products to adapt to changing needs.
This is a presentation made to Surge Accelerator in Houston in March 2013. This serves as a Guide to Early Stage Technology Companies, building enterprise class software.
This covers the typical lifecycle of a software start-up, fundamentals of Agile software development, and some do's and don't for how to build successful software companies.
This document discusses best practices for using agile product development for hardware projects. It provides differences between hardware and software development such as hardware being more difficult to change after manufacturing. It recommends using scrum with a focus on technical stories for hardware. An example project at Thermo Fisher Scientific developing analytical chemistry equipment is described that successfully used scrum. Key lessons learned include the product owner also being a team member, most deliverables being behind the scenes technical work rather than user-facing, and estimation and velocity being more challenging for hardware projects.
- The document compares Agile and waterfall methodologies, noting that Agile prioritizes individuals, collaboration, and responding to change over comprehensive documentation and following a strict plan.
- It provides best practices for Agile development like avoiding over-planning, utilizing acceptance criteria, and conducting retrospective meetings to improve.
- Tips are given for Spring-based product development like using Maven and best Java features while avoiding vendor lock-in, as well as for recovering investment costs through prioritizing features by business value and ROI.
The document discusses Agile development, which is a group of software development methodologies based on iterative development and collaboration between cross-functional teams. Agile development aims to reduce time to market, delivery risk, and costs through an iterative delivery process and applying lean production principles. It allows for requirements and solutions to evolve through collaboration. Agile development methodologies include Scrum, FDD, XP, and others.
High Performance Software Engineering TeamsLars Thorup
Based on my experiences building high performance engineering teams, this presentation focuses on the technical practices required. These practices centers around automation (build, test and deployment) and increased collaboration between Engineering and QA (TDD, exploratory testing, prioritization, feedback cycles).
Many doubt it to be so, but Agile Development and supporting Agile software DOES have a place among Government Agencies. Tune in to see the successes and failures as the FBI attempted to utilize Agile Development practices
Bertrand Meyer presents an overview of agile methods and provides an assessment of their merits and shortcomings. He discusses key agile concepts like the agile manifesto and principles. Meyer then evaluates what he sees as the good aspects of agile such as frequent iterations and emphasis on working code, as well as the ugly aspects like rejection of upfront requirements and analysis. Finally, he cautions that proper assessment of agile methods requires avoiding rhetorical devices and unverifiable claims often used in agile discourse.
This document provides an introduction to agile principles and practices. It discusses that agile values responding to change, continuous delivery, collaboration between teams, and delivering working software frequently through iterative development. It outlines three common agile practices: continuous feedback through testing, test-driven development, and continuous integration. The document emphasizes failing fast and delivering minimum viable products to adapt to changing needs.
This is a presentation made to Surge Accelerator in Houston in March 2013. This serves as a Guide to Early Stage Technology Companies, building enterprise class software.
This covers the typical lifecycle of a software start-up, fundamentals of Agile software development, and some do's and don't for how to build successful software companies.
This document discusses best practices for using agile product development for hardware projects. It provides differences between hardware and software development such as hardware being more difficult to change after manufacturing. It recommends using scrum with a focus on technical stories for hardware. An example project at Thermo Fisher Scientific developing analytical chemistry equipment is described that successfully used scrum. Key lessons learned include the product owner also being a team member, most deliverables being behind the scenes technical work rather than user-facing, and estimation and velocity being more challenging for hardware projects.
- The document compares Agile and waterfall methodologies, noting that Agile prioritizes individuals, collaboration, and responding to change over comprehensive documentation and following a strict plan.
- It provides best practices for Agile development like avoiding over-planning, utilizing acceptance criteria, and conducting retrospective meetings to improve.
- Tips are given for Spring-based product development like using Maven and best Java features while avoiding vendor lock-in, as well as for recovering investment costs through prioritizing features by business value and ROI.
The document discusses Agile development, which is a group of software development methodologies based on iterative development and collaboration between cross-functional teams. Agile development aims to reduce time to market, delivery risk, and costs through an iterative delivery process and applying lean production principles. It allows for requirements and solutions to evolve through collaboration. Agile development methodologies include Scrum, FDD, XP, and others.
High Performance Software Engineering TeamsLars Thorup
Based on my experiences building high performance engineering teams, this presentation focuses on the technical practices required. These practices centers around automation (build, test and deployment) and increased collaboration between Engineering and QA (TDD, exploratory testing, prioritization, feedback cycles).
This webinar will provide guidance for proper planning and managing, in order to get your distributed teams working smoothly and effectively. Prerequisites: A working knowledge of Lean and Scrum NPD methods (stand-up meetings, user stories, backlog, sprints, burn-down charts, etc.)
We will cover the following topics in this webinar:
· Qualifying and monitoring distributed partners
· Planning an Agile project
· Project execution across time-zones and cultures
· Encouraging true Innovation and Collaboration
· Effective Internet tools
· Q&A
This document discusses agile adoption in real world contexts. It emphasizes that agile adoption takes time, typically 3-5 years, and requires executive commitment. Common pitfalls include terminology abuse and an overreliance on user stories without considering other requirements. Automating processes through continuous integration is important for agile development. While agile principles have remained relevant, some argue the manifesto could be updated to reflect a greater focus on learning and customer empathy over just responding to change. The presentation concludes with questions about bringing change to companies, encouraging reluctant employees, and measuring agile maturity.
The Role of a BA on a Scrum Team IIBA Presentation 2010scrummasternz
What is your role as a BA on a Scrum team? How do you fit in? This presentation was given to the IIBA conference in NZ in 2010 by Stephen Reed. Stephen had worked extensively as a BA and moved into using Scrum with multiple teams at a large Insurance company. This experience led to a lot of questions around what the BA should be doing on a Scrum team. This presentation goes some way to listing what worked in the teams Stephen was involved in. The BA role does not change and all the skills of a great BA are necessary still on a great Software Development team, just more focused on being a team member and utilising those skills for the Scrum process of getting working software to the customer with more focus and clarity for the user.
The document provides an overview of the Agile movement and methodologies. It discusses that Agile aims to be more responsive to customer needs than traditional methods through iterative development, collaboration, and adaptation. It summarizes key aspects of various Agile methods including extreme programming (XP), Scrum, Agile modeling (AM), and how CMMI and Agile frameworks can work together to improve processes. The document serves as an introduction to core Agile principles and practices for software development.
Building High Performance Engineering Teams - Focus on People - Scrum Austral...Nicholas Muldoon
Twitter has grown from a handful of engineers to over a 1,000 in a few years. To be successful at such a scale requires finding the right people and making sure they are productive and solving valuable customer problems.
In this session Nicholas shares the techniques Twitter uses to hire amazing people, unleash their productivity, assess their performance, and improve the flock. Don't miss your chance to see how one of the fastest growing tech companies in Silicon Valley operates and retains the brightest talent.
This document provides an overview of Agile project management principles and practices. It begins with introductions of the presenter and their experience in Agile software development. It then discusses various project methodologies like Waterfall, Kanban, Scrum, and Test Driven Development. Key Agile principles are outlined from the Agile Manifesto. The roles of Product Owner, Scrum Master, and development team are defined. Practices like sprint planning, daily standups, reviews and retrospectives are described. The document aims to provide a high-level introduction to Agile concepts, roles and processes.
This document discusses various metrics that can be used to measure agile processes. It begins by defining what a metric is and explaining common process improvement cycles. It then outlines different categories of metrics including business, process, code, design, testing, and automation metrics. Examples are provided for each category. The document notes that choosing the right metric is important and should encourage desired behavior, be easy to measure, and provide periodic feedback. It emphasizes that both leading and lagging metrics should be considered to measure productivity, predictability, quality, and value.
This document summarizes a webinar by Allan Kelly on Agile basics. It discusses 5 key Agile concepts: quality, visualization of work, iterations, working in small batches, and vertical teams. For each concept, it provides details on practices like test-driven development, burn down charts, 2-week iterations, small stories and tasks, and fully staffed cross-functional teams. It emphasizes that following even one of these basics can improve outcomes, and following all 5 provides greater benefits to managing software projects in an Agile way.
How Salesforce built a Scalable, World-Class, Performance Engineering TeamSalesforce Developers
Salesforce built a scalable performance engineering team by establishing engineer to developer ratios, embedding performance testing into scrum teams, developing extensive automation frameworks and test environments, and creating synthetic workloads that mimic real-world production traffic shapes and loads to thoroughly test new features and identify performance issues. The performance engineering team works closely with development teams throughout the release process to catch issues early and optimize performance.
Agile Testing: The Role Of The Agile TesterDeclan Whelan
This presentation provides an overview of the role of testers on agile teams.
In essence, the differences between testers and developers should blur so that focus is the whole team completing stories and delivering value.
Testers can add more value on agile teams by contributing earlier and moving from defect detection to defect prevention.
Agile Metrics - ASTQB Workshop by Philip Lew - XBOSoftXBOSoft
When implementing software quality metrics, you need to first understand the purpose of the metric and who will be using it. Will the metric be used for measuring people, the process, illustrate the level of quality in software products, or drive towards a specific objective? QA managers typically want to deliver productivity metrics, while management may want to see metrics that support customer or user satisfaction or cost related (ROI) initiatives.
With agile development methods, we often lose sight that our primary objective is the same: quality. We’ve also added the primary objective of velocity. However, we don’t now how to measure it other than ‘velocity’ itself.
With a agile mindset, define quality for your organization with an agile looking glass. Deliver software quality metrics with actionable objectives toward increasing or improving agile’s two primary objectives, quality and velocity for working software.
You Will Learn:
-- Mistakes people make in agile metrics and how to avoid them.
-- How to consistently and systematically improve root causes of low velocity.
-- How to reduce rework.
-- How to analyze your agile process and determine meaningful metrics to present to management.
Software Development Model for StartupsMartin Verrev
This document presents a software development model tailored for startups. It analyzes key constraints and success factors for startups. The model formalizes a development process from initial idea to successful company. It incorporates agile practices, validated learning to reduce uncertainty, and archetype patterns to provide architectural stability. The result is a SPEM-compliant process model that supports a startup lifecycle through formalized business processes and repeatable components to minimize various uncertainties.
For numerous large enterprises, the alignment of hardware and software processes is critical to managing an Agile environment. Agile Hardware implementations can be put in place by using the same framework as our typical Agile Software Development transformations. Start off with assessing the organization’s current state, then move to planning and preparing by and putting together a transition backlog, start execution with training and coaching, spread the cultural shift with change management and maintain and scale the transformation.
This document provides an overview of agile methodology compared to traditional waterfall methodology. It discusses that agile is more suitable for new product development where requirements are evolving, while waterfall is better for maintaining mature systems. Agile focuses on quick iterations, customer involvement, and frequent releases to adapt to changes. Though agile has less formal processes than waterfall, it still includes change control and quality assurance. The roles and responsibilities in agile include business analysts to define requirements, architects to design solutions, developers to build code, testers to validate quality, and project managers to deliver projects on schedule and budget.
Presentation I gave to the Chicago ACM about Lean Software Development. Full audio can be found here:
https://soundcloud.com/griffinc/intro-to-lean-software
Lean Concepts & Agile Software MethodologiesBrad Smith
Presentation introducing the core concepts of Lean in manufacturing and an exploration of the various Agile software engineering approaches which apply these principles to increase the responsiveness of product development.
Download and reference notes for full detail.
Webvirtue is a leading offshore software development company based in India specialized in ecommerce software development, custom software development, web software development and more. For more details visit here http://www.webvirtue.com/software-development.php
The document discusses two types of "Agile elephants" - hiding elephants which provide little information and fighting elephants which provide contradictory information. It focuses on how to handle non-functional requirements (NFRs) and technical stories, which are often elephants in Agile projects. It recommends tracking NFRs in acceptance criteria, backlogs, definitions of done, or separate specifications. Technical stories should not be treated as user stories, and the document discusses debates around including them in velocity estimates. It also provides techniques for estimating entire projects by decomposing epics and features into user stories.
Building Enterprise Applications on Google Cloud Platform Cloud Computing Exp...Chris Schalk
This is a presentation given by Google Developer Advocate Chris Schalk at Cloud Expo in NYC on June 8th 2011 on building enterprise applications with Google's Cloud Platform.
Google Cloud Platform 2014Q1 - Starter GuideSimon Su
This document provides an overview and introduction to Google Cloud Platform products and services including Cloud Datastore, Cloud Storage, Cloud SQL, BigQuery, App Engine, Compute Engine, and more. Key features and benefits are highlighted for each service such as scalability, availability, developer tools and SDKs, pricing models, and comparisons to other cloud offerings. Code samples and steps to get started with the services are also provided.
This webinar will provide guidance for proper planning and managing, in order to get your distributed teams working smoothly and effectively. Prerequisites: A working knowledge of Lean and Scrum NPD methods (stand-up meetings, user stories, backlog, sprints, burn-down charts, etc.)
We will cover the following topics in this webinar:
· Qualifying and monitoring distributed partners
· Planning an Agile project
· Project execution across time-zones and cultures
· Encouraging true Innovation and Collaboration
· Effective Internet tools
· Q&A
This document discusses agile adoption in real world contexts. It emphasizes that agile adoption takes time, typically 3-5 years, and requires executive commitment. Common pitfalls include terminology abuse and an overreliance on user stories without considering other requirements. Automating processes through continuous integration is important for agile development. While agile principles have remained relevant, some argue the manifesto could be updated to reflect a greater focus on learning and customer empathy over just responding to change. The presentation concludes with questions about bringing change to companies, encouraging reluctant employees, and measuring agile maturity.
The Role of a BA on a Scrum Team IIBA Presentation 2010scrummasternz
What is your role as a BA on a Scrum team? How do you fit in? This presentation was given to the IIBA conference in NZ in 2010 by Stephen Reed. Stephen had worked extensively as a BA and moved into using Scrum with multiple teams at a large Insurance company. This experience led to a lot of questions around what the BA should be doing on a Scrum team. This presentation goes some way to listing what worked in the teams Stephen was involved in. The BA role does not change and all the skills of a great BA are necessary still on a great Software Development team, just more focused on being a team member and utilising those skills for the Scrum process of getting working software to the customer with more focus and clarity for the user.
The document provides an overview of the Agile movement and methodologies. It discusses that Agile aims to be more responsive to customer needs than traditional methods through iterative development, collaboration, and adaptation. It summarizes key aspects of various Agile methods including extreme programming (XP), Scrum, Agile modeling (AM), and how CMMI and Agile frameworks can work together to improve processes. The document serves as an introduction to core Agile principles and practices for software development.
Building High Performance Engineering Teams - Focus on People - Scrum Austral...Nicholas Muldoon
Twitter has grown from a handful of engineers to over a 1,000 in a few years. To be successful at such a scale requires finding the right people and making sure they are productive and solving valuable customer problems.
In this session Nicholas shares the techniques Twitter uses to hire amazing people, unleash their productivity, assess their performance, and improve the flock. Don't miss your chance to see how one of the fastest growing tech companies in Silicon Valley operates and retains the brightest talent.
This document provides an overview of Agile project management principles and practices. It begins with introductions of the presenter and their experience in Agile software development. It then discusses various project methodologies like Waterfall, Kanban, Scrum, and Test Driven Development. Key Agile principles are outlined from the Agile Manifesto. The roles of Product Owner, Scrum Master, and development team are defined. Practices like sprint planning, daily standups, reviews and retrospectives are described. The document aims to provide a high-level introduction to Agile concepts, roles and processes.
This document discusses various metrics that can be used to measure agile processes. It begins by defining what a metric is and explaining common process improvement cycles. It then outlines different categories of metrics including business, process, code, design, testing, and automation metrics. Examples are provided for each category. The document notes that choosing the right metric is important and should encourage desired behavior, be easy to measure, and provide periodic feedback. It emphasizes that both leading and lagging metrics should be considered to measure productivity, predictability, quality, and value.
This document summarizes a webinar by Allan Kelly on Agile basics. It discusses 5 key Agile concepts: quality, visualization of work, iterations, working in small batches, and vertical teams. For each concept, it provides details on practices like test-driven development, burn down charts, 2-week iterations, small stories and tasks, and fully staffed cross-functional teams. It emphasizes that following even one of these basics can improve outcomes, and following all 5 provides greater benefits to managing software projects in an Agile way.
How Salesforce built a Scalable, World-Class, Performance Engineering TeamSalesforce Developers
Salesforce built a scalable performance engineering team by establishing engineer to developer ratios, embedding performance testing into scrum teams, developing extensive automation frameworks and test environments, and creating synthetic workloads that mimic real-world production traffic shapes and loads to thoroughly test new features and identify performance issues. The performance engineering team works closely with development teams throughout the release process to catch issues early and optimize performance.
Agile Testing: The Role Of The Agile TesterDeclan Whelan
This presentation provides an overview of the role of testers on agile teams.
In essence, the differences between testers and developers should blur so that focus is the whole team completing stories and delivering value.
Testers can add more value on agile teams by contributing earlier and moving from defect detection to defect prevention.
Agile Metrics - ASTQB Workshop by Philip Lew - XBOSoftXBOSoft
When implementing software quality metrics, you need to first understand the purpose of the metric and who will be using it. Will the metric be used for measuring people, the process, illustrate the level of quality in software products, or drive towards a specific objective? QA managers typically want to deliver productivity metrics, while management may want to see metrics that support customer or user satisfaction or cost related (ROI) initiatives.
With agile development methods, we often lose sight that our primary objective is the same: quality. We’ve also added the primary objective of velocity. However, we don’t now how to measure it other than ‘velocity’ itself.
With a agile mindset, define quality for your organization with an agile looking glass. Deliver software quality metrics with actionable objectives toward increasing or improving agile’s two primary objectives, quality and velocity for working software.
You Will Learn:
-- Mistakes people make in agile metrics and how to avoid them.
-- How to consistently and systematically improve root causes of low velocity.
-- How to reduce rework.
-- How to analyze your agile process and determine meaningful metrics to present to management.
Software Development Model for StartupsMartin Verrev
This document presents a software development model tailored for startups. It analyzes key constraints and success factors for startups. The model formalizes a development process from initial idea to successful company. It incorporates agile practices, validated learning to reduce uncertainty, and archetype patterns to provide architectural stability. The result is a SPEM-compliant process model that supports a startup lifecycle through formalized business processes and repeatable components to minimize various uncertainties.
For numerous large enterprises, the alignment of hardware and software processes is critical to managing an Agile environment. Agile Hardware implementations can be put in place by using the same framework as our typical Agile Software Development transformations. Start off with assessing the organization’s current state, then move to planning and preparing by and putting together a transition backlog, start execution with training and coaching, spread the cultural shift with change management and maintain and scale the transformation.
This document provides an overview of agile methodology compared to traditional waterfall methodology. It discusses that agile is more suitable for new product development where requirements are evolving, while waterfall is better for maintaining mature systems. Agile focuses on quick iterations, customer involvement, and frequent releases to adapt to changes. Though agile has less formal processes than waterfall, it still includes change control and quality assurance. The roles and responsibilities in agile include business analysts to define requirements, architects to design solutions, developers to build code, testers to validate quality, and project managers to deliver projects on schedule and budget.
Presentation I gave to the Chicago ACM about Lean Software Development. Full audio can be found here:
https://soundcloud.com/griffinc/intro-to-lean-software
Lean Concepts & Agile Software MethodologiesBrad Smith
Presentation introducing the core concepts of Lean in manufacturing and an exploration of the various Agile software engineering approaches which apply these principles to increase the responsiveness of product development.
Download and reference notes for full detail.
Webvirtue is a leading offshore software development company based in India specialized in ecommerce software development, custom software development, web software development and more. For more details visit here http://www.webvirtue.com/software-development.php
The document discusses two types of "Agile elephants" - hiding elephants which provide little information and fighting elephants which provide contradictory information. It focuses on how to handle non-functional requirements (NFRs) and technical stories, which are often elephants in Agile projects. It recommends tracking NFRs in acceptance criteria, backlogs, definitions of done, or separate specifications. Technical stories should not be treated as user stories, and the document discusses debates around including them in velocity estimates. It also provides techniques for estimating entire projects by decomposing epics and features into user stories.
Building Enterprise Applications on Google Cloud Platform Cloud Computing Exp...Chris Schalk
This is a presentation given by Google Developer Advocate Chris Schalk at Cloud Expo in NYC on June 8th 2011 on building enterprise applications with Google's Cloud Platform.
Google Cloud Platform 2014Q1 - Starter GuideSimon Su
This document provides an overview and introduction to Google Cloud Platform products and services including Cloud Datastore, Cloud Storage, Cloud SQL, BigQuery, App Engine, Compute Engine, and more. Key features and benefits are highlighted for each service such as scalability, availability, developer tools and SDKs, pricing models, and comparisons to other cloud offerings. Code samples and steps to get started with the services are also provided.
Google Cloud Platform - Building a scalable mobile applicationLukas Masuch
In this presentation we give an overview on several services of the Google Cloud Platform and showcase an Android application utilizing these technologies. We cover technologies, such as Google App Engine, Cloud Endpoints, Cloud Storage, Cloud Datastore and Google Cloud Messaging (GCM). We will talk about pitfalls, show meaningful code examples (in Java) and provide several tips and dev tools on how to get the most out of Google’s Cloud Platform.
Presentation (animated) on Agilve vs Iterative vs Waterfall models in SDLC.
Detailed comparison across Process, Planning, Execution and Completion.
#Cricket Analogy#
Waterfall (Test Match) vs Iterative (ODI) Format vs Agile (T20)
#Waterfall: Test Match Format - Strategic-Phase by Phase like Innings by Innings.
Game for Specialists, Slow and Steady.
#One Day (ODI) Format : Strategic approach – First10/Middle/Slog overs.
Mix of Specialists and
All-Rounders, Result oriented.
#T20 Format: Lively,Dynamic, Full of Action. Game for All-Rounders. Changes with every over.
Highly Result oriented
Organizational Design for Effective Software DevelopmentDev9Com
The document discusses organizational design for effective software development. It outlines problems with traditional matrix organizations and introduces team-based structures that can address these. Specifically, it advocates for cross-functional teams that are responsible for entire projects or products, rather than individuals being assigned to multiple projects. This allows teams to be accountable for delivery and improves collaboration, quality and outcomes.
Agile+Lean, Alum Meet Apr23 2016 - Short VersionHemant Elhence
This document discusses challenges with traditional software development approaches and proposes adopting agile and lean startup principles. It notes that software development is complex and changing requirements are common. The waterfall approach is too linear while agile focuses on short cycles, feedback, and adapting to change. However, agile still assumes requirements are known upfront, when in reality customers may not know what they need until they see it. The lean startup process advocates building minimum viable products and getting rapid customer feedback through short learning cycles to reduce uncertainties.
In the world of agile, there is theory and then there is practice. We like to talk about self-organizing teams, asynchronous execution, BDD, TDD, and emergent architecture. We also talk about cross-functional teams: how analysts, testers, architects, technical writers, and UX designers belong on the same team, right next to programmers. It all sounds nice in theory, but how does this work in reality? What do these people actually do? How do they interact? What does it look like? Is there really a pragmatic way to make this work?
In this simulation, a cross-functional team will actually build a piece of software. Every specialist will have a hand in the process. Every specialist will also act as a generalist. Everyone will add value. And as a team, we’ll get something DONE.
This is your opportunity to see agile development in practice, and to bridge the gap between what agilists say and what teams do. And it’s not as new or as difficult as you think – affinity between testers, BA’s, coders, and other team members has really been at the root of effective development practices all along. Let’s just finally acknowledge that it works, demonstrate its capabilities, and encourage it going forward.
This IS agile development.
Butch Landingin, CTO of Orange & Bronze Software Labs, talks about the Agile Methodology for the Philippine Software Industry Association's Enablement Seminar on April 27 at the AIM.
About O&B:
Orange & Bronze is an offshore product and software development firm in the Philippines, is one of the first companies in Asia to use and advocate Agile Software Development, and has been using it since our inception in 2005, back when Agile was still an emerging movement. O&B offers training courses for Agile with Scrum and XP - these classes were developed and are taught by some of the Philippines' well-known and respected Agile / Scrum coaches and practitioners, and uses the format trusted by some of the best companies in the Philippines.
Why Isn't Clean Coding Working For My TeamRob Curry
Teams fail to achieve the full benefit of the "clean code" approach when they focus on the code and neglect the Agile process. The full title of Uncle Bob's "Clean Code" book is "Clean Code: A Handbook of Agile Software Craftsmanship". This talk presents an depth look at necessary relationship between Clean Code software craftsmanship and the Agile methodology, identifies common scenarios and situations where teams may fall short of recognizing and respecting that relationship, and provides practical recommendations for achieving a fully integrated process of Agile Software Craftsmanship.
Robert Martin's book "Clean Code: A Handbook of Agile Software Craftsmanship" had a huge positive impact on software development teams that adopted his approach to "Agile Software Craftsmanship". But teams sometimes fail to achieve the full benefit of the "clean code" approach because they focus on the code and neglect the Agile process.
It's easy to do: the book provides such clear, practical advice on how to write code that is easier to maintain, more reliable, and less error prone that developers adopt those techniques to great effect and fail to pursue and adopt the harder, agile process recommendations from the book. This is further complicated by the fact that there is now a Software Craftsmanship Manifesto that is separate from the Agile Manifesto.
So, how does using selected clean code techniques break the Agile process defined in the the book? What is the relationship between the two that Uncle Bob wanted us to understand and adopt in toto? Where do we go wrong? Are there some work environment or business driven scenarios that are more likely to break the relationship?
This presentation addresses those questions and more by an taking an in depth look at necessary relationship between Clean Code software craftsmanship and the Agile methodology, identifies common scenarios and situations where teams may fall short of recognizing and respecting that relationship, and provides practical recommendations for achieving a fully integrated process of Agile Software Craftsmanship.
The document discusses various metrics that can be used to measure performance on Agile teams. It begins by explaining common metrics like velocity, running tested features, and bugs. It then covers metrics for each principle of the Agile manifesto, including customer satisfaction surveys to measure value, test coverage for quality, and burn up/down charts for delivery. Other metrics discussed include collaboration metrics like cumulative flow diagrams and team surveys, as well as continuous improvement metrics like team radar assessments. The document provides examples and references for further information.
This document provides an overview of agile methodology for software development. It discusses how agile practices arose in response to the limitations of traditional waterfall approaches. The core principles of agile include valuing individuals and interactions, working software, customer collaboration, and responding to change. Agile methods embrace changing requirements, frequent delivery of working software, collaboration between business and technical teams, self-organizing teams, and continuous improvement.
Value Driven Development by Dave Thomas Naresh Jain
Agile, OOP... are like good hygiene in the kitchen, it results in meals with consistent quality and predictable prep and service times. It doesn't result in great meals nor substantially impact the ROI! Lean Thinking clearly shows that the only way to make a significant impact is to improve the value chain by improving flow. If everyone is following best practices no one has competitive advantage. Major improvements in the value chain depend on continued disruptive innovations. Innovations leverage people and their ideas. We use case studies to illustrate the different business and technical innovations and their impact. We conclude with a discussion of how to build and leverage an innovation culture versus a sprint death march when dealing with high value time to market projects.
More details: https://confengine.com/agile-india-2017/proposal/3608/value-driven-development-maximum-impact-maximum-speed
The document discusses Agile software development methodology. It describes Agile as an iterative approach that builds software incrementally from the start instead of delivering it all at once near the end. The key difference between Agile and Waterfall is that Agile uses empirical process control and allows for scope and priority to be reset every 2-4 weeks to ensure alignment with evolving business needs. It also outlines various Agile concepts like product backlog, sprint planning, daily stand-ups and retrospectives.
Migrating Your Apps to the Cloud: How to do it and What to AvoidVMware Tanzu
This document discusses strategies for migrating applications to the cloud. It outlines several service offerings from Pivotal Application Transformation (AppTx) focused on re-hosting, re-platforming, re-factoring, or re-building applications. Common problems encountered include lack of ownership, commitment, readiness, and cultures unsuited for extreme programming. However, many issues like inexperience can be mitigated. The document emphasizes doing the right thing, what works, and being kind.
The document provides 10 secrets for managing successful projects from an experienced project manager. It discusses the importance of having a detailed plan and schedule, daily stand-up meetings, managing issues and risks, clear communication, mediating team discussions, managing scope, addressing resource issues, and caring about the project's success. Project management fundamentals like scope, schedule, budget, risk, and issues are also covered.
This document discusses strategies for scaling software development teams while minimizing technical debt. It advocates separating teams into roles including developers, team leaders, and engineering managers. Team leaders are responsible for driving cadence and morale, ensuring deadlines are met, and mentoring developers. Engineering managers focus on skills development and removing barriers. Regular, predictable delivery of features through steady cadence is emphasized over long release cycles to reduce technical debt. Separating concerns like architecture from UI helps determine appropriate processes along the agile-waterfall spectrum.
Getting Agile Right - Rebooting an Agile Organization in 100 days - Agile Tou...Maurizio Mancini
Presentation by Senior Consultant Maurizio Mancini of Exempio.com about an Agile Reboot of one Agile organization that was accomplished in just 100 business days!
For a video of this presentation, see https://youtu.be/rOvrpF8zuYI
Agile this and Agile that, but what I am doing doesn't feel like Agile. It is time to get back to basics with the Agile Manifesto.
Introduction to Agile Software Development - Eric Wu - MBAX6360 New Product D...Eric Wu
This document discusses agile software development and is presented by Eric Wu, co-founder of Bracket Labs. It outlines some of the key problems with traditional waterfall software development processes, such as unpredictable requirements and costs. It then introduces agile development principles from the Agile Manifesto, including an emphasis on working software, customer collaboration, and responding to change. Finally, it provides an example of an agile process incorporating sprints, demonstrations, retrospectives and stand-up meetings, and notes how agile practices have evolved and expanded beyond just software development over the past 10 years.
Introduction To Agile Refresh Savannah July20 2010 V1 4Marvin Heery
The document provides an introduction to Agile software development methods. It discusses some of the limitations of traditional waterfall development approaches and why Agile methods have become more popular. It summarizes some of the core values and practices of Extreme Programming (XP), one of the earliest and most commonly used Agile methods. These include user stories, weekly iterations, test-driven development, pair programming, and continuous integration. The document also briefly discusses Scrum and other Agile methodologies.
This document discusses software agility. It begins by explaining why software agility is needed, such as to quickly deliver valuable products and respond to customer needs. It then discusses how software agility can be achieved, including choosing an agile framework, focusing on deliverables and speed, and changing organizational culture. Finally, it defines software agility, discusses common agile frameworks and methodologies, provides tips for choosing the right framework, and notes some common myths about agility.
The document provides an overview of an upcoming workshop on Agile Fundamentals for Project Managers. It includes an agenda with various activities planned such as icebreakers, explanations of Agile principles and values, simulations of Agile practices like daily stand-ups, and discussions of different Agile methods like Scrum and Kanban. The goal is for attendees to understand Agile fundamentals, differentiate Agile methods, learn Agile practices, and have fun.
The document compares predictive and agile software development approaches. It outlines that predictive approaches rely on upfront planning and strict adherence to plans, which can be unrealistic given the inherent uncertainties in software projects. Agile approaches separate estimates from execution, focus on frequent delivery of working software, and emphasize adapting to changes and feedback. While myths exist that agile means no planning, documentation, commitments, processes, or roles like project managers, when applied properly agile can dramatically improve an organization's ability to deliver working software.
Similar to Synerzip Agile Software Development (20)
HOW VOCERA LEVERAGES SYNERZIP FOR ENHANCEMENT OF VOCERA PLATFORM & ITS USER E...Synerzip
Steve Newson, Global VP, Systems Engineering, Vocera says forward thinking of Synerzip team added great value to Vocera.
To know more about how Vocera & Synerzip partnership is enhancing the leading healthcare platform for clinical communication & workflow to deliver safe, efficient quality patient care, visit https://synerzip.com/story/steve-newson-global-vice-president-systems-engineering-vocera/.
Synerzip is a software development partner that provides full software development lifecycle services including testing. They utilize a dual-shore model with experienced teams in the US and India to reduce costs by 50%. Synerzip follows agile development processes and best practices for testing such as test automation, test case management, and tracking bugs and metrics. They have experience delivering projects for clients across industries and technologies.
Test Driven Development – What Works And What Doesn’t Synerzip
This document discusses test driven development (TDD) and quality assurance practices for agile software development. It introduces Synerzip, an offshore software development partner, and describes their agile development lifecycle involving short iterations with user stories, estimation, testing, and customer approval. The benefits of practices like TDD, continuous integration, unit testing, and automation are outlined. Challenges with implementation and common mistakes are also discussed. Various testing methodologies and tools used in agile projects are defined.
Distributed/Dual-Shore Agile Software Development – Is It Effective?Synerzip
This webinar covers the best practices for making dual-shore Agile work effectively.
Topics that are covered -
Business case for Dual-Shore development
• Business case for Agile
• Can Dual-Shore and Agile be combined effectively?
• Challenges
• Best Practices
• Synerzip Introduction
Stay tuned for Synerzip's upcoming webinars that you may be interested in https://www.synerzip.com/webinars/
Using Agile Approach with Fixed Budget ProjectsSynerzip
This webinar covers the best practices, alternative approaches for effectively using Agile in fixed budget projects.
Get to know more about Synerzip's upcoming webinars at https://www.synerzip.com/webinars/
The document discusses the role of quality assurance (QA) in agile teams. It compares the traditional and agile approaches to QA, outlining the agile QA responsibilities which include helping define user stories and acceptance criteria, estimating stories, ensuring testing is accounted for in planning, and more. Common mistakes like not involving QA throughout or having them run tests in subsequent sprints are also covered.
The document discusses several agile techniques for mobile app development, including hyper-prototyping, community code scrounging, and user design studios. Hyper-prototyping involves rapidly iterating on prototypes multiple times per day to get quick feedback. Community code scrounging involves searching online developer communities to find and integrate code snippets. User design studios bring together stakeholders to collaboratively design app UIs in a workshop format.
Challenges in Traditional Organizations
• Impact on Agile Process
• Tweaking Agile For Your Situation
Development in short iterative cycles builds better trust
relationship and a stronger engagement between the
product owner/ customer and the development team.
Stay tuned for our upcoming webinars at https://www.synerzip.com/webinars/ that might be of your interest.
Accelerating Agile Transformations - Ravi VermaSynerzip
This webinar discusses three organizational change techniques which can help accelerate Agile transformation.
learn about a simple framework for Accelerating Agile Transformation, with practical techniques you can apply.
Read more at https://www.synerzip.com/webinar/accelerating-agile-transformations/
The document discusses product management basics from an agile perspective. It defines the roles of product managers and product owners, noting that product managers take on a broader strategic role while product owners focus on the development team. It also outlines common failure modes for each role and organizational models for scaling the roles. The conclusion emphasizes that agile has increased the scope of product management work.
Product Portfolio Kanban - by Erik HuddlestonSynerzip
The document discusses applying lean and kanban principles beyond software development to the wider organization. It describes three critical practices for a "Product Portfolio Kanban": 1) stakeholder-based investment themes and business case management to optimize organizational value, 2) upstream and downstream work-in-progress (WIP) limits to enable flow, and 3) dynamic allocations based on organizational capacity and appetite. Implementing these practices can help avoid unintended consequences of agile success and increase overall organizational value.
Modern Software Practices - by Damon PooleSynerzip
This session provides an overview of the following modern practices:
Continuous integration
Refactoring
Unit tests
Multi-stage continuous integration
One piece flow
Cross-functional teams
Product backlog
Story point estimation
User stories
Burn-up charts
Read more at https://www.synerzip.com/webinar/modern-software-practices/
The document discusses context-driven leadership and managing projects based on their level of uncertainty and complexity. It describes a model where projects are categorized as sheepdogs, cows, bulls, or colts based on having low or high levels of uncertainty and complexity. The appropriate leadership approach depends on the project type - sheepdog projects need agility, cow projects need defined interfaces, bull projects need both agility and process, and colt projects are laissez faire. Reducing uncertainty or complexity can involve changing attributes like team size or location. Leadership requires a balance of developing processes, people, technology, and business skills to match the project context.
This document provides an overview and summary of a presentation on unit testing, test-driven development, and behavior-driven development. The presentation covers the basics of each approach, provides examples, and discusses the benefits including increased code quality, reduced defects, and more confidence in the code. It emphasizes that testing should be integrated into the development process from the start.
Pragmatics of Agility - by Venkat SubramaniamSynerzip
This webinar covers the essence of Agile and provides guidance on dealing with common impediments.
Only one thing matters in software development – to successfully deliver a product so users can derive value. If we’re not succeeding with it, it does not matter what the process is called or how we do it. Agile development can help reduce risk and increase the chances of success, but there is no magic wand we can wave at the problem for a quick-fix. It takes disciplined, dedicated, and continuous effort to achieve the desired results.
Read more from the original copy at https://www.synerzip.com/webinar/pragmatics-of-agility-webinar-february-2011/
It covers -
- Pros and cons of different strategies for developing mobile applications.
- Leading choices for cross platform mobile application development. While there are many frameworks for cross platform application development, we will discuss two leading frameworks namely PhoneGap and Titanium Mobile.
Find original copy at https://www.synerzip.com/webinar/cross-platform-mobile-app-development/
It covers ATDD, BDD, UTDD, Lean & Kanban, Technical debt, Value focus & many more.
Every year, world wide Agile Annual Conferences takes place & Synerzip's CEO & CTO use to attend it & bring key takeaways over the years.
Original copy at https://www.synerzip.com/webinar/agile2011-conference-key-take-aways-2011/
This webinar discusses how to do individual performance evaluation in Agile team environment.
concludes with the introduction of 6 tangible techniques for performance evaluation of Agile teams and team members. Included in these techniques is the “annual agile performance review”. These techniques can be easily integrated into your existing environment in order to emphasize the expected behaviors of an Agile team based on the fundamental Agile principles.
Read more from the original copy at https://www.synerzip.com/webinar/performance-evaluation-in-agile/
This webinar discusses how to use Kanban techniques with your Agile teams.
In this session, Damon Poole, Founder and CTO of AccuRev, will introduce Kanban from a Scrum perspective, show how the Lean practice of “one piece flow” is the key to both, and look at how to mix and match Scrum and Kanban to fine tune a process that fits your circumstances.
Read more from the original copy at https://www.synerzip.com/webinar/scrum-and-kanban-oct2011/
This webinar discusses the concept of Technical Debt and approaches for managing it effectively.
Technical debt is the consequence of choosing a software design or construction approach that is expedient but increases complexity and future costs. It can impede the team’s ability to add new features, quickly fix bugs, and evolve the software product. From a business perspective, technical debt can keep a company from remaining competitive in today’s dynamic marketplace.
Read more from the original copy at https://www.synerzip.com/webinar/managing-technical-debt-jan2012/
Artificia Intellicence and XPath Extension FunctionsOctavian Nadolu
The purpose of this presentation is to provide an overview of how you can use AI from XSLT, XQuery, Schematron, or XML Refactoring operations, the potential benefits of using AI, and some of the challenges we face.
Flutter is a popular open source, cross-platform framework developed by Google. In this webinar we'll explore Flutter and its architecture, delve into the Flutter Embedder and Flutter’s Dart language, discover how to leverage Flutter for embedded device development, learn about Automotive Grade Linux (AGL) and its consortium and understand the rationale behind AGL's choice of Flutter for next-gen IVI systems. Don’t miss this opportunity to discover whether Flutter is right for your project.
Hand Rolled Applicative User ValidationCode KataPhilip Schwarz
Could you use a simple piece of Scala validation code (granted, a very simplistic one too!) that you can rewrite, now and again, to refresh your basic understanding of Applicative operators <*>, <*, *>?
The goal is not to write perfect code showcasing validation, but rather, to provide a small, rough-and ready exercise to reinforce your muscle-memory.
Despite its grandiose-sounding title, this deck consists of just three slides showing the Scala 3 code to be rewritten whenever the details of the operators begin to fade away.
The code is my rough and ready translation of a Haskell user-validation program found in a book called Finding Success (and Failure) in Haskell - Fall in love with applicative functors.
How Can Hiring A Mobile App Development Company Help Your Business Grow?ToXSL Technologies
ToXSL Technologies is an award-winning Mobile App Development Company in Dubai that helps businesses reshape their digital possibilities with custom app services. As a top app development company in Dubai, we offer highly engaging iOS & Android app solutions. https://rb.gy/necdnt
UI5con 2024 - Bring Your Own Design SystemPeter Muessig
How do you combine the OpenUI5/SAPUI5 programming model with a design system that makes its controls available as Web Components? Since OpenUI5/SAPUI5 1.120, the framework supports the integration of any Web Components. This makes it possible, for example, to natively embed own Web Components of your design system which are created with Stencil. The integration embeds the Web Components in a way that they can be used naturally in XMLViews, like with standard UI5 controls, and can be bound with data binding. Learn how you can also make use of the Web Components base class in OpenUI5/SAPUI5 to also integrate your Web Components and get inspired by the solution to generate a custom UI5 library providing the Web Components control wrappers for the native ones.
Microservice Teams - How the cloud changes the way we workSven Peters
A lot of technical challenges and complexity come with building a cloud-native and distributed architecture. The way we develop backend software has fundamentally changed in the last ten years. Managing a microservices architecture demands a lot of us to ensure observability and operational resiliency. But did you also change the way you run your development teams?
Sven will talk about Atlassian’s journey from a monolith to a multi-tenanted architecture and how it affected the way the engineering teams work. You will learn how we shifted to service ownership, moved to more autonomous teams (and its challenges), and established platform and enablement teams.
When it is all about ERP solutions, companies typically meet their needs with common ERP solutions like SAP, Oracle, and Microsoft Dynamics. These big players have demonstrated that ERP systems can be either simple or highly comprehensive. This remains true today, but there are new factors to consider, including a promising new contender in the market that’s Odoo. This blog compares Odoo ERP with traditional ERP systems and explains why many companies now see Odoo ERP as the best choice.
What are ERP Systems?
An ERP, or Enterprise Resource Planning, system provides your company with valuable information to help you make better decisions and boost your ROI. You should choose an ERP system based on your company’s specific needs. For instance, if you run a manufacturing or retail business, you will need an ERP system that efficiently manages inventory. A consulting firm, on the other hand, would benefit from an ERP system that enhances daily operations. Similarly, eCommerce stores would select an ERP system tailored to their needs.
Because different businesses have different requirements, ERP system functionalities can vary. Among the various ERP systems available, Odoo ERP is considered one of the best in the ERp market with more than 12 million global users today.
Odoo is an open-source ERP system initially designed for small to medium-sized businesses but now suitable for a wide range of companies. Odoo offers a scalable and configurable point-of-sale management solution and allows you to create customised modules for specific industries. Odoo is gaining more popularity because it is built in a way that allows easy customisation, has a user-friendly interface, and is affordable. Here, you will cover the main differences and get to know why Odoo is gaining attention despite the many other ERP systems available in the market.
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Łukasz Chruściel
No one wants their application to drag like a car stuck in the slow lane! Yet it’s all too common to encounter bumpy, pothole-filled solutions that slow the speed of any application. Symfony apps are not an exception.
In this talk, I will take you for a spin around the performance racetrack. We’ll explore common pitfalls - those hidden potholes on your application that can cause unexpected slowdowns. Learn how to spot these performance bumps early, and more importantly, how to navigate around them to keep your application running at top speed.
We will focus in particular on tuning your engine at the application level, making the right adjustments to ensure that your system responds like a well-oiled, high-performance race car.
Using Query Store in Azure PostgreSQL to Understand Query PerformanceGrant Fritchey
Microsoft has added an excellent new extension in PostgreSQL on their Azure Platform. This session, presented at Posette 2024, covers what Query Store is and the types of information you can get out of it.
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesQuickdice ERP
Explore the seamless transition to e-invoicing with this comprehensive guide tailored for Saudi Arabian businesses. Navigate the process effortlessly with step-by-step instructions designed to streamline implementation and enhance efficiency.
Mobile app Development Services | Drona InfotechDrona Infotech
Drona Infotech is one of the Best Mobile App Development Company In Noida Maintenance and ongoing support. mobile app development Services can help you maintain and support your app after it has been launched. This includes fixing bugs, adding new features, and keeping your app up-to-date with the latest
Visit Us For :
3. www.synerzip.com
Lifecycle of a Software Startup
Idea Incubation
> 1 yr.
Bootstrap, Seed A-Round B-Round
Angel Round ~$4M ~$4M
~$200K ~$0.5M
Company
Maturity (HC,
Rev, etc.)
Time in Years
Confidential
5. www.synerzip.com
Building Software is Complex
Evolving/Changing
Business Requirements
• Multiple, inconsistent inputs
• Change is usually good though
Inherent R&D Nature of
Software Development
• Software performance issues
• Changing/New technologies
Technology Environment
with Many Moving Parts
• Dependence on external
technology components –HW/SW
• Constantly changing environment
Distributed Teams
Needing to Collaborate
• Team communications
• Need for complementary skills
• Unlike other engineering
disciplines (e.g. manuf, bldg
const), building software is
harder and more complex
• If not managed properly, a
lot can go wrong!
• Needs to be properly
managed – with appropriate
level of process discipline
• Agile approach works very
well in most cases
Confidential
6. www.synerzip.com
What is Agile?
Agile approach accounts for unique nature of software
development. It is a…
•software project management approach that encourages
delivering in short cycles, with frequent inspection, feedback,
and adaptation
•leadership philosophy that encourages team-work, self
organization, and accountability at team level
•disciplined engineering approach to software
development that results in rapid delivery of high quality
software
•business approach that focuses on delivery real business
value (=customer needs) above all.
Various flavors are practiced – SCRUM, XP, Kanban etc.
Confidential
7. www.synerzip.com
Agile Manifesto - 2001
“We are uncovering better ways of developing software by
doing it and helping others do it. Through this work we have
come to value:
– Individuals and interactions over processes and tools
– Working software over comprehensive documentation
– Customer collaboration over contract negotiation
– Responding to change over following a plan
That is, while there is value in the items on the right, we value
the items on the left more.”
Kent Beck Mike Beedle Arie van Bennekum
Alistair Cockburn Ward Cunningham Martin Fowler
James Grenning Jim Highsmith Andrew Hunt
Ron Jeffries Jon Kern Brian Marick
Robert C. Martin Steve Mellor Ken Schwaber
Jeff Sutherland Dave Thomas
Confidential
8. www.synerzip.com
Waterfall Approach
Confidential
• 6+ month
• Too linear, with no learning/feedback cycle
• Expects all requirements upfront
• No value based prioritization of features
• Often results in over engineering
• Often testing/quality compromised
9. www.synerzip.com
Agile Approach
Confidential
• First working software in 4 weeks or less
• Emphasis on learning/feedback
• Embraces changing/evolving requirements
• Consistent focus on high-value features
• “Just-enough” engineering, with emphasis
on frequent refactoring
• Focus on repeated testing/quality
10. www.synerzip.com
SW Triad – Conventional vs. Agile
Conventional Iron triad of Scope x Cost x Schedule should be replaced by
Value x Quality x Constraints
SCOPE
COST SCHEDULE
VALUE
QUALITY CONSTRAINTS
• Cost
• Schedule
Confidential
12. www.synerzip.com
Impact of Agile – 3x Success!
Confidential
• Agile projects are successful three times more often than non-agile projects
• “The agile process is the universal remedy for software development project
failure. Software applications developed through the agile process have three
times the success rate of the traditional waterfall method and a much lower
percentage of time and cost overruns.”
13. www.synerzip.com
But, Agile is Not a Panacea
• Following Agile approach greatly helps but is not a panacea
• “Lip Service Agile” can be worse – more chaos, no net business value!
• All involved (business, dev, etc) need to understand the nature of
software development and have realistic expectations
• Ensure proper team composition
– Same person can play multiple roles
– But, all roles need to be covered
– Be realistic about skill fit of the person playing a role
Confidential
14. www.synerzip.com
Agile Myths
Confidential
• Agile = No documentation
• Agile = No planning
• Agile = No commitment on scope of work to be delivered
• Agile = No need for upfront requirements gathering
• Agile = No software discipline/rigor
• Agile = No budget
• Agile = A rigorous process defined in a set of 3-ring binders
15. www.synerzip.com
When You Can Do Without Agile
• When you know (for sure) all the
requirements upfront
– and, for some reason (e.g. regulatory
constraints), they can’t change/evolve
• No technology risk at all
• But, still there is benefit of building software
in short cycles
Confidential
16. www.synerzip.com
Team Structure For Success
VISIONARY
• Idea owner, drives long-term product
roadmap
• Passionate, evangelizes the idea
• But, can’t “write” detailed reqs
• May not understand software dev
process and get easily frustrated
DEV MGR
DEVELOPER
DEVELOPER
• Seasoned development manager
– owns delivery plan – resource,
time, scope, risk
• Pushes back on Prod Mgr to
manage scope
• Great people manager
SW ARCHITECT
ARCHITECT
ARCHITECT
• Seasoned software technologist –
makes effective design trade-offs,
lays technical foundation
• Works with dev team on design
• Owns short-term and long-term
technology roadmap
• Understands the vision, and writes
requirements
• Understands domain, specific
customers/users, competitors, etc
• Detail oriented, analytical
• Defines scope of each
iteration/release, owns QA
PRODUCT MGR
QA
PRODUCT OWNER
Can be
Offshore/
Remote
Needs to
be close to
customers
Confidential
17. www.synerzip.com
Strive For Stable Teams
• As far as possible, keep your software team
stable
• Don’t stop and start teams
– High churn has huge negative impact
– It is better to have a smaller team, but stable
– Real IP is in the heads of team members, no
amount of documentation can replace it
• Agile is all about team
– Software development is a team sport
– Accountability at team level
Confidential
18. www.synerzip.com
Avoid Feature Bloat
• Pay a lot of attention to
“what features to build”
• More is not always
good, often less is
better
• Be disciplined about…
– Which features to build
– Makes features usable
– Routinely “refactor”
features – usage data
driven
Confidential
19. www.synerzip.com
Bug Free Software?
• There is no such thing as “bug free”
software?
• Plan for proper test/QA process and
capacity
– In very early stages, market feedback is more
important than software quality
– In later stages, software quality is far more
important than pace of new features
• Plan (invest) for automated QA
Confidential
20. www.synerzip.com
Software is Never “Done”
• If you have users, software will keep evolving
• Bugs will keep showing up
• Current customers will keep asking for new
features
• New customers will demand new features
• Performance will need to be enhanced
• Technology will keep evolving, requiring you to
keep up
• You should actively refactor code, improve
usability on a regular basis
• So, plan for an on-going, stable engineering team
Confidential
22. www.synerzip.com
Key Decisions
Confidential
Is software
the core
value prop?
Is software a
significant
value?NO
StartStart
Build initial
software version
Build initial
software version
Acquire initial
customers
Acquire initial
customers
Need to
expand
team?
YES
Have CTO
as co-
founder?
Build small local
team
Build small local
team
YES
YES
NO
Continue customer
acquisition
Continue customer
acquisition
Can find &
attract talent
locally?
YES
Have
sufficient
capital?
YES
Expand locallyExpand locally
YES
Consider
offshore/
outsourcing
Consider
offshore/
outsourcing
NO
NO
Consider
outsourcing
Consider
outsourcing
NO
Find oneFind one
NO
23. www.synerzip.com
Why Outsource/offshore?
1. Capital constrained
2. Need to accelerate product roadmap
a. Faster team ramp-up
b. Use time-zone to your advantage, 24x7
3. Don’t have needed skills (Agile process or
specific technologies) in-house
4. Required talent difficult to hire locally
5. Peaks & valleys in your need, e.g. QA
Confidential
24. www.synerzip.com
When Outsourcing…
• Look for a “partner”, rather than a “vendor”
– Trust based, collaborative partnership
– Specific skills, good software development process
– Longer term relationship
– Stable teams
• Be very careful of paying dev partner with equity
– Raise capital from professional investors, e.g. VCs
– For software development, engage with a professional
software dev company
• Maintain ownership of your IP
Confidential
26. www.synerzip.com
Summary
1. Building enterprise software is complex
undertaking, plan appropriately
2. In almost all cases, follow Agile
3. When outsourcing, still maintain leadership
in-house
– Product vision and roadmap
– Software architecture/engineering leadership
1. Software is actually never “Done” – plan for
ongoing burn-rate in your financials
Confidential
28. www.synerzip.com
Important Considerations
1. Serving a customer vs. target market
2. A common product (code base) vs. many customized
versions in the field
3. Technical Debt – keep it visible, exercise discretion in
incurring it
4. Pay attention to team-mix
a. Balanced team, covering all roles explicitly
b. Small, dedicated team is much better than a large team of
contractors/part-timers
5. DevOps – invest in dev/test infrastructure for continuous
delivery, test & build automation, etc.
6. Strive to build less code, delivery more value
Confidential
29. www.synerzip.com
Basic Hygiene For SW Dev
1. Requirements need to be written.
2. Each requirement should be accompanied by an
acceptance test case. In fact, acceptance test
case is more important than English prose
format of requirements.
3. Use ONE issue tracking system. Everybody
looks at the same system. No spreadsheets.
4. Source code control system – needs to be ONE.
Confidential
30. www.synerzip.com
Tools and Processes
• Requirement Analysis
– User Story Detailing
– Effort Estimation and Commitment
– Requirement/Functionality validation: POCs
• Development
– Processes: Code Reviews, Frequent Check-ins; Code Branching and
Merge synchronized with sprint demos
• Source Code Control and Build Tools Used: CVS, SVN, GIT
• Other Tools used: Jprofiler, JMeter
– Continuous Build Automation: Daily Builds and periodic
automated deployment
• Tools Used: Ant, Maven, Cruise Control, Hudson, LuntBuild
– Coding efficiency: Predictability based on sprint commitments using
team velocity established over first 2-3 sprints
Confidential
31. www.synerzip.com
Tools and Processes
• Development (contd.)
– Unit Testing: sprint deliverables are Unit Tested
• Tools: Junit
• Testing
– Process: Work in-step with developers and create test cases
– Regression Testing: incremental development of the suite,
executing towards end of each sprint
– Bug tracking tools: Bugzilla, JIRA
– Test Case Management Tools: TestLink, Test Director
– Test Automation: we recommend adding a small team of automation
engineers to automate the regression test suite.
Confidential
32. www.synerzip.com
Tools and Processes
• Deployment
– UAT: maintain UAT environment; Define and develop UAT test suite by
identifying specific end to end tests
– UAT deployment: planned and periodic
– Bug Scrubs: Regular bug review and re-prioritization
• Progress Tracking:
– Tracking: Daily Updates to Issue tracker, Weekly Status Reports
– Issue tracking tools: JIRA(with grasshopper plug-in), Rally
• Communication:
– Conference calls: at the frequency required (daily…weekly)
– Wiki: Maintaining a document repository
Confidential
33. www.synerzip.comConfidential
Contact Us – Austin, Dallas, San Jose
• Hemant Elhence (Dallas, TX)
– hemant@synerzip.com
– Office: 469.322.0349
– Mobile: 214.762.4873
• Subu Sankara (San Jose, CA)
– subu@synerzip.com
– Mobile: 510.579.9673
• www.synerzip.com
• Development center in Pune, India