2
Most read
3
Most read
10
Most read
SOFTWARE HOUSE ORGANIZATION
INTRODUCTION
A software company is a company whose primary products are various
forms of software, software technology, distribution, and software product
development.
• There are several different plans which are needed for managing
software business. One of the most important ones is a software
business plan.The importance of it bases on the underlying idea
that it forms up the foundation of the software business as well
as it discusses how important challenges should be solved. In
addition it gives needed information for third parties like
financing institutions about the future targets of the company.
• Firstly, Discusses about the nature of the software business.
Secondly, it discusses of the important issues and topics needed
in preparing any business plan and thirdly, using the discussion
as a basis it formulates a business plan model for the software
companies
Types
There are a number of different types of software companies:
• Large and well-known companies producing Commercial off-the-shelf (COTS), such
as Microsoft, SAP AG, Oracle Corporation, HP, Adobe Systems and Red Hat
• Smaller companies that produce custom software for other companies and entrepreneurs, such as
RIKSOF
• Companies producing specialized Commercial off-the-shelf (COTS) software, such
as Panorama, Hyperion, Siebel Systems, GazitIT, EnigmaTechnologies
• Companies producing Software as a Service , such as Google, Facebook, LinkedIn
• Companies producing software components, such as Developer Express, Dundas, ComponentOne
• Application Service Provider such as Salesforce
• Companies producing bespoke software for vertical industries or particular geographical regions
All of these may be categorized in one or many of the following:
Contractual - when the software company is contracted to deliver some particular software
from outside (software outsourcing)
Product development - when it produces ready to use, packaged software; Commercial off-
the-shelf
Common roles in a software company
• Organizing a software company is very specialized type of management skill, where experienced
persons can turn the organizational problem into a unique benefit. For example, having sub-teams
spread in different time zones may allow a 24-hour company working day, if the teams, systems and
procedures are well established. A good example is the test team in time zone 8 hours ahead or
behind the development team, who fix software bugs found by the testers.
A professional software company normally consists of at least three dedicated sub-teams :
• Business analysts who define the business needs of the market
• Software developers who create the technical specification and write the software
• Software testers who are responsible for the whole process of quality management
Common roles in a software company
In bigger software companies, greater specialization is employed, and quite often there are also:
• Technical writers who write all the documentation such as user guides
• Release specialists who are responsible for building the whole product and software versioning
• User experience designers, who are creating the design architecture based on business requirements,
user research and expertise in usability
• Graphic designers who are normally responsible for the design of the graphical user interface.
• Maintenance engineers who are behind two, three or more lines of support
Structure
The manager of a software company is usually called the Head Of Development (HOD),and reports to
the stakeholders. He or she leads the sub-teams directly or via the managers/leaders depending on the
size of the organization. Usually teams of up to 10 person are the most operational. In bigger
organizations, there are in general two models of the hierarchy:
Typical Structure
Structure
Matrix Structure
Structure
• All the teams are fully independent and they work separately on the different projects.The structure
is quite simple and all the employees reports to one person, what make the situation quite clear
however it is not a good solution in terms of knowledge exchange and optimal usage of human
resources.
• In this model there are dedicated managers/leaders for each main specialization, "renting" their
people for particular projects led by product/project managers, who formally or informally buy
the people and pay for their time.This leads to each private employee having two bosses – the
product/project manager and the specialized "resource" manager. On one hand it optimizes the
usage of human resources, on the other hand it may give rise to conflicts about which one
manager has priority in the structure.
• There are also a number of variants of these structures, and a number of organizations have this
structure spread and split within various departments and units.
Methodologies
Software companies may use a number of various methodologies to produce the code.These can
include:
• The waterfall model, including project management methodologies like PRINCE2 or PMBoK
• Agile software development, such as Extreme Programming and SCRUM
• There are also some methodologies which combine both, such as the spiral model, Rational Unified
Process (RUP)
Product Life Cycle
Regardless of the methodology used, the product life cycle always consists of at least three stages:
• Design – including both the business and technical specification
• Coding – the development itself
• Testing – the quality management
At each stage a different group plays a key role, however each type of role must be involved throughout
the whole development process:
• Analysts, after completing the business specification, manage the changing business situation to
minimize the possibility of change over time.They also support both programmers and testers during
the whole development process to ensure that the final product fulfills the business needs specified at
the start.The process ideally puts business analysts as the key players during final delivery of the
solution to the customer, as they are best placed to provide the best business layer.
• Programmers do the technical specification during the design phase, which is why they are called
programmers/designers, and during testing time they fix bugs.
• Testers complete the test scenarios during the design phase, and evaluate them during the coding
phase
Product Life Cycle
The UML sequence diagram of interaction between these groups may look like:
The general interaction between the
main three groups
System & Procedure
Well-run software companies possess various systems and procedures implemented and working
internally across all the sub-teams.These include:
Business Analysts
• Modeling tools like Sparx Systems Enterprise Architect or IBM Rational Rose
Programmers
• Version Control Systems and software versioning procedures
• Code analysis tools and coding standards, validated manually or automatically
• Deployment mechanisms
Testers
• Bug tracking systems
• Test automation tools
• Performance and stress test tools
Project/Product managers
• Enterprise Project Management (EPM) systems and procedures
• Product portfolio management (PPM)
• Change management systems and procedures
• There are also Application Lifecycle Management (ALM), which embed some of these functionalities in one package and
are used across the groups.They are delivered from various vendors like Borland, ECM or Compuware.
Efficiency Audits
Well-established software companies typically have some way of measuring their own efficiency.This is
usually done by defining the set of key performance indicators, such as
• The average number of bugs done by the developer per unit of time or source lines of code
• The number of bugs found by tester per test cycle
• The average number of test cycles until Zero Bug Bounce (ZBB)
• The average time of test cycle
• Estimated time of task comparing to the real time of the task (exactitude of planning)
• Number of corrections to the baseline
Thank You

