0% found this document useful (0 votes)
98 views5 pages

Agile Programming: As A CMS Development Methodology

This document discusses Agile Programming and Extreme Programming (XP) as methodologies for Content Management System (CMS) development. It argues that XP is well-suited for open source CMS development because both approaches emphasize iterative development, user requirements, simplicity in design, and collective code ownership. Open source CMS projects allow developers from around the world to collaboratively improve applications over time through an incremental process of adding new features and fixing bugs, similar to the iterative nature of XP.

Uploaded by

Alexander Decker
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
98 views5 pages

Agile Programming: As A CMS Development Methodology

This document discusses Agile Programming and Extreme Programming (XP) as methodologies for Content Management System (CMS) development. It argues that XP is well-suited for open source CMS development because both approaches emphasize iterative development, user requirements, simplicity in design, and collective code ownership. Open source CMS projects allow developers from around the world to collaboratively improve applications over time through an incremental process of adding new features and fixing bugs, similar to the iterative nature of XP.

Uploaded by

Alexander Decker
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Innovative Systems Design and Engineering ISSN 2222-1727 (Paper) ISSN 2222-2871 (Online) Vol.4, No.

1, 2013

www.iiste.org

Agile Programming: as a CMS development Methodology


Samer Barakat* Management Information Systems Department, Applied Science University, Amman , Jordan * sbarakat@asu.edu.jo Abstract Content Management Systems (CMS) development is a fairly new concept in the field of web software engineering. Most CMSs start as a free application that starts as developers on the net work on and modify the source code for the application. Developers from all parts of the world improve, adapt, and fix application bugs and issues. Developers work on voluntary basis on a project of their choice. As the need for new requirements becomes evident, the application is enhanced by adding new objects, modules by developers. This process is performed very rapidly compared to conventional software development methodologies. This paper shall follow an explorative approach to content management system development methodology using agile programming and introducing Extreme Programming (XP) as a Content Management System development methodology. Keywords: Agile Programming, Content Management System, Open Source Systems 1. Introduction Content Management Systems (CMS) applications are mostly free software developed collectively and efficiently by a large number of volunteers and distributed along with its source code for free over the internet under the open source development theme (OSS) (Dinh.-Trong, T. & Bieman, J. 2002). Developers offer the source code for free under the General Public License agreement (GNU) to allow for advanced and updated versions of the software to be released by other developers and users under the same GNU license (Greenberg, R. 2003). Commercial software systems are packaged and compiled to hide the source code from end users or other developers, users dont know how the system works (Greenberg, R. 2003). The idea behind Free Open Source Software is that users and developers are able to view the source code and do whatever amendments and additions to the software. Under this practice everyone should have access to the application source code (Fowler, M. 2000). In free and open source applications the source code is available for download from the organizations website and is open to be studied and modified, and available for redistribution to others without constraints. Contrary to most commercial development projects, CMS participants have the freedom to work on any part of the project. There are no assignments and deadlines. Open source CMS development projects produce high quality and sustainable applications that can be used by a large number of users (Grling. S. 2003). Therefore, open source CMS development processes are different from traditional Software Engineering projects. Open Source CMS development methodology is a highly decentralized development approach. Anyone can download a copy of the application and work towards to the improvement of the application (Godfrey, M. and Tu, Q. 2000), therefore, Open Source CMS development leads to robust applications and more reusable business models. Developers over the whole wide world can keep a copy of the source code and develop newer versions on their own workstation and release it through the organizations website through a versioning control system (Fowler, M. 2000). Many believe that Open Source CMS development does not follow the software engineering approaches to software design and development. It is a totally different approach which contribute to the development of robust application through the rapid contribution of developers and users who can download the application source code online without restrictions. Forums and blogs serve the facilitation of interaction among developers and end-users (Jacobson, I. 1992).

2. Software Engineering All Software development approaches follows a project timeline and must go through different stages during the

13

Innovative Systems Design and Engineering ISSN 2222-1727 (Paper) ISSN 2222-2871 (Online) Vol.4, No.1, 2013

