HOME

TheInfoList



OR:

A software company is a company whose primary products are various forms of
software Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work. At the lowest programming level, executable code consists ...
, software technology, distribution, and software product development. They make up the
software industry The software industry includes businesses for development, maintenance Maintenance may refer to: Biological science * Maintenance of an organism * Maintenance respiration Non-technical maintenance * Alimony, also called ''maintenance ...
.


Types

There are a number of different types of software companies: *There are companies selling available to use
commercial off-the-shelf Commercial off-the-shelf or commercially available off-the-shelf (COTS) products are packaged or canned (ready-made) hardware or software, which are adapted aftermarket to the needs of the purchasing organization, rather than the commissioning of ...
(COTS) products, such as
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
's Outlook, Word and Excel,
Adobe Systems Adobe Inc. ( ), originally called Adobe Systems Incorporated, is an American multinational computer software company incorporated in Delaware and headquartered in San Jose, California. It has historically specialized in software for the crea ...
's Acrobat, Illustrator and other designing tools, or Google apps like Chrome. *Many
companies A company, abbreviated as co., is a legal entity representing an association of people, whether natural, legal or a mixture of both, with a specific objective. Company members share a common purpose and unite to achieve specific, declared go ...
provide Software Development services, and have a structure to develop
custom software Customised software (also known as bespoke software or tailor-made software) is software that is specially developed for some specific organization or other user. As such, it can be contrasted with the use of software packages developed for the ...
for other companies and businesses. *Companies producing specialized commercial off-the-shelf software, such as
Panorama A panorama (formed from Greek πᾶν "all" + ὅραμα "view") is any wide-angle view or representation of a physical space, whether in painting, drawing, photography, film, seismic images, or 3D modeling. The word was originally coined in ...
, Hyperion, and
Siebel Systems Siebel Systems, Inc. () was a software company principally engaged in the design, development, marketing, and support of customer relationship management (CRM) applications—notably Siebel CRM. The company was founded by Thomas Siebel and Pat ...
*Companies providing Software as a Service (
SaaS Software as a service (SaaS ) is a software licensing and delivery model in which software is licensed on a subscription basis and is centrally hosted. SaaS is also known as "on-demand software" and Web-based/Web-hosted software. SaaS is cons ...
), such as
Google Google LLC () is an American multinational technology company focusing on search engine technology, online advertising, cloud computing, computer software, quantum computing, e-commerce, artificial intelligence, and consumer electronics. ...
's email service Gmail, Voice and Maps, and companies like Salesforce and Zendesk. *Technology that mobilizes social media such as
Facebook Facebook is an online social media and social networking service owned by American company Meta Platforms. Founded in 2004 by Mark Zuckerberg with fellow Harvard College students and roommates Eduardo Saverin, Andrew McCollum, Dustin M ...
,
LinkedIn LinkedIn () is an American business and employment-oriented online service that operates via websites and mobile apps. Launched on May 5, 2003, the platform is primarily used for professional networking and career development, and allows job se ...
,
Instagram Instagram is a photo and video sharing social networking service owned by American company Meta Platforms. The app allows users to upload media that can be edited with filters and organized by hashtags and geographical tagging. Posts can ...
,
Twitter Twitter is an online social media and social networking service owned and operated by American company Twitter, Inc., on which users post and interact with 280-character-long messages known as "tweets". Registered users can post, like, and ...
and
Parler Parler () is an American alt-tech social networking service associated with conservatives. Journalists have described Parler as an alt-tech alternative to Twitter, and users include those banned from mainstream social networks or who oppose ...
. * *There are also other types of SaaS products, of companies providing IT infrastructure services and Cloud Computing services, such a
Amazon Web Services (AWS)
Microsoft Azure Cloud Services, and GoDaddy hosting services. *API as a Service, that allows third party developers to interact with a companies software, such as Google Geo Location API, Google Calendar API, etc. * *Companies producing
software components Component-based software engineering (CBSE), also called component-based development (CBD), is a branch of software engineering that emphasizes the separation of concerns with respect to the wide-ranging functionality available throughout a give ...
, such a
Syncfusion
DevExpress, Telerik UI, Kendo UI and
Dundas Dundas may refer to: Places Australia * Dundas, New South Wales * Dundas, Queensland, a locality in the Somerset Region * Dundas, Tasmania * Dundas, Western Australia * Fort Dundas, a settlement in the Northern Territory 1824–1828 * Shire of ...
*
Application Service Provider An application service provider (ASP) is a business providing application software generally through the Web. The ASP model The application software resides on the vendor's system and is accessed by users through a communication protocol. Altern ...
such as
Salesforce Salesforce, Inc. is an American cloud-based software company headquartered in San Francisco, California. It provides customer relationship management (CRM) software and applications focused on sales, customer service, marketing automation, a ...
*Companies producing
bespoke software Customised software (also known as bespoke software or tailor-made software) is software that is specially developed for some specific organization or other user. As such, it can be contrasted with the use of software packages developed for the ...
for vertical industries or particular geographical regions * Independent software vendors (ISVs) that build, develop and sell consumer or
enterprise software Enterprise software, also known as enterprise application software (EAS), is computer software used to satisfy the needs of an organization rather than individual users. Such organizations include businesses, schools, interest-based user groups, ...
that is consumed by
end users In product development, an end user (sometimes end-user) is a person who ultimately uses or is intended to ultimately use a product. The end user stands in contrast to users who support or maintain the product, such as sysops, system administrato ...
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 Outsourcing is an agreement in which one company hires another company to be responsible for a planned or existing activity which otherwise is or could be carried out internally, i.e. in-house, and sometimes involves transferring employees and ...
) * product development - when it produces ready to use, packaged software;
Commercial off-the-shelf Commercial off-the-shelf or commercially available off-the-shelf (COTS) products are packaged or canned (ready-made) hardware or software, which are adapted aftermarket to the needs of the purchasing organization, rather than the commissioning of ...


