0% found this document useful (0 votes)
19 views8 pages

Jurnal Extreme Programming

Uploaded by

edogunadhi17
Copyright
© © All Rights Reserved
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)
19 views8 pages

Jurnal Extreme Programming

Uploaded by

edogunadhi17
Copyright
© © All Rights Reserved
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
You are on page 1/ 8

DOI 10.17605/OSF.

IO/PXMYW

EXTREME PROGRAMMING IN MOBILE APPLICATIONS

SAMER BARAKAT
Applied Science Private University, Amman, Jordan. Email: qulaity@asu.edu.jo
KHALIL YAGHI
King Abdul-Aziz University, Jeddah, Saudi Arabia. Email: yaghojo@gmail.com

ABSTRACT
Mobile Application development is a relatively new concept in software development domain. Programming
applications for the mobile user’s deferrers in concept than building web applications. The development approach
follows the software engineering development methodologies. Mobile Applications are based on user needs and
as new requirements arise, new applications are developed by users and developers. And this can happen very
quickly compared to conventional software development methods. This paper takes an exploratory approach to
mobile application development methodology, examines well-known software engineering development
methodologies, and introduces Extreme Programming as a Mobile application development methodology.

INTRODUCTION
Mobile Applications are software applications that has been developed collectively and
efficiently by a large number of software developers and is freely distributed over the Mobile
Applications stores [21, 8, 6]. Some developers provide the source code for free under the GNU
(General Public License) agreement so that the advanced and updated versions of the software
can be released by other developers and users under the same GNU license [12]. The driving
force behind Mobile Applications is keeping software projects evolving by encouraging people
using mobile phones to download and use the applications. Mobile Applications are developed
with a process that promotes the rapid creation and implementation of incremental features and
bug fixes into existing code. The Mobile Applications itself could be described as a
methodology for developing software systems [21]. Commercial software systems and
packages are built in such a way that the source code is kept away from prying eyes, users don't
know how the system works [12]. The idea behind Mobile Applications is that users have no
access to the code and developers are be able to view the source code and make all changes
and additions to the software. Free software advocates believe that everyone should have access
to the source code of software [12]. In free and Mobile Applications, source code is available
for remote access, open for study and modification, and available for redistribution to others
with limited restrictions except for the right to grant these freedoms [21].
Mobile Applications development projects are also seen as a software development
methodology capable of producing high quality and sustainable software systems that can be
used by thousands to millions of end users [11, 16]. Therefore, it can be assumed that Mobile
Applications development processes are not identical to the kind of software development
found in traditional software engineering projects. The Mobile Applications development
methodology is a highly decentralized development approach. The development of Mobile
Applications leads directly to more robust software and more diverse business models. By

326 | V 1 8 . I 0 1
DOI 10.17605/OSF.IO/PXMYW

following a version control system, developers can keep a copy of the source code and develop
newer versions on their workstation and release them on the App Store [21].
Some believe that Mobile Applications development does not follow software engineering
approaches to software design and development [21]. It is another approach that enables robust
software development through input from developers and users who access the software
through the Internet. Increasing efforts are being made to facilitate and improve social
interaction between developers and end users [21].
Software Engineering
Software development follows some kind of structure, adheres to schedules, and enters
different phases during the development lifecycle, such as Requirements, Analysis, Design,
Implementation, and Testing Phases. The use of a software engineering methodology is
fundamental for most application developers. The methodology is an important tool for
resource control, product design and quality assurance to produce "mature software". [23, 20]
Developing a software system is a complex and time-consuming process. To control the
development process, developers follow a predefined set of framework activities that introduce
and define different phases of the development process, such as: B. planning, requirements
gathering, design, testing, and maintenance [14, 23]. Software engineering methodologies are
the framework that tells us how to develop our software systems. The choice of methodology
to use in a development project is closely related to the size of the software system and the
environment in which it should work.
Application Models
Process models have been proposed to bring order to the chaos of software development [20].
These models improve productivity and quality. Some try to systematize or formalize the
seemingly intractable task of writing software. Others apply project management techniques to
writing software. Without project management, software projects can easily be delivered late
or over budget [17]. As a large number of software projects do not meet their expectations in
terms of functionality, cost or delivery time, effective project management proves difficult [13].
A software development process is essential for the development of a software product. Several
process models have emerged, each describing approaches for a variety of tasks or activities
that take place during the process. Mobile Applications development approaches were not
created by traditional software engineering researchers; nevertheless, it achieved some of the
goals sought by software engineering [24]
A. Waterfall Development
The best known and oldest process is the waterfall model, a sequential software development
model in which development is viewed as a constant, waterfall-like downward flow through
the development phases (requirements analysis, design, implementation, test, integration and
maintenance). [23.20].