www.iiste.org

development life cycle such as requirements gathering, analysis, design, implementation and testing. It is fundamental for most application developers to follow some sort of software engineering methodology. The methodology is an important tool to control resources, product design and quality assurance, in order to produce well engineered software (Gilb. T. 1988). Developing a Content Management System is a very complex and time consuming process. In order to control the development process, developers follow a predetermined list of processes that introduces and defines different phases of the development process, such as planning, requirements gathering, design, testing and maintenance (Jacobson, I. 1992). Software engineering methodologies are an essential framework that guides application developers to reach their final goals of achieving the final application. The choice of which methodology to use in a development project is closely related to the size of the software system and the environment it is supposed to function in (Booch, G. 1994).

3. Extreme Programming Extreme Programming (XP) is an agile methodology for developing applications that provides the needed application in the fastest way possible. (Beck, K. 2000). Extreme Programming differs from traditional methodologies in that it places a higher value on adaptability than on predictability (Cox., A, 1998). Agile application development method is based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It is a conceptual framework that promotes foreseen interactions throughout the development cycle. Agile application development break tasks into small increments with minimal planning and do not directly involve long-term planning. Iterations are short time frames that typically last a short period of time. Each iteration involves a cross functional team working in all functions: planning, requirements analysis, design, coding, unit testing, and acceptance testing (Gilb. T. 1988). Team composition in an agile project is usually cross-functional and self-organizing, without consideration for any existing corporate hierarchy or the corporate roles of team members. Team members normally take responsibility for tasks that deliver the functionality an iteration requires. They decide individually how to meet an iteration's requirements (Gilb. T. 1988).

4. Extreme Programming (XP) for CMS development In software engineering science, there are similarities in some traditional approaches to OSS such as the prototyping approach, however open-source projects are not about creating prototypes, but are about creating different versions of the system. Versioning keeps track of how the application evolves to become more stable and functions correctly. But is XP suitable for Open Source CMS development? XP is an agile software engineering approach which is similar to OSS development in the fact that both have the following characteristics: 4.1 User Requirements XP as any other development approach considers the user as the most important source for application requirements. Most key practices in XP revolve around communication with the customer, "listening" to his requirements and "responding" to his feedback (Cockburn, A. 2002). XP also recommends having a representative of the customer available at all development stages (Booch, G. 1994). Open Source CMS projects follow similar approach. They treat the end users as co-developer and therefore must have access to the application source code. Additionally, users provide amendments to the application, bug fixes, bug reports, add-ons and documentation (Greenberg, R. 2003). 4.2 Iterative Approach XP introduces an incremental approach in application developments. Each increment contains certain functions and processes. The first version of the application is released fairly early in order to gain exposure and attract a wide base of co-developers (Booch, G. 1994). Iterative development is the standard in Open Source CMS development. XP ensure that any release is thoroughly

14

Innovative Systems Design and Engineering ISSN 2222-1727 (Paper) ISSN 2222-2871 (Online) Vol.4, No.1, 2013

www.iiste.org

tested. Feedback from the users can then be used to reach a stable release. XP open source CMS project are packaged in a manner that attracts non-technical users (Erenkrantz, J. 2005). 4.3 Simplicity in design XP open source CMS follows the simplicity approach when coding the application. This is one of XP's cornerstones (Jacobson, I. 1992). XP considers time frames. It is not necessary for the first release be ideal or optimized. Instead, it must be vivid with simplicity, in functionality (Cockburn, A. 2002). Each release give users a feel for what they can expect their application to be. Most initial releases does not contain the majority of expected functionalities, leaving it to subsequent releases to add in the missing functionalities. 4.4 Collective Ownership XP advocates the mission of Collective Code Ownership (Beck, K. 2000). Collective Code Ownership makes every developer working on a project responsible for all the code in that project. Any developer can make changes and contribute to any section of the application code. Open Source CMS developers are completely happy with this development approach. Most CMS development projects occurs across continents, time zones, and even across projects (Greenberg, R. 2003). Everybody who works on the application is eligible to participate in its evolution. Developers share contributions in the design, writing code, fixing bugs, documentation, and evolution of the upcoming release.

