Scrum methodology for the building of applications

Over the past few years, Scrum has become the best known agile method for building applications. Like all agile methods, it essentially aims to arrive at a finished product that is much closer to user needs than one developed using traditional methods.



Challenges


Financial markets provide particularly fertile ground for agile methods. Very demanding users and ongoing innovation create an environment that suffers enormously from the slowness of a V shaped cycle process. Highly complex IT systems also make long cycles with a lot of changes for a single delivery very problematic.
 
The Scrum method appeals to anybody who has taken part in a financial markets development project, since it seems to overcome all these difficulties. It nevertheless implies a major organisational change, as well as a fundamental change of mentality. In often large and complex organisations, it is a real challenge to break with old habits and change mindsets.



Missions


Consultants working in development teams are required to:
  • Conduct Scrum rituals (daily scrum, sprint planning, demonstrations)
  • Take on the role of SCRUM Master for a given period
  • Lead change management with those involved (the team itself, the person appointed Product Owner...)
  • Put in place the tools to monitor backlog and other Scrum artefacts
  • Take part in the review
These consultants become pioneers and serve as an example for the other projects.



Future


Scrum is more than a fad. Scrum methodology will continue to gain ground and gradually replace other project management methods for application development. Currently limited to small teams and short term projects, it needs to be adapted to bigger teams and larger scale projects (team clusters and Scrum of Scrums).

Test Driven Development (TDD) and Behaviour Driven Development (BDD) for applications

Test Driven Development and Behaviour Driven Development are development methods that aim to improve the robustness of upgrades and their compliance with user needs. In this respect, these methods are part of the agile movement. They consist of carrying out unit testing (TDD) or behavioural tests (BDD) before coding the application itself. Thus, at the start of the cycle, all the tests are red and turn green as development progresses.



Challenges


The challenge is to change mentalities. With traditional methods, a developer writes the tests after writing the application. The problems with this are well known: the tests are forgotten about at the end of the cycle due to a lack of time or they are not effective because nobody has taken the time to think about potential errors. Only cases that are correctly written in the code are properly tested, which is unhelpful.
 
For many of those involved, it’s a revolution. New ways of working must be learnt.
 
The change is all the harder because thinking about errors is a difficult exercise. It’s a little bit like the old adage in mathematics, which says that you only master a theory when you know how to properly use the contraposition.




Missions


Our consultants working in development teams are required to:
  • Deploy these methods
  • Use test frameworks to automate the tasks
  • Manage the changes of method and spread the word after having been a pioneer



Future


This is probably one of the very important aspects of the future of development. Any new project has to be examined from this angle. IT systems are becoming increasingly critical and so the quest for robustness is essential. The TDD and BDD approach is the solution of the future.

Automated application development factories

For a software project, the development factory is the means capable of automating all the tasks once the code has been written. The factory recovers the dependencies, compiles and executes the tests, verifies the quality of the code and packages, deploys and generates the documentation. Automatically activated by a commit on the versioning tool, the development factory enables continuous integration.




Challenges


Setting up a development factory is part of the broader challenge of automating the business of software development. Standardising and automating the post-coding operations should help to save time and ensure that the process is applied every time.


Missions


Our consultants working in development teams are required to:
  • Design the factories
  • Choose, deploy and configure the right frameworks
  • Spread the word after having been a pioneer.



Future


The software projects on which unit tests are not conducted for each build, or for which configuration and compilation errors cause breakdowns in production, are still numerous. The future lies in the widespread use of such factories.
 
The future also lies in the enrichment of these factories. The factories of tomorrow will include the notions of integration and performance testing and non-regression tests. They will be capable of distributing a compilation that would be too costly for a single machine and launching virtual environments for integration testing.