Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Organization and team structures


Published on

Organization and team structures in Software engineering

Published in: Education, Technology, Business
  • Be the first to comment

Organization and team structures

  1. 1. Organization and Team Structures Submitted By Nur Islam
  2. 2. Specific Instructional Objectives : Explain the necessity of a suitable organization structure.  Differentiate between functional format and project formation the context of organization structure.  Identify the advantages of a functional organization over a project organization.  Explain why the functional format is not suitable for small organizations handling just one or two projects.  Identify the important types of team structures of an organization. Staffing.
  3. 3. Organization structure : Usually every software development organization handles several projects at any time. Software organizations assign different teams of engineers to handle different software projects. Each type of organization structure has its own advantages and disadvantages so the issue “how is the organization as a whole structured?” must be taken into consideration so that each software project can be finished before its deadline .
  4. 4. Functional format vs. project format : There are essentially two broad ways in which a software development organization can be structured:  functional format  project format In the project format, the project development staff are divided based on the project for which they work . In the functional format, the development staff are divided based on the functional group to which they belong. The different projects borrow engineers from the required functional groups for specific phases to be undertaken in the project and return them to the functional group upon the completion of the phase.
  5. 5. Top Management Project Team 1 Project Team n
  6. 6. TOP MANAGEMENT Functional Group REQUIREMENTS DESIGN Project Team 1 CODING TESTING PROJECT MANAGEMENT Project Team n MAINTAINCE (b) Functional Organization
  7. 7. Functional Organization: In the functional format, different teams of programmers perform different phases of a project. For example, one team might do the requirements specification, another do the design, and so on. The partially completed product passes from one team to another as the project evolves. This requires good quality documentation to be produced after every activity. Project Organization: In the project format, a set of engineers is assigned to the project at the start of the project and they remain with the project till the completion of the project. Obviously, the functional format requires more communication among teams than the project format, because one team must understand the work done by the previous teams.
  8. 8. Advantages of functional organization over project organization : Even though greater communication among the team members may appear as an avoidable overhead, the functional format has many advantages. The main advantages of a functional organization are: • Ease of staffing • Production of good quality documents • Job specialization • Efficient handling of the problems associated with manpower turnover.
  9. 9. Unsuitability of functional format in small organizations  The apparent paradox is not difficult to explain. The project format provides job rotation to the team members. That is, each team member takes on the role of the designer, coder, tester, etc during the course of the project.  On the other hand, considering the present skill shortage, it would be very difficult for the functional organizations to fill in slots for some roles such as maintenance, testing, and coding groups.  Also, another problem with the functional organization is that if an organization handles projects requiring knowledge of specialized domain areas, then these domain experts cannot be brought in and out of the project for the different phases, unless the company handles a large number of such projects.  For obvious reasons the functional format is not suitable for small organizations handling just one or two projects.
  10. 10. Team structures : Team structure addresses the issue of organization of the individual project teams. There are some possible ways in which the individual project teams can be organized. There are mainly three formal team structures:  Chief programmer Team  Democratic Team  The mixed team organizations Although several other variations to these structures are possible. Problems of different complexities and sizes often require different team structures for chief solution.
  11. 11. Chief Programmer Team : Project manager Reporting Software Engineer
  12. 12. Chief Programmer Team : The chief programmer provides an authority Leads to lower team morale Can inhibit original thinking Single point of failure It is more efficient than democratic team for well- understood problems (small and simple ones) Used when the completion of the project outweighs the team morale, personal development .. etc
  13. 13. Democratic Team: Communication Path Software Engineers
  14. 14. Democratic Team: Democratic organization leads to higher morale and job satisfaction. Encourages egoless programming A programmer is an artist (apply arts of programming) Can not easily locate bugs and issues in their programs Programmer takes a lot of pride in their creations They should think of the product as an output of a group not an individual Wastes a lot of time arguing on trivial points (needs an authority)
  15. 15. Mixed Control Team: Project Manager Reporting Senior Engineers Reporting Software Engineers Communication
  16. 16. Mixed Control Team: Mixed ideas from the chief programmer and democratic team structures Hierarchical reporting Democratic setup Suitable for large teams Decompose the problem into simple task and assign them to groups Each group communicates democratically Very popular and the most used structure
  17. 17. Staffing Software project managers usually take the responsibility of choosing their team You can not assume in your planning , scheduling … etc that one staff member is as productive as another There is a large variability (1 to 30) One engineer may reduce the overall productivity of a team
  18. 18. Staffing Good software engineer attributes: Exposure to systematic techniques  Software engineering principles Good technical knowledge of the project area Good programming abilities Good oral, written and interpersonal skills  Documentations and communications Strong knowledge if fundamentals of computer science
  19. 19. Staffing Intelligence Ability to work in a team Discipline High motivation Even the brightest can be poor programmers  Increase it with better salaries, better work environment … etc  Ratios of attributes (overall 1:30) Coding hours (25:1) Debugging hours (28:1)
  20. 20. THANK YOU