1 / 55

Software Company Structure & Developer Role

Software Company Structure & Developer Role. Departments, Occupations and Stakeholders. Margarita Antonova. Volunteer Trainer @ Telerik Academy. academy.telerik.com. Project Manager. Telerik Corporation. IT. Developers. Business. Product. Table of Contents. Last week’s HW

laban
Télécharger la présentation

Software Company Structure & Developer Role

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 CompanyStructure & Developer Role Departments, Occupations and Stakeholders Margarita Antonova Volunteer Trainer @ Telerik Academy academy.telerik.com Project Manager Telerik Corporation IT Developers Business Product

  2. Table of Contents • Last week’s HW • Company Structure • CorporationsDepartments • Stakeholders • Organizing Software Production • Capacity & Overhead • No HW 

  3. Workshop Your Company, Your Dream Team • Wanna do this? – sign up until Friday, May 30th @ noon • In-class - http://telerikacademy.com/Courses/Teamwork/Decide/34 • Online - http://telerikacademy.com/Courses/Teamwork/Decide/35

  4. Homework Assignment • Collect ideas for your product

  5. Who do we code for? • What do we code for? Review

  6. HW from last time • A few sentences answering: • What do they sell? • How do they make it? • Who do they sell to? • Where do they sell? • How do they sell? Answer the business questions for a startup of your liking. Deadline – next lecture: discuss in class • Are they profitable? • Are they sustainable?

  7. Vertical vs. Horizontal Company Structure Advantages and Disadvantages

  8. Horizontal Structure – more Startup

  9. Horizontal Structure • Advantages: • flexibility for limited resources & cross-functional cooperation • responsibility and decision-making powers lead to employee satisfaction • allows for easy product/project orientation • Disadvantages • many leaders, little authority • risk to productivity and efficiency

  10. Vertical Structure – more Corporate

  11. Vertical Structure • Advantages: • close monitoring and control of the processes • concentrated authority and clearly defined functions increase efficiency • clearly defined career ladder to motivate employees • Disadvantages • can hinder communication and flexibility • weak leadership is felt – Peter Principle • someone has to be at the bottom

  12. Corporate Departments Specification of labor within the corporation IT Developers Business Product

  13. Why Know This? • Coding and selling • Know what people’s jobs entail • Know their professional pains and problems • Provide solutions • Take their money • Coding for internal department • Know what people’s jobs entail • Know their professional pains and problems • Provide solutions • Help our company make money

  14. General Structure

  15. Management and Board • Private vs. Public company • Stockholders & Shareholders & IPOs • Board of Directors • Management • CEO/GM • CTO • COO • CFO • CMO

  16. Other Departments • Facilities Management • Dining Services • Social Events • Security

  17. Stakeholders

  18. Who Are the Stakeholders? • Entities that affect or can be affected by the actions of a company: • Employees • Suppliers & Retailers • Clients • Creditors • Unions • The Community • Stakeholders vs. Shareholders

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

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

  21. 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

  22. Organizing Development • Who works on developing a software? • The Experts

  23. 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

  24. Organizing Development Waterfall vs. Agile

  25. 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

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

  27. 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

  28. 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

  29. Waterfall Model Example: ERP System development and implementation

  30. Agile Methods • JIT and TaiichiOnho of Toyota

  31. Agile Methods • Just-in Time lean principles – increase return on investment by decreasing in-process costs

  32. 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.

  33. 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

  34. Agile Methods – Kanban • JIT and the Kanban cards

  35. Agile Methods – Kanban • Kanban method principles: • Visualize – the Kanban signboard • Limit Work In Process – pull system • Manage flow – measure & evaluate effects • Transparency – make policies clear • Feedback portals • Evolve through experimentation – continuous, incremental and evolutionary changes

  36. Agile Methods – Kanban

  37. 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 • No deadlines

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

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

  40. Agile Methods – Scrum

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

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

  43. 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

  44. 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

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

  46. Methods Conclusion

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

  48. 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

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

  50. 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

More Related