Today, nearly every company is a digital company or aspires to be one. However, the importance of adopting a responsible software engineering life cycle while adopting digital technologies at scale is still a relatively fledgling concept. That is a problem because the risks of using software that has been developed sans responsible design principles can range from adverse environmental impact to amplifying social inequities such as racial and gender discrimination. Consider some facts: A large global company had to abandon its artificial intelligence-based recruitment tool when it found that the tool showed a bias against women—inadvertent software bias can turn bots into bigots. From an environmental perspective, training a single large AI model can generate carbon emissions equivalent to that of five cars in their lifetime.
So, what exactly is responsible software? Essentially, it is environment-friendly software built using human-centric design principles to enable an inclusive, fair, and accessible world, while being robust enough to meet an organisation’s current and future needs.
The stakes are high, and the issue is complex; therefore, there should be a three-pronged approach to building and promoting a culture of responsible software engineering. This approach focusses on achieving a balance between three aspects while designing software: people, planet, and organisational requirements.
Intelligent applications and AI are an integral part of all major aspects of our lives and work and hence, the challenge of human bias making its way into algorithmic systems and AI is a serious issue. It can potentially lead to inadvertent false identification, misjudged preferences, unfair treatment, and inequitable access to services. Enabling machines powered by biased software to make decisions may expose businesses to significant reputational, HR, data privacy, health, and safety related risks.
The causes of bias in software can range from pre-existing cultural, social, or institutional expectations to technical design limitations, or even an outcome of software being used in contexts where they were never meant to be used.
Addressing the people aspect of responsible software engineering requires that applications be built responsibly to engender trust—so as to ensure fairness towards individuals. At a societal level, it means creating software that is inclusive and accessible, and which does not create or deepen inequalities that hinder social justice and equity. One way to address this issue is to eliminate sensitive variables from both data and the AI model, based on their impact on the output. For instance, race and gender should be eliminated as predictors of aspects such as credit rating or eligibility for promotions at work.
Given the rapid rate of adoption of digital technologies, even the smallest of energy inefficiencies have the potential to get amplified and hurt our planet. For instance, according to estimates, data centres currently account for 2% of the overall electricity consumption, worldwide—a number that could increase to 8% by 2030. Hence, adopting power-aware computing principles and data centre optimisation is crucial. An example of how this can be achieved is Google’s pilot project that uses machine learning models to predict power usage efficiency (PUE) at its data centres; the ML algorithm has helped Google bring down its overall energy consumption by 15%.
Adopting greener cloud server architectures such as containerisation and serverless computing and deploying energy-efficient hardware at the edge—such as graphics processing units (GPUs) and field-programmable gate arrays (FPGAs)—can help companies save energy costs as well as minimise their carbon footprint.
Organisational requirement is the third and arguably the most influential pillar of software design. Every organisation needs its software to meet certain criteria such as reliability, scalability, security, flexibility, agility, and resilience. Software should be developed in way that fulfils an organisation’s need for actionable intelligence—a pre-requisite for agile and informed decision-making.
A responsible software engineering lifecycle
It takes a holistic approach to design and develop responsible software. In our experience, it means envisioning a responsible software engineering lifecycle that achieves a balance between the three aspects—people, planet, and organisational requirements. It involves being mindful about the type of data that is fed into a system and the analytical processes to generate fair outcomes. Trustworthy software and its development processes should be amendable to audits, thereby ensuring transparency and traceability.
Companies need to train their people to build responsible software building as well as invest in data-driven software architecture and software lifecycle management tools and processes. A strong strategy and governance mechanism also need to be instituted.
Responsible software development is no longer a just a feel-good parameter or a way for organisations to meet their environmental, social, and governance (ESG) regulatory goals, but is a vital business imperative.
Is your software responsible?
Views are personal. Podder is head, Accenture Technology Innovation in AAPAC (Africa and Asia Pacific); Burden is lead-Intelligent Cloud and Engineering, and chief software engineer, Accenture.