More Related Content

PPT
Black box & white-box testing technique
PPTX
Mobile security in Cyber Security
PPTX
System testing
PDF
Operating System.pdf
PPTX
Islamic Culture And Civilization
PPTX
MS EXCEL PPT PRESENTATION
PDF
Hospital Management System Project
PPT
ppt on Stress management
Black box & white-box testing technique
Mobile security in Cyber Security
System testing
Operating System.pdf
Islamic Culture And Civilization
MS EXCEL PPT PRESENTATION
Hospital Management System Project
ppt on Stress management

What's hot (20)

PPTX
Historical social & economic context of computing
PPT
1.1 The nature of software.ppt
PPTX
Software project estimation
PPTX
Software Configuration Management (SCM)
PPT
Process models
PPT
REQUIREMENT ENGINEERING
PPT
Capability Maturity Model (CMM) in Software Engineering
PPTX
unit testing and debugging
PPT
Unit1
PPTX
Unified process Model
PDF
Software project management
PPT
Software Engineering (Introduction to Software Engineering)
PPT
Web engineering
PPT
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
PPT
Software development slides
PPT
Software design
PPT
Software Project Management chapter-1
PPT
Domain-Specific Software Engineering
PPT
System engineering
Historical social & economic context of computing
1.1 The nature of software.ppt
Software project estimation
Software Configuration Management (SCM)
Process models
REQUIREMENT ENGINEERING
Capability Maturity Model (CMM) in Software Engineering
unit testing and debugging
Unit1
Unified process Model
Software project management
Software Engineering (Introduction to Software Engineering)
Web engineering
ppt on sOFTWARE DEVELOPMENT LIFE CYCLE
Software development slides
Software design
Software Project Management chapter-1
Domain-Specific Software Engineering
System engineering
Ad

Similar to Software house organization (20)

