Development
Last updated
Was this helpful?
Last updated
Was this helpful?
Software development is creation. We take a design, and we turn it into reality. At NEC Digital Studio, we develop products that transform services used by everyone, every day.
Software is a set of instructions that tells a computer what to do. Those instructions are written in code, a language that can be read and understood by a machine. The machine can then follow these rules and create a journey for a user through the system. The more complex the systems requirements are, the more complicated this process becomes.
Our team is made up of business analysts, architects, data modellers, software developers, DevOps specialists, testers, QA experts and more. They each bring different skills to help build out the code and create meaning in the technology.
We’re a user-centred studio. That means we put research and design at the core of everything we deliver. From how we approach our products to the shared tools we work with, we make sure every step between design and build is connected.
You can read more about our research and design teams. Or read more about how we work together on projects.
We often hear terms like 'agile' and 'scrum' in relation to developing software. But what is it, and what does it mean?
Agile is a way of managing a project that focuses more on how people work together as a group than on the processes. In reality, that means we focus on delivering working, fit for purpose software rather than spending hours producing reams of documentation that isn't that useful. Part of that collaboration is working closely with clients as well as internal teams. It ensures they are enaged in the process and always results in better services to their users.
There are many different types of agile development frameworks, but our chosen method is scrum. It provides a structure to the way we manage our development teams and make sure that we do key things at the right time.
Our research and design focus means we’re excellent at front-end development, or what the user sees when they use the platform. But we’re also experts in back-end development. These are the components that add together to create the application business logic, functionality and data structures. Having specialist front and back-end developers and data engineers means we can deliver full stack solutions with an expert approach.
Think of when you log into a social media account. The front end is what makes it look good and how the ‘interface’ appears when you put in your password. The back end is where your password is validated against the database to check it’s correct. And then the business logic directs you to the homepage once you’ve logged in. Some development teams specialise in front end or back end, but we do the whole package. And we do it well.
One of the ways we’re future-proofing our development is taking an API-first approach. Most companies design their user interface (UI) with the user in mind, but some forget that the user isn’t always a person. In the back end, it’s APIs (the connection between 2 different applications) that need to be thought of.
We’re working towards completely public and accessible APIs, where any of our partner organisations can connect to our systems. Of course, that means reinforcing back-end security to protect them too. But it opens up a world of new data and technology as we connect to systems across the world.
We have communities of practice set up to make sure our approach is consistent from one project and product to the next. Whether we’re workingon our own products and services or delivering work on behalf of clients, we should be delivering consistent work following best practice.
That means our teams can move from one project to the next with the confidence they can hit the ground running. The sprints look the same and the processes within them are the same too. It’s also a huge time saving. We build something right the first time, and then we can reuse it again and again.
We’re working on 2 different reusable elements for products; services and components.
Reusable services are fully formed units of functionality. Take an authentication service. Most applications we build require some kind of log in, many with multi-factor authentication and single sign on.
We’re building an authentication service that incorporates the best of our existing capabilities. Then we can roll it out across our products. It takes a little longer to create the first time, but then it’s one service with one codebase. That makes it more secure. And any time we build in new functionality to the service, all products using it will benefit. So it's more feature rich too.
We’ve got plans to explore other services as well. We’ll look at smaller services like form builders and scheduling tools all the way up to enormous services like case management and document management solutions. Right now, our focus is reusing them across NEC Digital Studio. And that will take time. But there is a future where we offer our reusable services across wider NEC Software Solutions products too.
Reusable front-end components are smaller building blocks. They might be buttons or tables, error messages or headers. The code for these components, formatted in a particular style, is documented in a library.
So our software developers can quickly pick up code for a component that’s got accessibility and style prebaked in. It makes our lives easier, improves the consistency of our work across projects, provides better value to clients and delivers a better end result.
Think of it like building a kitchen. Once the design sketches are ready, there are 2 options for making it come to life. The builders can install premade cabinets that are designed, built and tested for exactly that purpose. Or they can buy the materials to make bespoke cupboards for this specific kitchen.
There’s a time and a place for both. But when the first option is cheaper, more efficient and meets incredibly high standards, there is no need to bespoke every element.
Where possible, we should always look to build once and reuse. It maintains consistency and quality, and means our team can hit the ground running when they step into a project.
Of course, there are also projects where we develop software for our clients to own so the development sits separately from our resuable services and components. In many instances, government clients are making new code open source too, so we fit our approach to each client we work with.