By Raul Bernardino (Dino)
Abstract:
In average, many organizations are fallen into the trap of the software application features, its advertisement, based on incomplete information, and software provider persuasion (marketing staff’s skills). They (Institution, Organizations, Company, and Government entities) do not think twice to have and implement the applications immediately in their business environment. Moreover, Information Technology (IT) planners also contributed to the failure of IT implementation projects in organization. Most of IT planners without have enough soft skills such business analysis, leadership, risk management, change control, etc. that can helps to mitigate future system integration and its ward investment.
The larger or well-known organizations tend purchased and customized software enterprise for their business purposes from outsource. The small software enterprise company is most likely to purchase from big software industries. While others, may use several sources of the software enterprise to fulfill their needs.
It is important that the investment in the software enterprise application should be fitted into organization requirements and needs. The quality output of any software enterprise development is relatively varied. This is because, each of the individuals have a different interpretation on the result of software development. The involvement persons in developing or in buying will be giving a high mark on the software enterprise quality, while others who are not involved, will be marking with a low quality.
Since software enterprise and technology industries developed, many methodologies and approaches have been introduced. They are waterfall, spiral, prototypes methodologies, etc. Each methodology has its own advantages and disadvantages.
Introduction:
Software enterprise development is an increasingly persistent part of our daily lives. In the USA alone, the software products and services exceeded $140 billion in 1998 with more than 2 million software programmers employed. This includes not “only Microsoft or Oracle but within all IT departments in the USA” (MacCormack, 2001).
In the Timor-Leste alone has been introduced various software enterprise. Timor-Leste government has been invested in this sector with significant amount money. Let’s name several of them; Free Balance as finance core business application, Portals, e-procurement, etc. Many of them have different platforms whereas no scalability, no cross platform, no workflow, and open standard capabilities.
In obtaining any software application for the organizations, the management or CEOs have to decide either to develop in house, to develop from outsources, or to purchase from the software industries.
The decision is based on the organizations’ needs and requirements which have been documented or gathered by business and system analyst.
Buy a Software Enterprise:
In the largest organizations most likely software enterprise application tends to be both “custom developed and procured from outside sources. Small business software applications are most likely purchased. Others businesses may use various sources of the software applications to fulfill their own needs” (Hall and Fernandez-Ramil, 2007). According to Martin et al (2005) that the investment in the “enterprise system packages with integrated modules became a major trend by the late 1990s”.
There are several advantages of purchasing software enterprise application as follows:
- Cost savings
- Faster implementation
- A possibility of better support for generic business functions
The disadvantage of the purchasing software enterprise applications is the lack of an exact fit in with organizational needs as “building custom software can result in fewer trade-offs and a better fit to the company’s needs” (Martin et al, 2005). New purchasing software enterprise application may not have a scale-ability, cross platform and open standard capabilities; therefore, organizations will spend an additional cost for the training and users spend additional time to re-entry the same amount of data that have been in the system.
Develop Software Enterprise:
The changing of the software application in organizations is based on the business operations’ needs - often to be a more competitive institution. For instance, repair the bugs and errors, adapt the application, and add new requirements.
The Software Changing Research Result Graph |
Sommerville (2004) described in his research on software changes, “error and repairs application is 17 percent, adapting software application 18 percent, and adding functionality or modifying the functionality of the software applications is 65 percent. The research found that the majority of software application changes are on system application modification and adjusting to the business requirement and needs.
“The size of the software and the complexity can grow very quickly, only limited by the productivity of the people developing the software and the capacity of the computer [on] which [it] will be executed” (Hall and Fernandez-Ramil, 2007:304).
Software Development Quality:
“The high quality means fitting to the project purposes and satisfying the expectation of the stakeholders and it is not cause damage to them. The external quality process is needed in order to improve the overall quality enhancement and it also creates secondary complimentary views on the system that embodied in the implementation” (Hall and Fernandez-Ramil, 2007:363).
The Software Quality Diagram |
As organizations adopt new computer aided design technologies, “the development processes for many software products increasingly resemble those found in the software industry” (MacCormack, 2001). Therefore, IT managers and CEOs need to be aware of the methodologies for developing and deploying software products and services.
There are many methodologies and approaches below for the organizations to use. However, more important than any one methodology is how to use people and resources to create and maintain the software applications. The software development methodology details are explained below:
Traditional Models (Code and Fix Model):
Code and Fix diagram |
Waterfall model |
The Sashimi (Waterfall with Overlapping Phases) Model:
Sashimi Model |
Sub-project Model |
Spiral Model |
This is an incremental model of developing a software application. The first process starts from center position and moves clockwise across the area. The first circle, or transversal, is for requirement planning. Each circle has planning, evaluation, risk analysis, and engineering or prototypes. “The first round is the stage of feasibility study. The second round is [for the] concept of the operations. The third round is the top level requirements specification”, (Boehm, 1998:65-69). Each loop represents a phase of the process. For instance, the inner loop may be feasibility, the next loop requirement, the following loop design, etc. Bear in mind that development in each cycle has to exercise the risk analysis. As soon as the design stage begins, we have to create the testing plan and user documentation.
Staged Delivery Model |
Prototype Model |
In the development of the large or complex system we may use several models simultaneously. A prototype may be used for high risk assessment. The waterfall can be used for developing systems that are well understood, and life cycle can be used to determine the organization of the software.
The Agile Model:
The agile model provides several approaches such as an Adaptive Software
Development (ASD), Crystal methods, Dynamic System Development Methods
(DSDM), eXtreme Programming (XP), Feature Driven Development (FDD), Lean
Development (LD), and Scrum models. Here, we will focus on ASD and DSDM.The
ASD life cycle focuses on developing working software one small piece at a time. The
customer describes the functionality and features of the system and developers
develop it at each stage. The diagram below shows the ASD life cycle.
The ASD Life Cycle Phases Model |
The DSDM method adopted from (Highsmith, 2002a) Model |
There are lot of methodology and approach as mentioned above for developing enterprise software. However, there are two common software engineering methodologies that developer and software industries use to use. They are Waterfall and Spiral model.
The Waterfall methodology is providing a linier and sequential or step by step move forward development. As the matter of fact developer is developing software with phase by phase, likewise water is running from high level to low level and it will never go back.
For instance, developing software by using waterfall methodology as follows:
Requirement engineering: The system developer will elicit all requirements in the steps which are to be developed. As other model of processes, those requirements need to put into the functions and challenges that system need to fulfill. It includes analyzing the end user needs.
System design: System designer is involving in the architecture of design and the system has to be proper. In this section, it has to be a system definition, selection of hardware platform, operating system etc.
Software design: The software design is based on the system architecture in which can be defined software blocks and break it down into the code modules. The describe interface and interactive modules including functionality for instant system state, start up, shutdown, output, and error conditions.
Coding: The code is based on software design document. The developers are starting code the unit in small part of the system functions. They (units) are stand alone and later to integrate in software package form.
Software Integration and verification: In this section, each unit that has been developed, it needs a testing of the functionality. Verify each unit is meeting the requirements.
System Verification: In this section, verification for whole system is needed; it includes verifying the original hardware and environment.
Operation and Maintenance: In this part the developer handover to the user to test if all requirements are met the need or otherwise to need change to meet customer needs. In this stage of waterfall methodology is never ending.
Weakness of waterfall method:
- It is very important to put to gather all possible requirements at the first stage.
- Iteration only happen in the same stage
- There would be very big maintenance at last stage
While in the Spiral method the process is staring for the center position and move across area clockwise. The first traversals maybe place for requirement and planning.
- Planning : to define recourse, milestone, and schedule
- Evaluation: in this section developer is evaluating and analyzing all requirements and determine goal and task. It includes defines all possible alternatives.
- Risk analysis: In this section, the developer is to asses both management and technical risk
- Engineering: In this section, developer design and implement one or more prototypes or sample of application.
The software purchase or development decisions are based on several criteria such as available information from elicitation, being able to predict future features, available technology, and the scientific development. Purchasing or developing software applications is also based on having sufficient knowledge in the field.
In the situation where the decision is made to buy a system application, the outcome may be that it will not fully fit with the business’ requirements and needs. While, on the other hand, a decision made for developing a software application may take more time to develop.
There are situations where a group decision is necessary. For instance, if the decision involves, the imposition of regulations, technology specification, or lack of available knowledge, the organization will need to come to an agreement. The diagram below shows the differences between software development and purchase.
Build or buy decision making Diagram |