The traditional software development process was long and tedious in the early waterfall days. With iterative development, the agile software development team including delivery managers and data engineers can leverage the software development lifecycle to discover, design, develop, test, and eventually deploy services or products with greater regularity, consistency, efficiency, and overall quality. This includes a thorough understanding of individual steps and ensuring we have incorporated the user, data, and tech needs along with design by security practices within each phase of the lifecycle. The paradigm allows us to build scalable, resilient, secured, highly available, and well-orchestrated services for residents and staff to use them all the time.
Leveraging the right technology, skills, and platform that provides a balance between meeting our residents and staff needs, faster delivery, and designing a resilient and well-architected solution is key. It uses modern and cost-efficient technologies which is at the heart of evaluation we do at every step of delivering services so good that people prefer to use them.
At Hackney, we believe in continuous learning, iterations, and improvements. We have been regularly iterating our playbook (based on our learnings over the period), evaluating existing and new technologies to identify gaps for improvements, trialing out new solutions, and developing more efficient approaches for future service development. Knowledgement management is also an essential part of this process and we have implemented this via our weekly community of practices meetups for Data, Architecture, and Frontend.
We believe that having an open and transparent approach helped us to define our processes/ways of working effective and enabled us to gain a better understanding of the user, data, and technological needs.
We started by building monolithic APIs hosted on-premise and incurred a lot of technical debt as we were on our digital transformation journey. From classic waterfall styled development to a complete agile-based approach did take time but we managed to achieve it in no time. Introducing DevOps principles within the service development whilst still keeping the lights on was challenging but was possible. It takes us pride that we developed SMEs within the team to ensure we mentor and coach our junior members and apprentices going forward along with following the industry best practices. We learnt that cultivating the growth culture was key to enable the right mindset within the team. Winning recognition also enabled us to validate our processes among various industry giants.
We aspire to develop services so well that our residents and staff prefer to use them all the time. This has enabled us to prioritize their needs first along with the data and technology as our core principle. Over the years we developed our open working, collaboration, and processes so well that it has enabled us to save development time and costs. We have delivered powerful platforms (For eg: Reusable APIs via Platform APIs, API boilerplate, Design system, Microfrontend boilerplate, etc) to be used by numerous services. The approach has unlocked the team to deliver quickly and achieve return of investment(ROI) via reusability and consistency across the products allowing fewer vulnerabilities via code.
How do we work – HackIT Development Cycle
Like any other agile-based cloud development – the HackIT development cycle has the following stages to keep the user, data, and technology needs at the core. The model emphasizes on below phases:
These stages do not end here for us. We have precise steps inbuilt for each of the above phases which helps us to deliver efficient, secure, highly available, and resilient services to our residents and staff. They ensure to meet the approaches we have defined in our playbook for better and faster delivery of services with design by security as our core principle. The process enables us to
- Identify vulnerabilities at the early stage
- Ensure proper access management
- Achieve security and policy compliance
They also encourage collaboration among various product teams ensuring consistency, reusability, and maintenance of products across the board.
How will the development lifecycle benefit our residents and staff?
By introducing and following our development lifecycle, we have massively improved our development process resulting in building more reliable services and faster delivery of features to applications used both by staff members and residents. The benefits achieved are :
- Improved service reliability via more efficient testing and automation of services for residents and staff will be more stable, resulting in a better user experience.
- Improved availability via the introduction of cloud all services available to staff and residents with minimal to no downtime and ensure it meets our approach cloud unless.
- Improved communication and collaboration between the residents and council services results in improved decision making
- Faster development process due to standards, code templates, and reusability -> features become available to staff and residents much quicker.
- Seamless integrations with other systems thereby providing better services to our residents by introducing services that share the same data and thus provide a better understanding of our residents’ circumstances and better support.
- Emphasis on the People-first approach to building the confidence for our residents and staff to use the council services and thereby enabling and supporting the digital transformation journey.
- Building our core entities’ data catalog efficiently to provide better and more informed services to residents.
- Secure systems for our residents to use and build that confidence so that our services are so good that people use them all the time.
- Having consistency in our service development enables the council to get a better return on investment and lower development costs.
What do we want to achieve – Our aspiration
The knowledge of designing and developing services on a cloud platform over the years has helped us to build aspirations/aims for us to achieve. This has been a gradual process but as a team, we have learned a lot and take immense pride in our approach of “Fail Fast” and “Trust the team”.
Our aim is to:
- Build services so good that people use them all the time.
- Have a straightforward developer onboarding experience and allow them to adapt our ways of working.
- Have a clear set of standards to promote consistency and reusability with a process to continuously review and improve those.
- Promote seamless integrations between Hackney’s systems.
- Promote a single source of truth approach for our core data entities to allow us to build services using the same data sources.
- Build and deploy services with the user, data and technology need at heart along with designing from security first principles.
- Continuously iterate our playbooks and approaches to reflect the current market trends.
- Achieve the target state architecture and ensure the service development follows the best practices as defined.
- Continue to adopt practices that reduce development time, allow for a faster feedback loop, provide a cost-efficient approach and ensure security and data privacy by design.
- Knowledge sharing and better collaboration.
- To build and collect data better and consistently across the board for a unified platform view.
- Enable the team to achieve the MOKRs efficiently and justify the spending effectively with the rigorous and iterative blue and green deployments.
The details of each stage of our development lifecycle will be continued in our next blog. It will define at individual stages how to ensure assurance and practice what we preach.
Please feel free to reach out to us as we would like to hear your views/feedback on the above.
HackIT Development Team