5. Conclusion The purpose of this paper was to identify the development methodology used in open source CMS application development projects, using widely known application development methodologies as a starting point. Our research focused on Extreme Programming as an Open Source Content Management Systems Application development methodology. We found that XP crosses path with OS Content Management Application development in the following four development patterns, user requirements, iterative approach, simplicity in design and collective ownership. Based on the preceding results, we conclude that Agile methodologies is the best application engineering development methodology for Open Source Content Management Systems Application development. References Booch, G. (1994), Object Oriented Analysis & Design, 2nd ed. Benjamin Cummings, 168-177. Beck, K. (2000) Extreme Programming Explained, Addison-Wesley, 34-82. and the TownCouncil, <http://slashdot.org/features/98/ Cockburn, A. (2002), Agile Software Development, Addison-Wesley, 59-124. Cox., A, (1998), Cathedrals, Bazaars 10/13/1423253.shtml>, Slashdot, HTML.

Dinh.-Trong, T. & Bieman, J. (2002), The FreeBSD Project: A Replication Case Study of Open Source Development, Software Assurance Laboratory, Computer Science Department, Colorado State University Fort Collins, CO 80523 USA. Erenkrantz, J. (2005), Release Management Within Open Source Projects, Institute for Software Research University of California, Irvine. Irvine, CA 92697-3425. jerenkra@ics.uci.edu. Fowler, M. (2000), Refactoring: Improving Design of Existing Code, Addison-Wesley,. Godfrey, M. and Tu, Q. (2000), Evolution in open source software: A case study, Proc. Int. Conf. Software Maintenance (ICSM), pages 131.142. Grling. S. (2003), A critical approach to Open Source software, Submitted for the degree of Masters of Science. Greenberg, R. (2003), Open Source Software Development, Thesis for Senior Honors at Brandeis University. Gilb. T. (1988), Principles of Software Engineering Management, Addision-Wesley. Jacobson, I. (1992), Object-Oriented Software Engineering, Addison-Wesley.

15

Innovative Systems Design and Engineering ISSN 2222-1727 (Paper) ISSN 2222-2871 (Online) Vol.4, No.1, 2013

www.iiste.org

Samer M. Barakat is an assistant professor at Applied Science University. He received his BAA from the University of Texas in 1987 and his MS degrees in information systems in 1989, and his PhD degree in management information systems in 2009. He is the author of a number of journal papers and has written three book chapters. His current research interests include data mining, artificial intelligence, and knowledge systems. He is a certified eCommerce and eBusiness Consultant. He is the head of ASU website unite and has helped ASU achieve an advanced rank in Webometrics University Ranking. He is a member of several professional and scientific societies.

16

This academic article was published by The International Institute for Science, Technology and Education (IISTE). The IISTE is a pioneer in the Open Access Publishing service based in the U.S. and Europe. The aim of the institute is Accelerating Global Knowledge Sharing. More information about the publisher can be found in the IISTEs homepage: http://www.iiste.org CALL FOR PAPERS The IISTE is currently hosting more than 30 peer-reviewed academic journals and collaborating with academic institutions around the world. Theres no deadline for submission. Prospective authors of IISTE journals can find the submission instruction on the following page: http://www.iiste.org/Journals/ The IISTE editorial team promises to the review and publish all the qualified submissions in a fast manner. All the journals articles are available online to the readers all over the world without financial, legal, or technical barriers other than those inseparable from gaining access to the internet itself. Printed version of the journals is also available upon request of readers and authors. IISTE Knowledge Sharing Partners EBSCO, Index Copernicus, Ulrich's Periodicals Directory, JournalTOCS, PKP Open Archives Harvester, Bielefeld Academic Search Engine, Elektronische Zeitschriftenbibliothek EZB, Open J-Gate, OCLC WorldCat, Universe Digtial Library , NewJour, Google Scholar

You might also like