PPTX
Introduction to Software Development Life Cycle.pptx
PPTX
Software Development Methodologies.pptx
PPTX
Introduction To Software Concepts Unit 1 & 2
DOCX
Mi0033 software engineering
PPTX
Lect5 improving software economics
PPTX
Software engineering Computer science and engineering unit 1
PPTX
Specialised Process Models in software engineering.pptx
PPT
spm1.ppt
PPTX
5_6134023428304274682.pptx
PPTX
Week 4- Software Process models (Cont..).pptx
PPTX
Introduction to Software Engineering
PPTX
Introduction to Software Engg SDLC, SDLC Models
PPTX
Agile Development unleashed
PPTX
UNIT V - 1 SPM.pptx
PDF
Different Methodologies Used By Programming Teams
PPT
Project Management concepts explained.ppt
PPT
Project Management Complete Concept
PPTX
Introduction to Software engineering ch03
PDF
Software Development for Startups: Transform Your Ideas into Reality
PPTX
Overview of Software Engineering Principles - SCPS311.pptx
Introduction to Software Development Life Cycle.pptx
Software Development Methodologies.pptx
Introduction To Software Concepts Unit 1 & 2
Mi0033 software engineering
Lect5 improving software economics
Software engineering Computer science and engineering unit 1
Specialised Process Models in software engineering.pptx
spm1.ppt
5_6134023428304274682.pptx
Week 4- Software Process models (Cont..).pptx
Introduction to Software Engineering
Introduction to Software Engg SDLC, SDLC Models
Agile Development unleashed
UNIT V - 1 SPM.pptx
Different Methodologies Used By Programming Teams
Project Management concepts explained.ppt
Project Management Complete Concept
Introduction to Software engineering ch03
Software Development for Startups: Transform Your Ideas into Reality
Overview of Software Engineering Principles - SCPS311.pptx
Ad

More from Burhan Ahmed (20)

PPTX
Wireless mobile communication
PPTX
Virtual function
PPTX
Uses misuses and risk of software
PPTX
Types of computer
PPTX
PPTX
Topology
PPTX
The distinction of prophet muhammad (s.a.w) among the teachers of moral conduct
PPT
Social interaction
PPTX
Role model
PPTX
Rights and duties
PPTX
Planning work activities
PPTX
Peripheral devices
PPTX
Parallel computing and its applications
PPTX
Operator overloading
PPT
Normalization
PPTX
Managing strategy
PPT
Letter writing
PPTX
Job analysis and job design
PPTX
Intellectual property
PPTX
Inheritance
Wireless mobile communication
Virtual function
Uses misuses and risk of software
Types of computer
Topology
The distinction of prophet muhammad (s.a.w) among the teachers of moral conduct
Social interaction
Role model
Rights and duties
Planning work activities
Peripheral devices
Parallel computing and its applications
Operator overloading
Normalization
Managing strategy
Letter writing
Job analysis and job design
Intellectual property
Inheritance

Recently uploaded (20)