327 | V 1 8 . I 0 1
DOI 10.17605/OSF.IO/PXMYW

The sequential nature of the waterfall model means that work on each stage must be fully
completed before moving on to the next stage [20]. The waterfall model is suitable for software
systems that have fixed requirements and go through the development process sequentially.
The waterfall model is still taught in colleges and universities around the world as a modern
software engineering process model [18]. But because we live in a fast-paced world where
system and user requirements change rapidly and frequently, the waterfall model is losing
ground to fast and flexible software development methodologies.
B. Prototyping Development
This is a cyclical version of the waterfall model. In this model, once the needs analysis has
been carried out and the design for a prototype has been created, the development process is
started. Once the prototype has been built, the first system is delivered to the customer for
evaluation [20]. The customer tests the package and provides their feedback to the developer
who refines the product to the customer's exact expectations. After the development of several
iterations, the final software package is delivered to the customer [1]. In this methodology, the
software is developed further as a result of the regular exchange of information between the
client and the developer [14]. It is the most popular development model in the IT industry
today. The most successful software products have been developed according to this model
C. Spiral Development
The spiral model is a software development process that combines elements of step-by-step
design and prototyping to combine the advantages of top-down and bottom-up concepts [1].
The spiral pattern is most commonly used in large projects. For small projects, the concept of
agile software development becomes a viable alternative.
With each iteration, the requirements are refined and a more complete prototype is created,
either building on the prototype created in the first iteration or creating a new one. The
engineering done at each iteration can be done in both lifecycle and prototyping form
depending on the certainty of the requirements. [20]
D. Extreme Programming
Extreme Programming is a software engineering methodology, the most important of several
agile software development methodologies [25, 2]. Like other agile methodologies, Extreme
Programming differs from traditional methodologies mainly in that it places more value on
adaptability than on predictability [2]. Extreme Programming proponents see constant changes
in requirements as a natural, inevitable, and desirable aspect of software development projects;
believe that it is more realistic and better to adapt to changing requirements at any point in the
project than to try to define all requirements at the beginning of a project and then struggle to
control changes in requirements [2].
Extreme Programming prescribes a set of daily practices for managers and developers;
practices are meant to embody and encourage certain values. Proponents believe that applying
these practices - traditional software engineering practices taken to so-called "extreme" levels

328 | V 1 8 . I 0 1
DOI 10.17605/OSF.IO/PXMYW

- leads to a more customer-responsive ("agile") development process than traditional methods


