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