Common roles in a software company

Organizing a
software Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work. At the lowest programming level, executable code consists ...
company is a 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 Time is the continued sequence of existence and events that occurs in an apparently irreversible succession from the past, through the present, into the future. It is a component quantity of various measurements used to sequence events, to ...
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 a time zone 8 hours ahead or behind the development team, who fix
software bug A software bug is an error, flaw or fault in the design, development, or operation of computer software that causes it to produce an incorrect or unexpected result, or to behave in unintended ways. The process of finding and correcting bugs i ...
s found by the testers. A professional software company normally consists of at least three dedicated sub-teams : *
Business analyst A business analyst (BA) is a person who processes, interprets and documents business processes, products, services and software through analysis of data. The role of a business analyst is to ensure business efficiency increases through their know ...
s who define the business needs of the market *
Software developer Software development is the process of conceiving, specifying, designing, Computer programming, programming, software documentation, documenting, software testing, testing, and Software bugs, bug fixing involved in creating and maintaining applic ...
s who create the
technical specification A specification often refers to a set of documented requirements to be satisfied by a material, design, product, or service. A specification is often a type of technical standard. There are different types of technical or engineering specificati ...
and write the software *
Software tester Software testing is the act of examining the artifacts and the behavior of the software under test by validation and verification. Software testing can also provide an objective, independent view of the software to allow the business to apprecia ...
s who are responsible for the whole process of
quality management Quality management ensures that an organization, product or service consistently functions well. It has four main components: quality planning, quality assurance, quality control and quality improvement. Quality management is focused not only ...
In bigger software companies, greater specialization is employed, and quite often there are also: *
Technical writer A technical writer is a professional information communicator whose task is to transfer information between two or more parties, through any medium that best facilitates the transfer and comprehension of the information. Technical writers researc ...
s who write all the
documentation Documentation is any communicable material that is used to describe, explain or instruct regarding some attributes of an object, system or procedure, such as its parts, assembly, installation, maintenance and use. As a form of knowledge manageme ...
such as
user guide A user guide, also commonly known as a user manual, is intended to assist users in using a particular product, service or application. It's usually written by a technician, product developer, or a company's customer service staff. Most user guid ...
s *Release specialists who are responsible for building the whole product and software versioning *
User experience design User experience design (UX design, UXD, UED, or XD) is the process of defining the experience a user would go through when interacting with a digital product or website. Design decisions in UX design are often driven by research, data analysis, an ...
ers, who are creating the design architecture based on business requirements, user research and expertise in
usability Usability can be described as the capacity of a system to provide a condition for its users to perform the tasks safely, effectively, and efficiently while enjoying the experience. In software engineering, usability is the degree to which a soft ...
*
Graphic designer A graphic designer is a professional within the graphic design and graphic arts industry who assembles together images, typography, or motion graphics to create a piece of design. A graphic designer creates the graphics primarily for published, ...
s who are normally responsible for the design of the
graphical user interface The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
. *Maintenance engineers who are behind two, three or more lines of support *Consultants are responsible for making the solution operational, especially if some specialist knowledge is necessary. Examples of this include: building multidimensional cubes in
business intelligence software Business intelligence software is a type of application software designed to retrieve, analyze, transform and report data for business intelligence. The applications generally read data that has been previously stored, often - though not necessaril ...
, integrating with existing solutions, and implementing business scenarios in
Business Process Management Business process management (BPM) is the discipline in which people use various methods to discover, model, analyze, measure, improve, optimize, and automate business processes. Any combination of methods used to manage a company's business pro ...
software.


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 An organization or organisation (Commonwealth English; see spelling differences), is an entity—such as a company, an institution, or an association—comprising one or more people and having a particular purpose. The word is derived from ...
. Usually teams of up to 10 person are the most operational. In bigger organizations, there are in general two models of the hierarchy: 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
organization An organization or organisation (Commonwealth English; see spelling differences), is an entity—such as a company, an institution, or an association—comprising one or more people and having a particular purpose. The word is derived from ...
s 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 The waterfall model is a breakdown of project activities into linear sequential phases, meaning they are passed down onto each other, where each phase depends on the deliverables of the previous one and corresponds to a specialization of tasks. ...
, including project management methodologies like
PRINCE2 PRINCE2 (PRojects IN Controlled Environments) is a structured project management method and practitioner certification programme. PRINCE2 emphasises dividing projects into manageable and controllable stages. It is adopted in many countries wor ...
or
PMBoK The Project Management Body of Knowledge (PMBOK) is a set of standard terminology and guidelines (a body of knowledge) for project management. The body of knowledge evolves over time and is presented in ''A Guide to the Project Management Body of ...
*
agile software development In software development, agile (sometimes written Agile) practices include requirements discovery and solutions improvement through the collaborative effort of self-organizing and cross-functional teams with their customer(s)/ end user(s), ad ...
, such as
Extreme Programming Extreme programming (XP) is a software development methodology intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development,"Human Centred Technology Workshop 2006 ", 2006, PD ...
and
SCRUM Scrum may refer to: Sport * Scrum (rugby), a method of restarting play in rugby union and rugby league ** Scrum (rugby union), scrum in rugby union * Scrum, an offensive melee formation in Japanese game Bo-taoshi Media and popular culture * M ...
There are also some methodologies which combine both, such as the
spiral model The spiral model is a risk-driven software development process model. Based on the unique risk patterns of a given project, the spiral model guides a team to adopt elements of one or more process models, such as incremental, waterfall, or evolut ...
,
Rational Unified Process The Rational Unified Process (RUP) is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003. RUP is not a single concrete prescriptive process, but rather an adaptable proce ...
(RUP) or MSF.Microsoft Solutions Framework (MSF): A Pocket Guide
/ref>


