(Image Credit: iStockPhoto/Vernon Wiley)
As IT trends like mobile, cloud, and consumerisation continue to flourish; the software industry is facing rising levels of complexity. Customers have increasingly unrealistic expectations, organisations are being pushed to work in a more fragmented yet agile manner, and development managers are now expected to dispatch applications to customers at the blink of an eye.
While these changes present obstacles to efficient software delivery, the changing landscape of software development also presents key opportunities for those companies able to adapt to this changing environment.
Understanding customer expectations
Users and customers interact with software and applications more than ever before. Their overall experience is determined by a number of factors including the way services are delivered, the performance of the desired outcome, and the ease of use. Every user brings with them a set of pre-existing expectations and their tolerance for a poor experience has diminished over the past few years. People have unrealistic expectations for how IT services are delivered and consumed.
This consumerisation of IT has now transformed the software delivery landscape almost beyond recognition. Managing customer expectations has moved from the sole care of marketing to sitting in IT’s lap. No longer focused on business needs alone, IT departments must now consider end-user expectations throughout the software delivery lifecycle – from software development through testing to delivery. Although putting customer experience at the heart of everything can be challenging for development teams, it has become critical to the success of the software.
Customers know what they want and they should get it, so keeping customers content must be an integral part of software delivery. In essence, this should be the ultimate end goal for any company releasing new software. Customer loyalty is incredibly fragile, so failing to factor in customer expectations is no longer an option.
The collaboration challenge(s)
More and more companies are making the transition from traditional development methods to agile. Unfortunately, it is not always clear for development organisations how to make this shift. As organisations move to agile, it’s important to note that visibility into a project and constant communication with business stakeholders across the organisation remain critical to the success of the development team.
Agile is intended to allow organisations to respond to change quicker. Beyond this, businesses must inform their development teams of the required end-user expectations across an ever increasing number of platforms and devices. While the customer does not need the exact same experience outcome across all platforms, each experience must be harmonious and high-quality.
However, meeting end-user expectations can be fraught with difficulty when disparate teams fail to communicate with each other and relevant stakeholders. Our lives are fast-paced, and customers expect no less from their technology. Customers not only demand easy-to-use and functional software, but they anticipate that organisations will react quickly and fix or add capabilities that fall short of meeting customer expectations. Collaboration is therefore key if development projects are to keep up with tight deadlines, achieve the required end user experience, and dispatch software in a timely, efficient manner.
Test, test, test again
Agility is vital for businesses confronted with the complicated and disparate software delivery environment. Agile teams need to be focused on delivering business value over time, making it imperative to know what the acceptance criteria for a given story is, and how to represent that through testing.
Testing itself is not enough. IT needs to know the customer’s desired outcome on each platform or device and test with this customer experience in mind. Functionality is key, so testing quickly and accurately throughout the process is important. Organisations must take note of the new direct link between testing and brand loyalty.
The fast-changing landscape of software delivery is both an opportunity and a challenge for software developers in the 21st century. Organisations must now focus more on the customer experience. Through explaining the sought-after end user experience and testing for the desired outcome, businesses can command true brand loyalty and deliver up-to-date products which meet both business and customer needs in a timely fashion.
Collaboration and testing are key weapons in a software developer’s arsenal against these new obstacles within software delivery: employ them or risk falling at the first hurdle.
Can you think of further obstacles facing software delivery? Let us know in the comments.