[4].
Extreme Programming is actually a thoughtful and disciplined approach to software
development. Extreme Programming is successful because it emphasizes customer satisfaction.
The methodology is designed to deliver the software the customer needs when it's needed.
Extreme Programming enables your developers to respond confidently to changing customer
needs, even late in the lifecycle [2]. This methodology also emphasizes teamwork. Managers,
customers and developers are all part of a team dedicated to delivering quality software.
Extreme Programming implements a simple but effective way to allow for groupware-style
development.
Extreme Programming improves a software project in four essential ways; communication,
simplicity, feedback and courage [15]. Extreme Programming programmers communicate with
their customers and fellow programmers. They keep their design simple and clean. They get
feedback by testing their software from day one. They deliver the system to the customer as
soon as possible and implement the proposed changes. With this foundation, Extreme
Programming programmers are able to respond boldly to changing requirements and
technologies.
Extreme Programming for Mobile Applications
The traditional software development methodologies presented previously are not adequately
pertaining the Mobile application development methodology. There are similarities in some
traditional approaches to Mobile application such as the prototyping approach, nevertheless
Mobile application projects are not about creating prototypes, but are about creating different
versions of the software. Versioning describes how the software evolves to become more stable
and functions correctly. This is a facility found in the Extreme Programming methodology.
But is Extreme Programming suitable for Mobile application development? Extreme
Programming is a refreshing new agile software engineering approach. Extreme Programming
cross paths with Mobile Applications in the fact that software developed using the Mobile
Applications exhibit the following patterns:
• Customer engagement
Extreme Programming recognizes that the single most important factor in software
development is the customer. Most key practices in Extreme Programming revolve around
communication with the customer, "listening" to his requirements and "responding" to his
feedback [4]. Extreme Programming even advises that you have a representative of the
customer available at the development site throughout the development lifecycle [15]. Open
Source projects have similarity to this approach. Mobile Applications treat the users as co-
developers and so they should have access to the source code of the software [19]. Furthermore,
users are encouraged to submit additions to the software, code fixes for the software, bug
reports, and documentation [12]. Having more co-developers increases the rate at which the

329 | V 1 8 . I 0 1
DOI 10.17605/OSF.IO/PXMYW

software evolves. This means that if many users view the source code them will eventually find
all bugs and suggest how to fix them.
• Iterative approach
Most conventional software development methodologies work on a single release schedule.
The development lifecycle spans years and is essentially black box from the point-of-view of
the customer, who has to step out of the way and patiently await the day the developers
transform his requirements into usable software [23, 22]. This approach offers no chance for
change or for feedback from the customer on what is being done in the development process.
Extreme Programming proposes an incremental release schedule that incorporates a finite
subset of product features in each release. The first version of the software should be released
as early as possible so as to increase one's chances of finding co-developers early [15].
Customers feed requirement changes and their comments on the current release into a system
that adopts these into the release cycle. And, importantly, each release is thoroughly tested, and
the customer is assured of bug free execution within the scope of the limited feature set [20].
Iterative development of this sort is the norm in Open Source development. One lesson that
Open Source developers can take from Extreme Programming here is to ensure that any release
that they make is thoroughly tested in scenarios that the developers are familiar with. Feedback
from the field can then be relied on for scenarios that are un-testable in the development stage.
An important aspect of open source projects is conducting a release. While the source code is
freely available and usually developed in an open manner, the ratio of users may greatly exceed
the number of useful developers [5]. Therefore, an open source project may need to package
their software in a way that is conducive to attracting non-technical users [7].
• Source Code Versioning and Documentation
The use of formal SDLC documents often end up hampering the process of software
development, what the customer wants his software to do and how the developer satisfies these
needs. When documentation becomes the mainstay of the development process, the only other
supplicant in the process, the software itself, suffers. Extreme Programming is decidedly
against such formalism. Extreme Programming uses user stories as alternatives to bulky
software requirements specifications [20]. These describe usage scenarios drafted by the
customer, in his language and as he understands them. And instead of UML-based design
documents, Extreme Programming suggests simple CRC cards that capture the essence of the
design in the developers' dictionary on a medium that is easy to retrieve and refer to.
The Open Source community, in its turn, never did believe in the idea of tracking the
development process in formal documents. Design documents are usually written to serve as
aids to future developers or maintainers. But the designers of the Open Source world are well-
versed in the art of browsing code to understand design and have never needed documents
describing it [19]. Most projects are proposed as ideas on a mailing list. Developers discuss the
design through mail exchanges and posts. Eventually, a skeleton form that is fleshed out in
versions. Often, the bulwark of project documents is the set of user guides. In large projects

330 | V 1 8 . I 0 1
DOI 10.17605/OSF.IO/PXMYW

