Software Engineering

Intro

The engineering processes that deal with the design, implementation and maintenance of complex software.

Why consider it?

Historically, the software industry mainly dealt with 'off-the-shelf software' developed for particular application domains (e.g. chemical analysis, business process support and financial applications). Configuration and (human-)resource-intensive customisation allowed companies to adapt the software to the specific needs of individual customers.

At this time, software development was a highly specialised discipline. Software companies were usually driven by software engineering problems: they needed to deliver high quality products on time and within budget. Successful software companies were typically those that fully mastered the art of software engineering.

The corresponding commercial transaction often took the form of licensing, involving transferring ownership and responsibility for using the software in a particular environment. The revenue models (based on licences) were predictable, as long as the software company could indeed deliver the product on time and within the budget.

Software engineering has changed dramatically over the last couple of years. Software has become a commodity and software teams can now tap into a vast number of open-source and cloud-based building blocks to create their applications, potentially speeding up development considerably. At the same time, software teams are now often also responsible for ensuring that the service they provide runs smoothly 24/7.

Develop a service, not a software

Most new software is now launched on the market using a Software as a Service (SaaS) model. In the past, software was important in establishing an IP position but it is now the service offered that matters most. Today's software customers expect their providers to offer a first-rate user experience (in this context, user experience refers to the combination of product, messaging and all other interactions a customer has with their provider that fit seamlessly with their job to be done, across multiple devices).

Creating excellent user experience is hard. Software providers need to fully understand their customer base and translate the customers’ needs and wants into a feature-rich, reliable, secure and 'lovable' online service. Software engineers should mainly, if not entirely, focus on creating the best possible experience, while outsourcing all non-unique aspects required to get a digital service off the ground by using readily available (open-source) components, cloud services and APIs. In short, software engineers should concentrate on developing a superb service and not on software.

What does it involve?

When offering software online as a service, it’s the overall user experience that counts. Creating such an experience is hard. Product management is a key skill for any digital business: product managers bridge the gap between users, technology and the business. Product managers translate user needs into a convincing overall user experience, leveraging technology as much as possible, while ensuring business-related KPIs like customer lifetime value and churn are met. Product managers within digital businesses communicate customers' needs to all internal stakeholders, explaining the service's purpose to developers. Finally, product managers stress the need for speed, both in terms of delivery and gathering and responding to feedback. The engineering team organises continuous delivery: by using software-engineering best practices such as test-driven development, continuous integration, automated deployment and monitoring, the team fully adheres to the agile technique apply, inspect, adapt.

When it comes to creating the digital service, the engineering team focuses its efforts on developing an excellent user experience while leveraging existing APIs and (open-source) components wherever possible. Through clever use of APIs and web services, the team outsources responsibilities such as server and database management,  payment gateways and more to specialised third parties, allowing the team to focus on work that is unique to their service.

Last but not least, digital services need to be secure. The provider handles potentially valuable customer data. Privacy and security by design should be the norm. This poses a real challenge for most development teams as they have to deliver software both quickly and securely.

Further information

Sirris’ Tech Stack Review™ provides you with an unbiased and technology neutral view of your current technology stack, development practices and product management approaches.

http://www.sirris.be/nl/techstackreview 
http://www.sirris.be/nl/expertise/cloud-computing-saas
http://www.sirris.be/annual-report-2016/ict-software/software-engineering/focus-software-intensive-products

http://www.sirris.be/blog/2016-software-engineering-year-review

Interested?

Contact person Sirris: nick.boucart@sirris.be