Introduction
Before the concept of SDLC, different software programs were built to cater to different business and consumer needs. That was decades ago and it’s safe to say that millions of programs have been created for different reasons, for different needs. Developers always work on a language to create programs with different needs. Much of the man hours spent on creating a single program is spent on coding. Developers have to deal with the language again and again until a prototype is created.
According to surveys, 72% of the developers always have to deal with over spending. Project managers spend much on manpower to develop their software or else the project will completely fail. Aside from paying different developers for the man hours they spend on creating programs, project managers also have to deal with the scarcity of talent. The scarcity of talent will always dictate a higher than normal fee and today, that scarcity of talent is always there. Human resource is always the biggest factor in why project managers have to spend more than planned. This doesn’t even add in the required hardware necessary to create a single program.
Project managers have to create a development plan that will not require manpower. Turn around time from planning to implementation should also be shortened to cope with a fast changing web environment. This is the only way for project managers to cut costs and be efficient at the same time.
Component Assembly Model
Answering that problem is a Software Development Life Cycle (SDLC) plan called Component Assembly model. Instead of starting over with different codes and languages, developers who use this model tap on the available components and put them together to build a program. Component Assembly Model is an iterative development model. It works like the Prototype model, constantly creating a prototype until a software that will cater the need of businesses and consumers is realized.
Component Assembly model has a close resemblance with the Rapid Application Development (RAD) model. This SDLC model uses the available tools and GUIs to build software. With the number of SDKs released today, developers will find it easier to build programs using lesser codes with the help of SDK. Since it has enough time to concentrate on other parts of the programs aside from coding language; RAD concentrates or user inputs and graphical interaction of the user and program.
Component Assembly Model on the other hand uses a lot of previously made components. CAM doesn’t need to use SDKs to develop programs but it will be putting together powerful components. All the developers has to do is to know what the customer wants, look for the components to answer the need and put together the components to create the program.
Stumbling Blocks
Building programs using Component Assembly Model looks very easy. Just like other iterative models that uses an objective as their point of reference; it uses a lot of prototypes to create a program. In fact, it should be easier for project managers to develop programs using this model since components are just put together to answer consumer or business needs.
But in reality, the Component Assembly Model is a challenging model. There are stumbling blocks that stop the proliferation of CAM based software. Some have found a way around it but these blocks are generally the concerns of project managers if they decide to follow this software development model.
Stumbling Block # 1: Programs previously created are not optimized for Component Assembly Model.
Developers can’t just use any available software, tear up the components and use them by will to their programs. There are a lot of things to consider: incompatibility of the framework and the tools for development are among the concerns of the developers. Since it will not fall in the same framework, it would be more time consuming to adjust the software compared to creating a new one. Businesses who already use different types of frameworks and development tools will also find it hard to revert to another program just to create programs under a uniformed framework.
Stumbling Block # 2: Evaluation of a component is independent to the whole program.
A good review of the component doesn’t necessarily mean it will be good for the program. Component creators and developers always have different philosophies in developing software. Since Component Assembly Model is objective based, developers will only look at the role of the component but it will always be a challenge once the component is applied to be part of the whole system. If the framework of the component is different it will only give the developer a hard time in improving the system.
Stumbling Block # 3: Close Ended Components
Closed ended components are another problem for developers to work with. Also referred to as a monolithic component, these components are created to answer a specific need but integrating them into a system is virtually impossible. This is usually because of the language used in the component is not compatible for the planned system. It’s still possible to create modifications but thats virtually creating a whole new component, which is not the aim of the Component Assembly Model.
Stumbling Block # 4: Licensing
There is also a debate in CAM based programs. Since it’s a collection of different programs, it can’t be called an independent program by itself. On the other hand, there is no formal licensing scheme on using components. Oftentimes, developers of independent components find it hard to tell whether their components have been integrated to another program without their knowledge. This makes the developers hesitate in concentrating their efforts to create components.
Enablers
Even with all the stumbling blocks for Component Assembly Model software to flourish, there are technologies that have given rise to different industries that have been proven to be friendly for this type of SDLC Model.
1. Mash-ups – The popularity of JavaScript and the eventual creation of Ajax (Asynchronous JavaScript and XML) has led to the rise of mash-ups in the programming industry. Instead of forcing programs to work in the same framework, developers can now use different frameworks to launch a single program. The problem of compatibility was answered by the big names in the industry. IBM has led the creation of OpenAjax Alliance that will ensure the interoperability of different frameworks. OpenAjax also launched the OpenAjax hub to be applied in most Ajax-based frameworks and programs.
2. Commercialization – the internet is now flourishing with online companies who offer components for the software. This is a better alternative for hiring in-house developer since the cost of development is less compared to outsourcing the software development. Project managers will just have to get the components they want and apply it to their program. Since it’s a commercial component, it’s guaranteed to work with the program planned by the manager.
3. Best Practice – It’s been decades and software is constantly being developed around the world. Different companies who are working online for the past decade knows it’s important that uniformity of frameworks and platform is a must to ensure the reusability of the components.
The Component Assembly Model is a revolutionary model that could offer benefits to large scale and experienced businesses. Best practices, available components, and mash-ups provide a way for this model to work out. Large businesses who have years of experience can use their familiarity with the industry and present tools to develop their own software. The challenge is on small scale businesses since they will have to align different components. But different enablers will make the Component Assembly model possible.