with several modules and elaborate cohesion, documents describing the interactions between
the various modules and control flows are, however, essential. To their credit, Open Source
developers have been quick to realize this. Most big Open Source development efforts today
are backed with the necessary design descriptions.
Open-source development usually has very little formalized process modeling or support.
Some projects use issue-tracking software to provide limited support for their evolution
processes, but very few have any explicit model of their design or development activities [3].
• Easy Approach
Code the simplest thing that could possibly work. This simple idiom is another of Extreme
Programming cornerstones [20]. An ideal that could be one of Extreme Programming most
valuable contributions to software development, this still remains one of the most difficult to
adhere to. Most developers have a tendency to cluttering their code with so many options that
the usage info tends to span several pages. Extreme Programming looks at the timing. It is not
necessary that your first release be a study in optimization. Instead, let it be a study in
simplicity, in functionality [15]. Let it do all it set out to do and do it in the simplest manner
possible. Let it give users a feel for what they can expect of their software. Open Source
practitioners are fairly adept at making this work. The manner in which they go about doing
this, however, may leave something to be desired. Most initial releases don't even do half of
what they are supposed to, leaving subsequent releases to implement the missing functionality.
• Reissuing
Refactoring is not easy. It requires the developer to respond to change which shall lead to
complete redesign of cod [9]. This requires understanding that times have changed and
software must keep pace with change [4]. Agile methods represent new approaches in the
spectrum of software development methods. It aims at making software development more
responsive to changes. These changes are imposed by rapidly evolving technology, changing
business and product needs. [26].
Open Source developers are already used to handling change. Open Source world has long
been providing patches and fixes for their software in response to change.
• Collective Design
In the typical software development scenario, the software system is split into a set of modules,
each of which is assigned to an individual or team. The teams remain isolated in their domains
of expertise with regards to the system. Extreme Programming proposes the strategy of
Collective Code Ownership to tackle this module-based development [15, 2]. Collective Code
Ownership makes every developer working on a project responsible for all the code in the
project. Anybody can propose and make changes to any section of the code or design. Open
Source developers are completely comfortable with this strategy. This is understandable
because they had this technique long before it became wide spread. Most development in the
Open Source world happens across continents, across time zones, and often across projects
[12]. Nearly everyone who uses the code is eligible to participate in its evolution. They can

331 | V 1 8 . I 0 1
DOI 10.17605/OSF.IO/PXMYW

contribute to the design, write code, fix bugs, document, and influence the contents of the next
release.

CONCLUSION
The purpose of this paper was to identify the development methodology used in Mobile
Applications development projects, using widely known software development methodologies
as a starting point. Our research focused on Extreme Programming as a Mobile Applications
development methodology. We found that Extreme Programming crosses path with Mobile
Applications in the following six development patterns, customer involvement, iterative
development, documentation, keep it simple design, refactoring and collective ownership.
Based on the preceding results, we conclude that Extreme Programming is the best software
engineering development methodology for Mobile Applications development. Mobile
Applications is still fairly new in a business environment and additional research is needed to
examine other Extreme Programming techniques such as continuous integration and pair
programming and relating them to open software development.

References
1. Al Shobaki, M. M., Naser, S. S. A., Amuna, Y. M. A., & El Talla, S. A. (2017). The Efficiency of Information
Technology and its Role of e-HRM in the Palestinian Universities. International Journal of Engineering and
Information Systems, 1(5), 36-55.
2. Al-Gasaymeh, A. S., Kaddumi, T. A., & Qasaimeh, G. M. (2021). Measuring risk eExtreme
Programmingosure in the banking sectors: Evidence from gulf cooperation countries. Journal of Financial
Economic Policy, doi:10.1108/JFEP-01-2020-0008
3. Aljanabi, M., Shkoukani, M. & Hijjawi, M. (2020) Ground-level Ozone Prediction Using Machine Learning
Techniques: A Case Study in Amman, Jordan. Int. J. Autom. Comput. 17, 667–677.
https://doi.org/10.1007/s11633-020-1233-4
4. Aydınlıyurt, E. T., Taşkın, N., Scahill, S., & Toker, A. (2021). Continuance intention in gamified Mobile
Applications: A study of behavioral inhibition and activation systems. International Journal of Information
Management, 61, 102414.
5. Bazazo, I. K., & Alananzeh, O. A. (2016). The effect of electronic tourism in enabling the disabled tourists
to communicate with the touristic and archaeological sites case study–Jordan. European Scientific
Journal, 12(5), 111-128.
6. Chakravarty, A., Grewal, R., & Sambamurthy, V. (2013). Information technology competencies,
organizational agility, and firm performance: Enabling and facilitating roles. Information systems
research, 24(4), 976-997.
7. Gunasekaran, A., & Ngai, E. W. (2004). Information systems in supply chain integration and
management. European journal of operational research, 159(2), 269-295.
8. Lind, M., Brödje, A., Watson, R., Haraldson, S., Holmberg, P. E., & Hägg, M. (2014). Digital infrastructures
for enabling sea traffic management. In The 10th International Symposium ISIS 2014 “Integrated Ship’s
Information Systems “.
9. Melville, N. P. (2010). Information systems innovation for environmental sustainability. MIS quarterly, 1-
21.