Product life cycle

Regardless of the methodology used, the
product life cycle In industry, Product Lifecycle Management (PLM) is the process of managing the entire lifecycle of a product from its inception through the engineering, design and manufacture, as well as the service and disposal of manufactured products. PLM ...
always consists of at least three stages: * Design – including both the business and technical specification * Coding – the development itself * Testing – the quality management Each stage ideally takes 30% of the total time, with the remaining 10% in reserve. The
UML The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system. The creation of UML was originally m ...
sequence diagram A sequence diagram or system sequence diagram (SSD) shows process interactions arranged in time sequence in the field of software engineering. It depicts the processes involved and the sequence of messages exchanged between the processes needed ...
of interaction between these groups may look like: 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


Systems and procedures

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 Sparx Systems is an Australian software company founded by Geoffrey Sparks in 1996 in Creswick, Victoria in Australia, known for the development of the Unified Modeling Language tool Enterprise Architect. Sparx Systems specializes in the devel ...
Enterprise Architect or IBM
Rational Rose Rational Rose XDE, an "eXtended Development Environment" for software developers, integrates with Microsoft Visual Studio .NET and Rational Application Developer. The Rational Software division of IBM, which previously produced Rational Rose, ...


Programmers

*
Version Control System In software engineering, version control (also known as revision control, source control, or source code management) is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections o ...
s and software versioning procedures *Code analysis tools and
coding standard Coding conventions are a set of guidelines for a specific programming language that recommend programming style, practices, and methods for each aspect of a program written in that language. These conventions usually cover file organization, in ...
s, validated manually or automatically *Deployment mechanisms


