|Author : DAOUDI Samir | Context : MSc Software Engineering – Object Oriented Analysis
The software development process is taking an important place within business and companies processes, the simple fact that software is impacting finance, business, humans, procurements …etc. It is being given the high priority. The software development process is a set of tasks and technics that can be summarized basically in the following:
– Analysis, is the definition of requirements and outputs; it is in fact the development of an application-oriented specifications.
– Design, during this phase, decisions are made on how to design and implement the application-oriented specifications. It also includes all the development tasks of the software from the high-level abstraction to the detailed conception.
– Testing, is the post development phase which consist in conducting a set of tests to verify different aspects of the software. (Samir, 2013).
This is the global overview of the software development process. Different implementations of these process have been made as the requirements of having a formal development process which can guide and dictate the different routes and methods to follow. The differences between software development processes is in fact in the implementation of the these phases and the sub tasks composing these lasts. eXtrem Programming is one of the software development processes that proved its efficiency during the years.
What is eXtreme Programming?
XP is software development discipline formulated in 1999 by Kent Beck Ward Cunningham and Ron Jeffries; based mainly on values of simplicity, communication feedback and courage. It provides to whole team with enough feedback to see where the team is compared to the overall goals (Crispin & House, 2003). XP was also defined as an agile process based on a set of practices and methods for software development; it concentrates in eliminating the unnecessary work and focusing on those which give valuable deliveries to the customer (Burke & Coyner, 2003).
XP is also seen as ‘lightweight, efficient, low-risk, flexible, predictable, scientific and fun way to develop software’(Beck, 2000). Compared to other methodologies, XP can be distinguished by:
– Concentrating in short cycles and continuing feedback.
– Planning approach, this aims to build the overall plan during the life cycle of the project.
– Flexibility in implementing certain functionalities, which can be useful for handling business, needs.
– Importance of monitoring during the development life cycle which is based on different tests made by the developers and the end users.
– Rely on a close collaboration between team members’.
XP is widely used in small developers teams especially for small to middle software solutions. I’ve taken part of different small developers teams for middle sized projects where we had recurrent tasks to perform regularly, as planning the week development process at the beginning and review it at the end. The project plan was getting clearer each time with new tasks being reviewed.
The communication was the base of every step, developers were in the same location and were able to meet and discuss when required.
The development was also conducted step by step, we focused on small parts or entities of the projects and were building the software on top of these small pieces. This approaches allowed us to concentrate in small issues at one time. And the modularity aspect of this approach simplified significantly the complexity of the solution.
– DAOUDI Samir (2013). Discussion Question 1, Software development processes. Object Analysis and design models course.
– Kent Beck (2000). Extreme Programming explained. ISBN: 201-61641-6.
– Lisa Crispin, Tip House (2003). Testing Extreme Programming. ISBN: 0-321-11355-1.
Eric M. Burke & Brian M. Coyner (2003). Java Extreme Programming Cookbook. ISBN: 0-596-00387-0