332 | V 1 8 . I 0 1
DOI 10.17605/OSF.IO/PXMYW

10. Qutqut, M.H., Al-Sakran, A., Almasalha, F., Hassanein, H.S., 2018, Comprehensive survey of the IoT
opensource OSs. IET Wireless Sensor Systems, Volume 8(6), pp. 323–339
11. Rueckel, D., Muehlburger, M., & Koch, S. (2020). An updated framework of factors enabling digital
transformation. Pacific Asia Journal of the Association for Information Systems, 12(4), 1.
12. R. Greenberg. Mobile Applications Development. Thesis for Senior Honors at Brandeis University. May 9,
2003
13. T. Gilb. Principles of Software Engineering Management. Addision-Wesley, 1988.
14. Jacobson. Object-Oriented Software Engineering. Addison-Wesley, 1992.
15. R. Jeffries, et al. Extreme Programming Installed. Addision-Wesley, 2001.
16. Mockus, R. Fielding, J.D. Herbsleb. Two Case Studies of Open Source. Software Development: Apache and
Mozilla. (2002). ACM Transactions on Software. Engineering and Methodology, 11(3), 309-346.
17. J. McDermid, P. Rook. “Software Development Process Modles” in Software Engineer’s Refereance Book.
CRC Press, 1993
18. B. Massey. Why OSS Folks Think SE Folks Are Clue-Impaired. Computer Science Department. Portland
State University P.O. Box 751 M.S. CMPS. Portland, Oregon USA 97207-0751. bart@cs.pdx.edu ,15
February 2003
19. L. Norin, F. Stockel. Open-source software development methodology.
20. R. Pressman. “Software engineering: Practitioner’s approach”, ISBN 0-07-707936-1, McGraw-Hill Book
Company, 1992
21. W. Scacchi. Free/Mobile Applications Development: Recent Research Results and Methods.Institute for
Software Research Donald Bren School of Information and Computer Sciences. University of California,
Irvine Irvine, CA 92697-3425 USA. 27 August 2006
22. S. Schach, B. Jin, D. Wright, G. Heller, and J. Offutt. Maintainability of the Linux kernel. IEE Proceedings .
Software, 149(1):18.23, February 2002.
23. I, Sommerville. “Software engineering”, ISBN 0-201-56529-3, Addison-Wesley Publishing Company Inc.,
1992
24. W. Scacchi, "Is Mobile Applications Development Faster, Better, and Cheaper than Software Engineering?,"
The 24th International Conference on Software Engineering, 2nd Workshop on Mobile Applications
Engineering, Orlando, FL, USA, May 19-25, 2002.
25. The Agile Alliance Home Page. http://www.agilealliance.org/home
26. J. Warstaa, P. Abrahamsson. Is Mobile Applications Development Essentially an Agile Method? Department
of Information Processing Science. University of Oulu, Finland. Oulu, Finland Juhani.Warsta@oulu.fi,
Pekka.Abrahamsson@vtt.fi

333 | V 1 8 . I 0 1

You might also like