PPTX
principlesofmanagementsem1slides-131211060335-phpapp01 (1).ppt
PPT
REGULATION OF RESPIRATION lecture note 200L [Autosaved]-1-1.ppt
PDF
LIFE & LIVING TRILOGY - PART - (2) THE PURPOSE OF LIFE.pdf
PDF
MICROENCAPSULATION_NDDS_BPHARMACY__SEM VII_PCI Syllabus.pdf
PDF
LIFE & LIVING TRILOGY- PART (1) WHO ARE WE.pdf
PDF
Everyday Spelling and Grammar by Kathi Wyldeck
PPTX
pharmaceutics-1unit-1-221214121936-550b56aa.pptx
PDF
Horaris_Grups_25-26_Definitiu_15_07_25.pdf
PDF
M.Tech in Aerospace Engineering | BIT Mesra
PPTX
Climate Change and Its Global Impact.pptx
PDF
PUBH1000 - Module 6: Global Health Tute Slides
PDF
Journal of Dental Science - UDMY (2021).pdf
PPTX
ACFE CERTIFICATION TRAINING ON LAW.pptx
PDF
Journal of Dental Science - UDMY (2020).pdf
PDF
Chevening Scholarship Application and Interview Preparation Guide
PPTX
Reproductive system-Human anatomy and physiology
PDF
Farming Based Livelihood Systems English Notes
PDF
Mucosal Drug Delivery system_NDDS_BPHARMACY__SEM VII_PCI Syllabus.pdf
PDF
0520_Scheme_of_Work_(for_examination_from_2021).pdf
PPTX
Integrated Management of Neonatal and Childhood Illnesses (IMNCI) – Unit IV |...
principlesofmanagementsem1slides-131211060335-phpapp01 (1).ppt
REGULATION OF RESPIRATION lecture note 200L [Autosaved]-1-1.ppt
LIFE & LIVING TRILOGY - PART - (2) THE PURPOSE OF LIFE.pdf
MICROENCAPSULATION_NDDS_BPHARMACY__SEM VII_PCI Syllabus.pdf
LIFE & LIVING TRILOGY- PART (1) WHO ARE WE.pdf
Everyday Spelling and Grammar by Kathi Wyldeck
pharmaceutics-1unit-1-221214121936-550b56aa.pptx
Horaris_Grups_25-26_Definitiu_15_07_25.pdf
M.Tech in Aerospace Engineering | BIT Mesra
Climate Change and Its Global Impact.pptx
PUBH1000 - Module 6: Global Health Tute Slides
Journal of Dental Science - UDMY (2021).pdf
ACFE CERTIFICATION TRAINING ON LAW.pptx
Journal of Dental Science - UDMY (2020).pdf
Chevening Scholarship Application and Interview Preparation Guide
Reproductive system-Human anatomy and physiology
Farming Based Livelihood Systems English Notes
Mucosal Drug Delivery system_NDDS_BPHARMACY__SEM VII_PCI Syllabus.pdf
0520_Scheme_of_Work_(for_examination_from_2021).pdf
Integrated Management of Neonatal and Childhood Illnesses (IMNCI) – Unit IV |...

