Computer software (or just software) is a general term primarily used for digitally stored data such as computer programs and other kinds of information read and written by computers. Today, this includes data that has not traditionally been associated with computers, such as film, tapes and records.
Software is a lot more than just the Microsoft applications which run on a desktop PC or the enterprise applications which run on servers. Software includes such diverse things as video games, web sites, flash applications, mobile phone ring-tones & screen savers, smart phone applications, Google Earth, Wikipedia, and Wii games.
Some tend to segment software in layers, such as
- Application software, such as word processors which perform productive tasks for users.
- Firmware which is software programmed resident to electrically programmable memory devices on board mainboards or other types of integrated hardware carriers,
- Middleware which controls and co-ordinates distributed systems.
- System software such as operating systems which govern computing resources and provide convenience for users.
In the past, there was a clear distinction between …
- software (application logic that provided functionality)
- data (which was stored in databases or on file systems, and was manipulated by software)
- “media” (which was not yet digital, and so was stored on cassettes – e.g. audio and video content, music, films, etc. – or on paper, books, photos)
Today, when you look at something like a Flash application, or an interactive web page, or an iPhone app, or Google Earth, or a Wii game, they all combine functionality (logic), data and audio/video content into one “application”.
Software can refer to all computer instructions in general, or to any specific set of computer instructions. It is inclusive of both machine instructions (the binary code that the processor “understands”) and source code (more human-understandable instructions that must be rendered into machine code by compilers or interpreters before being executed).
The Challenge with Software
Software is abstract, complex, hard to measure and even more difficult to value.For those who develop, buy or invest in software products and businesses, understanding all aspects of software and their interrelation is essential for business success.
Today, software impacts every business. Whether you are looking to develop a piece of software to enhance your enterprise or are investing in a software product or company, software presents a management challenge. Software projects are often late and software can be poor quality or difficult to use resulting in customer dissatisfaction or increased cost.
Some of the challenges faced by companies include
- Lack of understanding of the software business case or its viability
- Not realizing the total cost of ownership
- Not having the ability to measure the quality level of the software
- Poor understanding the legal or compliance issues
- Selection of the right technology to ensure future enhancements
- Not knowing what are the intellectual property assets that should be protected and what are the risks
- Ensuring that the user experience is competitive
To address these issues, companies need a process for evaluating their current situation from all these perspectives and identifying the key actions they need to take to ensure holistic management of their software.
Software project, software product and/or software business assessment or evaluation is said to be “very important”, yet many tend to be frightened of it because they see it as a test and a threat. Yet, if handled properly and professionally, then taking the opportunity to understand whether you achieved what you set out to, how well you did it, what impact your activity has had and to reflect critically on both the activities and processes will benefit you. This knowledge can be used internally by your team to drive improvement and externally to demonstrate achievements.
“The most serious mistakes are not being made as a result of wrong answers. The truly dangerous thing is asking the wrong question”
Software assessment or evaluation can be formative – that is taking place during the development of a concept or proposal, project or organization, with the intention of improving the value or effectiveness of the proposal, project, or organisation. It can also be summative – drawing lessons from a completed action or project or an organisation at a later point in time or circumstance.
A Holistic Approach to Software and Software Management
Success with any software project or software business means adopting a holistic approach to software management and appreciating that a variety of issues have to be addressed:
- The business model
- The technology
- The user interface and user experience
- The legal framework and commercial considerations
- Software development
- Intellectual property
The types of questions that need to be asked are:
- Has the software business model being thoroughly reviewed to ensure its viability? This means fully understanding the market opportunity, the business environment and customer and end-user expectations.
- How has the technology selection been validated considering the competitiveness, structure, security and potential for future innovation?
- Has the user interface and user experience been studied from both a subjective and objective view to give insight into customer behaviour?
- Has the necessary legal framework or commercial aspects that may impact upon use or operation of the software been understood and risks identified and mitigated?
- Are both the business management and development team’s processes resilient in order to improve the company’s capability and maturity of the software?
- What are the metrics around software quality in order to understand the maturity level based around a qualitative and quantitative assessment?
- Does the company understand both the intellectual property risks and potential opportunities associated with th1is software?
To deal with the complexity and abstract nature of software, a model is needed to enable a holistic view of software business management that supports evaluation of the current state and actions to improve
by Donal O’Connell
(IPEG consultant and partner at Waves Associates. (Waves Associates provides a Software Evaluation and Valuation service to a range of clients including start-ups, VC fund managers and other investors, receivers liquidating a company’s assets, companies purchasing or outsourcing software or those involved in mergers and acquisitions)