Testers

*
Bug tracking system A bug tracking system or defect tracking system is a software application that keeps track of reported software bugs in software development projects. It may be regarded as a type of issue tracking system. Many bug tracking systems, such as those ...
s *
Test automation In software testing, test automation is the use of software separate from the software being tested to control the execution of tests and the comparison of actual outcomes with predicted outcomes. Test automation can automate some repetitive bu ...
tools *Performance and stress test tools


Project/product managers

* Enterprise Project Management (EPM) systems and procedures *
Product portfolio management Product management is the business process of planning, developing, launching, and managing a product or service. It includes the entire lifecycle of a product, from ideation to development to go to market. Product managers are responsible for ...
(PPM) *
Change management Change management (sometimes abbreviated as CM) is a collective term for all approaches to prepare, support, and help individuals, teams, and organizations in making organizational change. It includes methods that redirect or redefine the use of ...
systems and procedures There are also
Application Lifecycle Management Application lifecycle management (ALM) is the product lifecycle management (governance, development, and maintenance) of computer programs. It encompasses requirements management, software architecture, computer programming, software testing, so ...
(ALM), which embed some of these functionalities in one package and are used across the groups. They are delivered from various vendors like
Borland Borland Software Corporation was a computer technology company founded in 1983 by Niels Jensen, Ole Henriksen, Mogens Glad and Philippe Kahn. Its main business was the development and sale of software development and software deployment product ...
, ECM or
Compuware Compuware Corporation was an American software company based in Detroit, Michigan. The company offers products aimed at the information technology (IT) departments of large businesses, and its services also include testing, development, automation ...
.


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 indicator A performance indicator or key performance indicator (KPI) is a type of performance measurement. KPIs evaluate the success of an organization or of a particular activity (such as projects, programs, products and other initiatives) in which it eng ...
s (KPI), such as *The average number of bugs done by the developer per unit of time or
source lines of code Source lines of code (SLOC), also known as lines of code (LOC), is a software metric used to measure the size of a computer program by counting the number of lines in the text of the program's source code. SLOC is typically used to predict the am ...
*The number of bugs found by tester per test cycle *The average number of test cycles unti
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 A number of organizations are focused on reaching the optimum level of the
Capability Maturity Model The Capability Maturity Model (CMM) is a development model created in 1986 after a study of data collected from organizations that contracted with the U.S. Department of Defense, who funded the research. The term "maturity" relates to the degree of ...
(CMM), where "optimum" does not necessarily mean the highest. There are also other systems such as
Carnegie-Mellon University Carnegie Mellon University (CMU) is a private research university in Pittsburgh, Pennsylvania. One of its predecessors was established in 1900 by Andrew Carnegie as the Carnegie Technical Schools; it became the Carnegie Institute of Technology ...
's
SEMA Sama ( tr, Sema, Persian, Urdu and ar, سَمَاع - ''samā‘un'') is a Sufi ceremony performed as part of the meditation and prayer practice dhikr. Sama means "listening", while dhikr means "remembrance".During, J., and R. Sellheim. "Sama ...
, or particular
ISO ISO is the most common abbreviation for the International Organization for Standardization. ISO or Iso may also refer to: Business and finance * Iso (supermarket), a chain of Danish supermarkets incorporated into the SuperBest chain in 2007 * Iso ...
standards. Small software companies will sometimes use less formalized approaches. Each
organization An organization or organisation (Commonwealth English; see spelling differences), is an entity—such as a company, an institution, or an association—comprising one or more people and having a particular purpose. The word is derived from ...
works out its own style, which lies somewhere between total technocracy (where all is defined by numbers) and total anarchy (where there are no numbers at all). Whichever way the organization goes, they consider the pyramid describing the cost and risk of introducing change to already-begun development processes:


See also

*
List of the largest software companies Many lists exist that provide an overview of large software companies, often called "independent software vendors" ("ISVs"), in the world. The lists differ by methodology of composition and consequently show substantial differences in both listed ...


References

{{Authority control Software development Knowledge firms