Good The Agile Framework And Cloud Computing Research Paper Example
During the last decade, there have been many advances in technology. Phones have become smarter and mobile technology has become popular. With this advancement has come a new lifestyle that one may call the tech-life. The new technology is being used in a very efficient and effective manner. It has facilitated people from all over the globe to meet and work together without leaving their native land and often even the comfort of their home. Virtual teams, virtual conferences, and mobile banking, have become the rule rather than the exception. The technology that has enabled business to become more flexible and adaptable to the needs of the consumer is cloud technology.
Cloud technology is a recent technology that allows users a good deal of flexibility while working on a complex network system. It allows users to store data online and use it from multiple devices and multiple locations. It also provides a number of resources such as programs, platforms, and databases. Broadly, clouds can be of three types, public, private, and hybrid. They can also be classified based on the service they provide namely, infrastructure, platform, and software (Qusay, 2011). With the advent of Cloud Computing and mobile technology, knowledge and information is no longer remains within the four walls of the office. Information is now expected and made available at the finger tips of the user. With the changing expectations of the user has come a change in the approach to software development. This new approach called the Agile Software Development Framework is based on requirement rather than planning.
In this paper, we propose to examine the new approach to software development. We examine this new approach through the lens of cloud computing and determine whether the new approach is suitable for cloud computing, whether it can meet the increasing and diverse requirements of the users, and what the future holds for this new model vis-à-vis cloud computing.
What is Cloud Computing
Cloud computing is the solution to many problems of modern businesses. According to Quasy (2011), cloud computing is an on-demand model of IT related services. Cloud service providers offer their services through the Internet. These services are scalable, inexpensive, and easy to use. Many of the services are available on a pay as you go basis. Quasy (2011) ascribes the following characteristics to cloud computing:
Service on Demand
Cloud service providers often offer their services on a subscription basis. There is also a pay as you go model of services. The user organization can choose the services they pay for. Businesses therefore have the flexibility to store their data and software on the cloud and use them as required. They can also choose to simply use the infrastructure of the service provider. These choices afford a great deal of flexibility to business organizations.
Cloud users are relieved from the complexity of setting up infrastructure required to provide flexibility to their staff and service to their customers.
Easy of Use
Since cloud services are provided over the internet, they are flexible easy to use.
Scalability is possibly the biggest advantage of cloud computing. Cloud services are provided from a network of servers. Service providers can therefore scale up their services depending on the needs of their users.
The scalability of cloud computing makes it a very flexible and inexpensive service that can meet the diverse and rapidly changing demands of the users. Cloud computing is therefore being adopted by more and more businesses today.
Challenges for Development on the Cloud
Developers have expressed some concerns while developing software for cloud computing. One of the features of cloud computing is service on demand. Where the CSP (Cloud Service Provider) offers the IaaS, PaaS, or SaaS deployment models, developers face the challenge of providing software on demand. Another concern is multi-tenancy. Das & Vaidya (2011) describe multi-tenancy as the ability of an application to meet the requirements of different clients. This means that a single object, method, or program running on a server, serves multiple tenants or clients. This requires virtual partitioning so that each client gets the experience of working with a single software (Das & Vaidya, 2011).
Another concern for cloud programmers is the level at which the application will execute and the support available for running the application. For example in the IaaS deployment module the application will be expected to support the infrastructural needs of the client in addition to running the application itself. On the other hand an application running on the SaaS deployment model will expect the infrastructure to be in place and assume the application will run on a certain operating system with certain infrastructural elements like data storage, internal storage and such other components already in place. Software development for cloud computing must therefore be highly flexible. According to a special report from InfoWorld (2012), not all applications are suitable for the cloud. If an application integrates with rigid, and hard to replicate software it may not be ideal for cloud computing. Data security is another issue. Software is often written to check for integrity of data. Such software is written for specific databases. With multi-tenancy, this can be problematic. Another concern that cloud developers face is integrating new software into existing systems. This can become problematic when a company’s in-house developer attempts to upload an application onto a cloud platform where most of the software is provided by the service provider. In such a situation the in-house programmer does not have access to the cloud software source. Programming for the cloud can therefore be complex and difficult because of the dynamic nature and scalability of cloud computing.
Need for a new framework for Software Development
Cloud computing is often confused with grid computing and utility computing. Grid computing is a network of computers working together towards a common goal (Goel & Sharma, 2014). Utility computing is a service model that provides infrastructure and resources for computing (ZD Net, 2010). Although cloud, utility, and grid computing share the same benefits of reducing cost, improving flexibility, and using multiple servers, they are essentially different concepts. Cloud computing is a more comprehensive concept which combines the concepts of grid computing, and utility computing (Goel & Sharma, 2014). Even though more and more businesses are adopting cloud computing to avail of its flexibility and scalability, they are also expressing concerns about security of data, vendor lock-in, and portability (Goel & Sharma, 2014).
Agile Software Development as a Solution
The very nature of cloud commuting and indeed the reason for its evolution is agility. It follows therefore that the software development process for cloud computing should be agile. According to the Agile Manifesto, there are four basic principles of Agile Development. These are individuals over processes, software over documentation, customer over contract, and response over plan. Solutions in the Agile framework are based on requirement rather than planning (Beck et. al., 2001). We now examine the principles of the agile framework in detail.
People over Process
The first principle suggests that although processes and tools are important, the focus should be on individuals and their interaction with one another. The individuals working on the project can solve the problems by using processes and tools. Focusing on the individuals rather than the process itself generates better motivation, productivity and efficiency thus making the project a success (Beck et. al., 2001).
Software over Documentation
Software developers often get over-involved in the designing process. In their effort to build a comprehensive, well documented and easy to maintain system, delivery of the final product is delayed sometimes to the extent that by the time the system is established it is already redundant. The second principle of agile development addresses this problem. While the importance of proper planning and documentation cannot be denied, the focus of development should be on delivery rather than documentation. According to Beck et. al. (2001), documentation at the cost of a working software is useless.
Customer over Contract
This principle of Agile development addresses the concern that customers often change their requirements after the project is well underway. In such situations the development team has to readjust and often redo a good deal of the work. However, it is not always possible to foresee all the requirements at the start of the project. Development teams must therefore be flexible and ready to adapt to the changing requirements of the customer rather than rigidly follow the initial requirements.
Response over Plan
This is an extension of the principle of Customer over Contract. When a customer changes the requirement during the course of development, the focus should be on the best way to respond to the requirement rather than sticking with the original plan. This does not necessarily mean that the original plan should be abandoned, nor does it mean that there should be no planning and developers should simply respond to requirements. There should be room for change within the plan. Also, when the customer requests a change, the team should try and adapt rather than argue that the requirements are against the original plan (Beck et. al., 2001).
The agile framework for software development addresses two of the major concerns that businesspersons express with regard to cloud computing. The first is portability and the second is vendor lock-in. Other concerns that the agile framework addresses are reliability and performance. Since the agile framework focuses more on delivery rather than planning, portability of software and data is possible easily and quickly. This automatically alleviates the concern of vendor lock-in to a great extent. The agile framework is fully adaptable to the SaaS model of deployment. When the user wishes to adopt Software as a Service for cloud computing, the software must be flexible and adaptable. It must be made available quickly and meet the requirements of the customer. Commercially developed ready-to-use software like Tally for example, may be usable but may not meet the customer’s requirements completely. In order to do this, the software must be flexible so that it can be adapted to the needs of the user. For this developers must be ready to listen, understand, and appreciate the new requirements. Rather than sticking to the original model, they should be willing to write new programs that will fulfil the new requirements. The agile framework is a flexible framework that cautions the developers that although it is necessary to have a well thought out plan for software development, it is equally necessary to be adaptable to change.
Program development for cloud computing is highly complex and dynamic. Software designers are expected to adapt to the changing needs of the clients. The dynamic nature of cloud computing does not allow for detailed documentation. Lack of proper documentation makes modifying applications difficult and often impossible. Integrating new applications into existing systems is difficult since developers may not have open source access to the existing systems of service providers. These are some of the reasons why developers are hesitant to shift to cloud application development. In the words of the 20/20 chief architect Mark Warren, “IT has a level of discipline that businesspeople are not used to having enforced on them.” While businesspersons are used to dynamic environment where rapid changes take place, IT personnel is more focussed on planning before implementation. Agile development framework has proposed a meeting point for the two extremes. It offers a new approach and methodology to software development. A further in-depth understanding of this framework is required. Training programs for cloud development and agile framework are the need of the hour. A better understanding of the process of developing applications for cloud computing, interfacing with databases & other applications, and proper documentation of the system architecture are necessary to help programmers develop applications in a systematic manner.
Beck, Kent et al. (2001), "Manifesto for Agile Software Development". Agile Alliance Retrieved 14 June 2010 Retrieved From http://www.google.co.in/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CB0QFjAA&url=http%3A%2F%2Fwww.rmcproject.com%2Fpmi-acp%2Fpdfs%2FPMI-ACPExamPrep_Ch2Excerpt.pdf&ei=Ck3sVO7SItiMuATWiYGwCw&usg=AFQjCNE64qwjQe2GZEA70Cvs8HUcKStUiw&sig2=NSrXyaAFLKDYDZ3_dai2cQ&bvm=bv.86475890,d.c2E
Das & Vaidya (2011) An Agile Process Framework For Cloud Application Development Debbrata Das Kirti Vaidya CSC CSC Papers 2011 Retrieved From http://www.google.co.in/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CCsQFjAB&url=http%3A%2F%2Fassets1.csc.com%2Finnovation%2Fdownloads%2FCSC_Papers_2011_Agile_Process_Framework.pdf&ei=rRzYVKO7IouquQTQXA&usg=AFQjCNEmenqfH73IRRcsTMMhOy-vqEP6rA&bvm=bv.85464276,d.c2E
Goel & Sharma (2014), Cloud Computing- SPI Framework, Deployment Models, Challenges
Hassan, Qusay (2011). "Demystifying Cloud Computing". The Journal of Defense Software Engineering (CrossTalk) 2011 (Jan/Feb): 16–21. Retrieved 11 December 2014 Retrieved From http://www.crosstalkonline.org/storage/issue-archives/2011/201101/201101-Hassan.pdf
InfoWorld (2012) Cloud Computing infoworld.com deep dive series January 2 012, Copyright © 2011 InfoWorld Media Group All rights reserved. Retrieved From http://www.google.co.in/url?sa=t&rct=j&q=&esrc=s&source=web&cd=5&ved=0CDUQFjAE&url=http%3A%2F%2Fwww.ctslafrica.com%2Fworkspace%2Fuploads%2Fdocuments%2Fcloud-deep-dive0212-511bb8218849a.pdf&ei=5vrvVI3pJsbluQTJsIGQCw&usg=AFQjCNFY1OHguunwVvUJVm6yXFG-h9AYVA&sig2=uMriDF5GmSueLrWRmyC7Bw&bvm=bv.87269000,d.c2E
Nikita Goel and Toshi Sharma, International Journal of Emerging Technology and Advanced Engineering Website: www.ijetae.com (ISSN 2250-2459 (Online), Volume 4, Special Issue 1, February 2014) International Conference on Advanced Developments in Engineering and Technology (ICADET-14), INDIA. Retrieved From http://www.google.co.in/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&cad=rja&uact=8&ved=0CDcQFjAC&url=http%3A%2F%2Fwww.ijetae.com%2Ffiles%2FICADET14%2FIJETAE_ICADET_14_04.pdf&ei=VK_qVIXUJoL-ugTiyIFg&usg=AFQjCNHWxvQ9A1dAoXIoKoSqY0JEx9n-bA&sig2=6JYfQRIDRkSYBakVBJREkQ&bvm=bv.86475890,d.c2E
On-demand computing: What are the odds?, ZD Net, Nov 2002, retrieved Oct 2010
www.sersc.org/journals/IJAST/vol45/4.pdf (Industrial Manufacturing Model)
Mani & Deebitha (2014) Analysis of Agile Software Development Utilising Cloud Computing Capabilities by Pavithra Mani, Deebitha S International Journal of Innovative Technology and Exploring Engineering (IJITEE) ISSN: 2278-3075, Volume-3, Issue-10, March 2014 Retrieved From http://www.google.co.in/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0CDEQFjAB&url=http%3A%2F%2Fwww.ijitee.org%2Fattachments%2FFile%2Fv3i10%2FJ15300331014.pdf&ei=hQ3YVKK2JMHguQSpj4LwDw&usg=AFQjCNGzEcU1e09WAMCrOv-JnuxPnJEVqQ&bvm=bv.85464276,d.c2E
Singh & Chana (2013), Introducing Agility in Cloud Based Software Development through ASD By Sukhpal Singh and Inderveer Chana 1, 2Thapar University, Patiala , International Journal of u- and e- Service, Science and Technology Vol.6, No.5 (2013), pp.191-202 http://dx.doi.org/10.14257/ijunesst.2013.6.5.17 Retrieved From www.sersc.org/journals/IJUNESST/vol6_no5/17.pdf
Singh & Singh (n.d.), Reusability Framework for Cloud Computing By Sukhpal Singh, Rishideep Singh International Journal Of Computational Engineering Research (ijceronline.com) Vol. 2 Issue. 6 Retrieved From http://arxiv.org/pdf/1210.8011
Please remember that this paper is open-access and other students can use it too.
If you need an original paper created exclusively for you, hire one of our brilliant writers!
- Paper Writer
- Write My Paper For Me
- Paper Writing Help
- Buy A Research Paper
- Cheap Research Papers For Sale
- Pay For A Research Paper
- College Essay Writing Services
- College Essays For Sale
- Write My College Essay
- Pay For An Essay
- Research Paper Editor
- Do My Homework For Me
- Buy College Essays
- Do My Essay For Me
- Write My Essay For Me
- Cheap Essay Writer
- Argumentative Essay Writer
- Buy An Essay
- Essay Writing Help
- College Essay Writing Help
- Custom Essay Writing
- Case Study Writing Services
- Case Study Writing Help
- Essay Writing Service
- Cloud Research Papers
- Computers Research Papers
- Software Research Papers
- Development Research Papers
- Cloud Computing Research Papers
- Services Research Papers
- Internet Research Papers
- Infrastructure Research Papers
- Framework Research Papers
- Business Research Papers
- Technology Research Papers
- Application Research Papers
- Customers Research Papers
- Information Research Papers
- Model Research Papers
- Planning Research Papers
- Time Management Research Papers
- Flexibility Research Papers
- Deployment Research Papers
- Concern Research Papers
- Aliens Research Papers