Software house organization

  • 2. INTRODUCTION A software company is a company whose primary products are various forms of software, software technology, distribution, and software product development. • There are several different plans which are needed for managing software business. One of the most important ones is a software business plan.The importance of it bases on the underlying idea that it forms up the foundation of the software business as well as it discusses how important challenges should be solved. In addition it gives needed information for third parties like financing institutions about the future targets of the company. • Firstly, Discusses about the nature of the software business. Secondly, it discusses of the important issues and topics needed in preparing any business plan and thirdly, using the discussion as a basis it formulates a business plan model for the software companies
  • 3. Types There are a number of different types of software companies: • Large and well-known companies producing Commercial off-the-shelf (COTS), such as Microsoft, SAP AG, Oracle Corporation, HP, Adobe Systems and Red Hat • Smaller companies that produce custom software for other companies and entrepreneurs, such as RIKSOF • Companies producing specialized Commercial off-the-shelf (COTS) software, such as Panorama, Hyperion, Siebel Systems, GazitIT, EnigmaTechnologies • Companies producing Software as a Service , such as Google, Facebook, LinkedIn • Companies producing software components, such as Developer Express, Dundas, ComponentOne • Application Service Provider such as Salesforce • Companies producing bespoke software for vertical industries or particular geographical regions All of these may be categorized in one or many of the following: Contractual - when the software company is contracted to deliver some particular software from outside (software outsourcing) Product development - when it produces ready to use, packaged software; Commercial off- the-shelf
  • 4. Common roles in a software company • Organizing a software company is very specialized type of management skill, where experienced persons can turn the organizational problem into a unique benefit. For example, having sub-teams spread in different time zones may allow a 24-hour company working day, if the teams, systems and procedures are well established. A good example is the test team in time zone 8 hours ahead or behind the development team, who fix software bugs found by the testers. A professional software company normally consists of at least three dedicated sub-teams : • Business analysts who define the business needs of the market • Software developers who create the technical specification and write the software • Software testers who are responsible for the whole process of quality management
  • 5. Common roles in a software company In bigger software companies, greater specialization is employed, and quite often there are also: • Technical writers who write all the documentation such as user guides • Release specialists who are responsible for building the whole product and software versioning • User experience designers, who are creating the design architecture based on business requirements, user research and expertise in usability • Graphic designers who are normally responsible for the design of the graphical user interface. • Maintenance engineers who are behind two, three or more lines of support
  • 6. Structure The manager of a software company is usually called the Head Of Development (HOD),and reports to the stakeholders. He or she leads the sub-teams directly or via the managers/leaders depending on the size of the organization. Usually teams of up to 10 person are the most operational. In bigger organizations, there are in general two models of the hierarchy: Typical Structure
  • 8. Structure • All the teams are fully independent and they work separately on the different projects.The structure is quite simple and all the employees reports to one person, what make the situation quite clear however it is not a good solution in terms of knowledge exchange and optimal usage of human resources. • In this model there are dedicated managers/leaders for each main specialization, "renting" their people for particular projects led by product/project managers, who formally or informally buy the people and pay for their time.This leads to each private employee having two bosses – the product/project manager and the specialized "resource" manager. On one hand it optimizes the usage of human resources, on the other hand it may give rise to conflicts about which one manager has priority in the structure. • There are also a number of variants of these structures, and a number of organizations have this structure spread and split within various departments and units.
  • 9. Methodologies Software companies may use a number of various methodologies to produce the code.These can include: • The waterfall model, including project management methodologies like PRINCE2 or PMBoK • Agile software development, such as Extreme Programming and SCRUM • There are also some methodologies which combine both, such as the spiral model, Rational Unified Process (RUP)
  • 10. Product Life Cycle Regardless of the methodology used, the product life cycle always consists of at least three stages: • Design – including both the business and technical specification • Coding – the development itself • Testing – the quality management At each stage a different group plays a key role, however each type of role must be involved throughout the whole development process: • Analysts, after completing the business specification, manage the changing business situation to minimize the possibility of change over time.They also support both programmers and testers during the whole development process to ensure that the final product fulfills the business needs specified at the start.The process ideally puts business analysts as the key players during final delivery of the solution to the customer, as they are best placed to provide the best business layer. • Programmers do the technical specification during the design phase, which is why they are called programmers/designers, and during testing time they fix bugs. • Testers complete the test scenarios during the design phase, and evaluate them during the coding phase
  • 11. Product Life Cycle The UML sequence diagram of interaction between these groups may look like: The general interaction between the main three groups
  • 12. System & Procedure Well-run software companies possess various systems and procedures implemented and working internally across all the sub-teams.These include: Business Analysts • Modeling tools like Sparx Systems Enterprise Architect or IBM Rational Rose Programmers • Version Control Systems and software versioning procedures • Code analysis tools and coding standards, validated manually or automatically • Deployment mechanisms Testers • Bug tracking systems • Test automation tools • Performance and stress test tools Project/Product managers • Enterprise Project Management (EPM) systems and procedures • Product portfolio management (PPM) • Change management systems and procedures • There are also Application Lifecycle Management (ALM), which embed some of these functionalities in one package and are used across the groups.They are delivered from various vendors like Borland, ECM or Compuware.
  • 13. Efficiency Audits Well-established software companies typically have some way of measuring their own efficiency.This is usually done by defining the set of key performance indicators, such as • The average number of bugs done by the developer per unit of time or source lines of code • The number of bugs found by tester per test cycle • The average number of test cycles until Zero Bug Bounce (ZBB) • The average time of test cycle • Estimated time of task comparing to the real time of the task (exactitude of planning) • Number of corrections to the baseline