Software product development process

406 views

Published on

Talk to Software Entrepreneurs Meetup on Nov 7th on Software Development practices and outsourcing

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
406
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
24
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Software product development process

  1. 1. Software Development Sri Kanajan
  2. 2. Outline • • • • Software development methodology Agile development process Development tools Outsourcing
  3. 3. Motivations • Software is increasingly driving innovations • Most startups are pure software plays • Software complexity is becoming the limiting factor • The “just do it in software! Its easy!” is no longer true • Software releases is becoming the critical path in most technology projects • Ripple effect of change in software is much harder to evaluate and test • Building on-site technology competency is becoming really hard • Most startups require expertise in multiple technology platforms
  4. 4. Requirements • Requirements drive everything! • Project management • Testing • Design • Development • Usability • Outsourcing
  5. 5. Industry Standards Technology Platform Evaluations Requirements Elicitation UI Prototyping Usability Analysis Architecture Design Unit Testing Code Reviews Surveys Requirements Based Verification Test Cases Test Management Database Automated Testing or Manual Testing Development Integration and System Testing Agile Development Process with Ripple Effects Analysis Test Framework
  6. 6. A Example Requirements • Battery Warning Screen • The Main Window header shall contain the text “Programmer Battery Low” [15-003] Boot requested 29-A01 Programmer Splash Screen Time Zone Set? No 21-A01 System Reset Screen Continue Boot Up Set Time Zone Screen AA-A01 C-A01 Yes • The Main Window shall contain the text “The Programmer Save has less than 5 minutes battery life remaining; would you like to continue?”[15-004] • The Separator Bar shall contain buttons with the test “Continue” and “Cancel” [15-005] • The button labeled “Continue” shall be the default action. [15-006] • Programmer Battery Life < 5 minutes? Yes 21-A02 Battery Warning Screen 11-A02 20-A01 No Start Menu Continue Cancel 16-A01 Suspend Programmer
  7. 7. Verification • Requirements based tests • Verify that the specific requirement is met under success and failure conditions • Integration tests • Unit test • Intent is to verify the class implementation prior to code check-in • System tests • Intent of the test is to verify how different features work with each other • Stress tests • Intent of the test is to verify the behavior of the system under worst case scenarios • Intent of the test is to verify the system as an entirety works within the intended environment • Peer review • Effective way to verify the design and spread the knowledge TEST OFTEN ! Develop tests even before you develop code !
  8. 8. Requirements Based Tests
  9. 9. Unit Test Example
  10. 10. Metrics • Test coverage • Code coverage/branch coverage • Project management metrics • Earned Value • Rundown chart
  11. 11. Managing Change • Rare to have a clean slate project • More likely to come into a project with an existing asset base • Ripple effects analysis • Critical activity that is often overlooked • A single new requirement or parameter change could have broad implications
  12. 12. Outline • • • • Software development methodology Agile Development Process Development tools Outsourcing
  13. 13. Industry Standards Technology Platform Evaluations Requirements Elicitation UI Prototyping Usability Analysis Architecture Design Unit Testing Code Reviews Surveys Requirements Based Verification Test Cases Test Management Database Automated Testing or Manual Testing Development Integration and System Testing Agile Development Process with Ripple Effects Analysis Test Framework
  14. 14. Agile Development Process Sprint Planning Meeting Sprint Review Meeting
  15. 15. Sprint Planning Meeting Product Backlog Team Capabilities Sprint Planning Sprint Goal Business Conditions Technology Current Product Meeting Sprint Backlog
  16. 16. Daily Scrum • Parameters • • • • Daily 15-minutes Stand-up Not for problem solving • Three questions: 1. What did you do yesterday 2. What will you do today? 3. What obstacles are in your way? • Everyone is invited • Help avoid other unnecessary meetings • Only team/scrum master can talk
  17. 17. Sprint Review Meeting • Team presents what it accomplished during the sprint • Typically takes the form of a demo of new features or underlying architecture • Informal • 2-hour prep time rule • Participants • Customers • Management • Product Owner • Other engineers
  18. 18. Outline • • • • Software development methodology Agile development process Development tools Outsourcing
  19. 19. Development Tools • Requirements and test cases • Database solutions, e.g. DOORS • Code change management • Git, Github • Static analysis and unit testing • Code Analytics • Lint • JUnit • Automated testing • Robotium • Monkey Runner
  20. 20. Outline • • • • Software development methodology Agile development process Development tools Outsourcing
  21. 21. Outsourcing Your Software Development • • • • • Increasingly viable and cost effective solution Technology is complex and multi-faceted. Get the best to help you! The degree of outsourcing depends on the value that the technology brings to your business Many startups going to India, Poland, Philippines However • Clear requirements is critical! • Need to understand the technology in-house • Process and culture that enables outsourcing
  22. 22. Outsourcing • Own the process and architecture • Outsource the execution of the process (development/verification) on top of the architecture • Gather metrics continuously and get them to document all work • Fixed price vs. Time/materials contract • Prototype in-house to elicit requirements then outsource the implementation of the requirements • Detail the architecture and the process in the contract

×