People often see software development as a dark art. There is a view that software is developed by smart, anti-social nerds sitting in a darkened room. In reality, software development requires a lot of discussion and collaboration between everyone involved in creating the software, including the client.

While the development team spend a lot of time understanding and establishing the best way to develop a piece of software, the role of the client is vital to the success of a development project.

Company-X uses an agile development process because it is a very effective and efficient way to develop software. The agile process aims to develop working software as soon as possible. One of the primary reasons for this is that once people see the software working, they are much better able to determine how well it meets their needs. This is a very efficient way to create a software product because changes can be incorporated into the software relatively quickly.

Involving the client with a clear view of the strategy and aims of their business gives the development team a much richer picture to draw on for developing a software product.

One of the critical roles in an agile development process is that of the Product Owner. The Product Owner represents their organisation to the development team. Because the Product Owner is actively involved with the development team, they can also advocate for the development team to those in their organisation.

The product owner needs to know both what their organisation requires from the software and why it has that need. Through those discussions, a software solution is much more likely to both meet the needs of the client and delight the end-user.

The appointment of a Product Owner from the client’s own team ensures that the client is in the driving seat of the software development project. Product Owners manage the list of features necessary for a working software product.

Agile development usually happens in blocks of two weeks, known as sprints, and Product Owners determine what features are developed during each sprint.

This is a ‘tried and true’ aspect of the agile software development methodology.

If product owners are not at the software development team’s daily meetings, they are in constant communication with the development team and attend meetings at least once or twice a week. This helps keep the team on track while giving product owners, and thus clients, a good understanding of what problems the team is solving. This working model help to develop trust between everyone involved in the work.

Story mapping is another part of the agile software development methodology. It breaks the problem that the software is being built to solve down into small parts for the aforementioned sprints.

The two-week sprint is then locked in and the work is done. At the end of that two weeks, the team looks at what they did, what went well, what didn't go well, what could be done better next time, and then feeds that back into the next iteration.

The thing that I like about the agile methodology is that it's such a natural way of working.