Essay: Using Extreme Programming and SCRUM during the development of web and mobile applications

During the lecture I currently enrolled with (Next Generation Business Applications), we have to write some essay’s. As these might be interesting, or might even start a discussion I will post these to my blog as well. If you have any question or comments please feel free to leave a reply. The essay which is stated below is the first out of three essay’s we have to write. This first essay has to deal with topics as “Why SCRUM and XP are used creating mobile and web applications and which tools can be used during such projects.”

Introduction

Nowadays every organization can’t be without a website. Using the websites enables the business of entering a rapid growing market. The rapid growing market is no longer the market that is very close to the physical location of the business, but now involves the entire world. Besides websites, mobile applications are more and more important for businesses, new features are constantly added to these platforms. Adding new features often involves a project in which all the requirements are set and after collecting a lot of new features updates can be enrolled. However during these project new insights are gained constantly, planning issues arises every now and then as documentation made at the beginning of the project often misses important components. The here fore mentioned issues were found most of the times the waterfall methodology is being used. The waterfall methodology was used heavily during the beginning of 00’s. Nowadays agile methodologies as Extreme Programming (XP) and SCRUM are more and more finding its way to the software developers. But what exactly is XP, how can we compare it with SCRUM, and why is it especially used for web based systems and mobile applications?

Comparing XP and SCRUM

In general the Scrum methodology is very comparable with the XP methodology. Both methodologies work on an iteration basis, instead of a large waterfall methodology which delivers all of the required features at the end of the project. The set-up and the way the iterations are worked through is quite the same for both methodologies.

However when comparing SCRUM and XP some differences can be found. First of all the duration of the sprints can be quite different. Within Scrum a sprint normally takes one to four weeks, and within XP a Sprint will last no longer than two weeks. Second when planning these sprints changes can also be noticed. Within SCRUM the development team updates and reprioritizes the backlog every now and then. Within XP the planning will be done with both the business (in most cases the customer) and the team of developers. Within XP the business determines the scope, priority and the composition of the releases, where the developers determines the estimates of the work items, the consequences, the process and the detailed scheduling. Together they will find the most optimal solution for the task at hand. During the sprints changes can also be seen, for example changes can still be made due to changing business requirements within XP. However within SCRUM once the items are planned into the iteration, no changes can be made from outside the team. When necessary the team is able to add additional features because these are necessary during the iteration.

The last difference between XP and SCRUM is the prescription of the used practices. As Scrum doesn’t prescribe any engineering practices, within XP more than 4 of the practices are used to described engineering practices, for example: automated testing, pair programming, simple design and refactoring (Cohn, 2009).

Using XP and SCRUM

As mentioned earlier web based applications and mobile applications are more and more important for businesses. This also means that business invest more in the website. At any moment a decision can be made that the website or application needs to be replaced or needs extra/better functionality. In most of these cases functionalities needs to be added yesterday instead of thinking thoroughly about the requirements. When functionalities needs to be added to the website as soon as possible it can be useful to start a project with a group of programmers that are used to the XP or the SCRUM methodology.

Using SCRUM or XP means that not all requirements and all functionalities have to be thoroughly defined at the start of the project or even might change during the project. Using SCRUM or XP enables you with the possibility to deliver a working part of the product at the end of every iteration. With this product the customer gets more insight in the final solution and can make changes after each iteration, which are added to a new iteration. Doing this reduces the changes of unwanted functionality to a minimum. By using one of the core values of XP, by adding a business employee to the development team, new and innovative ideas can be created throughout the process. Using SCRUM or XP also means that the run-up phase can be very short as not all functionalities needs to be documented, however it is important to bring the documentation of the project up to date at the end of the iteration.

Using all these kinds of aspects it is relatively simple to set-up a team and plan all the various iterations that are required. Using small iterations the most important features can be added to the web based application within several weeks instead of several months when using the waterfall methodology. Besides these time saving actions the quality of the code will also be better as one of the practices of XP states that tests needs to be written first. Using this kind of methodology makes sure that additions in next iterations will be less problematic as lots of the code are tested automatically, and when tests are broken it is relatively easy to find the code that creates the problems.

In the previous paragraphs several notions of advantages of SCRUM and XP compared to the waterfall methodology are mentioned. However the most important advantage is the planning side of the SCRUM and XP. Within the waterfall methodology the planning is mostly dictated by the customer and the project manager. However within SCRUM and XP the development team in consultation with the customer is responsible for the planning. This provides much more responsibilities to the team and the individual who are responsible for giving a realistic time planning (Little, 2012).

Tooling XP and SCRUM

Throughout the world wide web a lot of tools can be found that supports the development team by their planning and developing the code. The software must be able to determine the product backlog where all the remaining work items for the product are placed. Besides the product backlog, a sprint backlog should also be possible as the team needs to be in control of the tasks that are defined for the sprint and how long the tasks will take. Tools which supports these kinds of tasks are: Assembla, codeBeamer, Microsoft Visual Studio, YouTrack etcetera. Each tool is unique in its kind and is able to support SCRUM and XP. However should be noticed that some of these tools needs to be configured first in order to maintain the very high standards often set by the methodology (SCRUM Development, 2013).

Conclusion

XP and SCRUM are very much the same, but differences can be found on several small details. Using SCRUM or XP speeds up the development of the various requirement and delivers the requested features faster and with more quality to the customer.

The question is now why should SCRUM or XP be used when developing a new kind of application? Well most of the arguments are already made. First of all the documentation is far from ready. As there will be new ideas for features throughout the project and the priority of these features can be different at any sprint, it should be wise to have flexible planning. Using XP also requires the team by applying several coding standards that will add flexibility to the project but also quality control and fun during the development.

References

Cohn, M. (2009, 02 20). MSDN blogs. Retrieved from MSDN: http://www.mountaingoatsoftware.com/blog/differences-between-scrum-and-extreme-programming

Little, J. (2012, 03 24). Waterfall versus Scrum: How do they compare? . Retrieved from Agile Consortium: http://agileconsortium.blogspot.nl/2012/03/waterfall-versus-scrum-how-do-they.html

SCRUM Development. (2013, 04 08). Retrieved from Wikipedia: http://en.wikipedia.org/wiki/Scrum_(development)#Project_management_tools_that_support_scrum