1 / 40

Software Engineer’s Role in the Company

Software Engineer’s Role in the Company. Managing Production and Support Services. Margarita Antonova. Volunteer Trainer @ Telerik Academy. academy.telerik.com. Business System Analyst. Telerik Corporation. IT. Developers. Business. Product. Table of Contents.

sondra
Download Presentation

Software Engineer’s Role in the Company

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Engineer’s Role in the Company Managing Production and Support Services Margarita Antonova Volunteer Trainer @ Telerik Academy academy.telerik.com Business System Analyst Telerik Corporation IT Developers Business Product

  2. Table of Contents • Organizing Software Production • Waterfall • Agile • Workshop 1: Process Management • Capacity & Overhead • Cost-Benefit Analysis • Time-Value Challenges • Workshop 2: Cost-Benefit Analysis of Product Ideas

  3. Organizing Software Production Approaches and techniques for efficient development of software products

  4. Organizing Development • Requirements – do we know what we need to produce? • Design – do we know how we want it to look like? • Is an interface necessary • User Experience • Development – do we understand what it needs to do? • Can we develop it? – Technology Acquaintance • How long will it take us? • Quality Assurance – is it actually usable? • Feedback – circle back to requirements

  5. Organizing Development • Who works on developing a software? • Back-end developers • Front-end developers • Database developers • Designers and UX experts • QAs and Testers • Business Analysts • Project Managers • Production Managers

  6. Organizing Development Waterfall vs. Agile

  7. Waterfall Model • History – Winston W. Royce, 1970 • Definition: • Sequential design processwhere progress is seen as flowing steadily downwards one by one through the phases • Consists of phases, each phase has to be complete before the next one begins

  8. Waterfall Model • Phases: • Conception • Initiation • Analysis • Design • Production • Testing • Implementation • Training • Maintenance

  9. Waterfall Model • Pros – Big Design Upfront • Complete requirements • Cheaper to fix issues in the design stage • Documentation – no loss of knowledge • Allows easier employee turnover • Simple and linear • Good for stable projects

  10. Waterfall Model • Cons: • Requirements may not be complete or clear • Expensive to fix design or requirements issues in the Production or later stages • Disconnected design and implementation • Unrealistic expectation that one phase can be fully complete before the other • Lack of transparency for client

  11. Waterfall Model Example: ERP System development and implementation

  12. Agile Methods • JIT and TaiichiOnho of Toyota

  13. Agile Methods • JIT and TaiichiOnho of Toyota • Just-in Time lean principles – increase return on investment by decreasing in-process costs

  14. Agile Methods • Some JIT benefits: • Employees with multiple skills are used more efficiently. • Increased emphasis on supplier relationships. • Supplies come in at regular intervals throughout the production day. • The flow of goods from warehouse to shelves improves.

  15. Agile Methods • Agile Software Development: • Allows change in requirements • Promotes collaboration and cross-functional teams • Encourage rapid and flexible response to change • Development in increments • History – around since the 1950s, picked up speed in the mid 1990s • Methods – Kanban and Scrum

  16. Agile Methods – Kanban • JIT and the Kanban cards • Kanban method definition: • A process management method following the agile incremental doctrine • Main feature – the Kanban signboard

  17. Agile Methods – Kanban

  18. Agile Methods – Kanban

  19. Agile Methods – Kanban • Kanban Practices • Visualize • Limit WIP – pull system • Manage flow – measure & evaluate effects • Transparency – make policies clear • Feedback portals • Evolve through experimentation – continuous, incremental and evolutionary changes

  20. Agile Methods – Kanban • Pros: • Simple and easy to understand • Flexible – sticky on, sticky off • Easy to follow – small tasks that are always visible • Less planning • Less friction among stakeholders

  21. Agile Methods – Kanban • Cons: • Very fluid => risk for lack of discipline • Little emphasis on estimation • Hard to point delivery dates • Hard to measure pace

  22. Agile Methods – Kanban Example: Working on multitude of tasks with equally high priority

  23. Agile Methods – Scrum • Definition – an incremental software development framework for complex problems

  24. Agile Methods – Scrum • Key concepts • Scrum Master & Product Owner • Self-organizing, cross-functional development team • Sprint increments produce a shippable product • Product backlog

  25. Agile Methods – Scrum • Pros: • Transparency – Scrums and Reviews • Flexibility in adapting to changing or evolving requirements • Emphasis on value • Allows for easier estimations • Promotes measuring development pace - velocity

  26. Agile Methods – Scrum • Cons: • Difficult to implement and maintain especially in teams that don’t know each other well or that work on a product from scratch • Blurred roles can cause friction in the team • A lot of overhead for planning, reviewing and retrospectives • Due to not finalized requirements, sprint work can be easily disrupted

  27. Agile Methods – Scrum Example: Improving and updating an existing product

  28. Role play in your teams Project: Website to sell shoes Players: Client, Developer, Designer, Project Manager Issue: Shoes are in stock Workshop 1: Process Management

  29. Software Capacity & Overhead Challenges in applying our limited resources to a vast array of potential porducts

  30. What Is Software Capacity? • Capacity – maximum possible output • Overhead - the ongoing operating costs of running a business • Capacity and overhead in the software business • Capacity includes the unclear tasks – bugs, code refactoring and maintenance, etc. • Cost relates greatly to time

  31. Time vs. Value Do we code fast or do we code well?

  32. Opportunity Cost • Definition • There is a choice to be made between mutually exclusive alternatives • Opportunity cost = value of the most profitable or lucrative alternative not chosen • Examples • You have 2 weeks and 2 developers: SEO vs. Processing purchases

  33. Cost-Benefit Analysis • Definition - process for calculating and comparing benefits and costs • Justify investment • Provide basis for comparison • When is it applied? • Software industry examples: • Producing Product A vs. Product B. • Producing fast vs. well • Shipping cycle vs. Maintenance

  34. Cost-Benefit Analysis Time + Effort + Maintainability vs. Profitability Maintainability = future time + effort Profitability = now and in the future

  35. Cost-Benefit Results • Supporting Production • Service Packs & Updates • Support Department • Cost-Benefit Analysis of having it • Challenges

  36. Organizational Challenges • Outsourcing • Geography • Language and culture

  37. Software CompanyTypical Structure http://academy.telerik.com/student-courses/...

  38. Workshop 2:Start Analyzing Consider the Pros and Cons of having Support for your products

  39. Homework Assignment • Identify Software product or services ideas • Apply Cost-Benefit Analysis principles on each • Rank ideas based on the analysis results

  40. Free Trainings @ Telerik Academy • Business Skills for Developers @ Telerik Academy • http://academy.telerik.com/student-courses/soft-skills-and-business-skills/business-skills-for-developers/about • Telerik Software Academy • academy.telerik.com • Telerik Academy @ Facebook • facebook.com/TelerikAcademy • Telerik Software Academy Forums • forums.academy.telerik.com

More Related