We can start building things after thoroughly understanding user needs and existing processes. This involves leveraging the insights gathered to enhance or replace current workflows with more efficient digital solutions.
Tackling Unknowns with Technical Spikes
When venturing into uncharted territories, it's advisable to conduct technical spikes. These are short, focused experiments to test the feasibility of new processes or technologies within the project's context. These spikes help identify potential challenges and assess whether the envisioned solution is technically viable.
Choosing the Ideal Tech Stack
Selecting the right technology stack is critical. Consider whether the current technologies can support the new system. Assess the organisation's management capability if new technologies or frameworks are needed. This also involves considering the availability of skilled professionals in the region to support these technologies.
![An illustration of interconnected servers](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Ffpd6pmb45z8g%2F5u8nYCjbvBnVrfIZcyOZD2%2Ff52e674488800ad37ee992d3aff78300%2Fjamescooke_A_database_connected_to_a_computer_in_the_style_of_a_6c5143d4-6d32-4d72-b1fe-be7a2e7fd4c8.png%3Ffm%3Dwebp&w=2048&q=80)
Establishing Core CI/CD Practices
Setting up robust Continuous Integration/Continuous Deployment (CI/CD) practices is essential. Utilising tools like AWS and Docker, integrated into Pipelines or GitHub Actions, can streamline the development process and enhance efficiency.
![A screenshot of the Github Actions homepage](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Ffpd6pmb45z8g%2F37Vx2FlPRtkGtaYJ0Ru1rM%2F7aab89a9059f555210319d11efc0487b%2FCleanShot_2023-12-20_at_10.39.17_2x.png%3Ffm%3Dwebp&w=2048&q=80)
Automate your testing workflows
Automated testing is a method in software development where testing of applications is performed using specialised tools to execute pre-scripted tests on the software before it is released into production. This approach to testing enables developers to quickly and efficiently check for errors, functionality issues, and performance problems.
Playwright is a popular open-source framework for automated testing that is beneficial for testing web applications. It allows for writing tests that interact with modern web applications across all major browsers, including Chrome, Firefox, and Safari. Playwright stands out for its capabilities in handling asynchronous behaviour, offering reliable and fast test execution, and supporting advanced testing scenarios like single-page applications, network mocking, and mobile emulation.
Implementing Playwright into a Continuous Delivery (CD) pipeline can significantly enhance the consistency and reliability of software releases. By integrating Playwright tests into the CD pipeline, every change made in the codebase can be automatically tested across different environments and browsers, ensuring that any potential issues are detected early. This integration helps maintain a high-quality standard throughout the development process, reduces manual testing efforts, and accelerates the release cycle.
With Playwright, teams can automate end-to-end tests, ensuring that the user experience remains consistent and error-free after each update or change to the application.
Accessible, always
The importance of web accessibility cannot be overstated. It ensures equal access to information and functionality, which is not only a matter of inclusivity and social responsibility but also often a legal requirement. By making web content accessible, organisations can reach a wider audience, improve user experience, and potentially boost their reputation and legal compliance.
It involves designing and developing web content so that people with various abilities and disabilities can easily navigate and interact with it. This includes individuals with visual, auditory, physical, speech, cognitive, and neurological disabilities.
![A photo of two women sitting on the sofa talking in sign language](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Ffpd6pmb45z8g%2F2azIyJEcakM0ltHNxXDzfL%2F67c5fc7ede2c03ea25166a8e505d3ef0%2Fpexels-rdne-stock-project-10029744.jpg%3Ffm%3Dwebp&w=2048&q=80)
Tools like a11y and axe-core are instrumental in testing web accessibility. They are automated testing tools that can be integrated into the development process, allowing developers to evaluate and improve the accessibility of their websites with each code change. These tools check the web content against established accessibility standards, such as the Web Content Accessibility Guidelines (WCAG), and provide actionable feedback.
By incorporating these tools into the development workflow, teams can proactively address accessibility issues, ensuring that their websites are accessible to all users from the outset and maintaining this standard throughout the development cycle.
Implement Kanban for Continuous Improvement
Adopting the Kanban methodology can foster continuous improvement within the team. This approach helps manage work by balancing demands with available capacity and improving the handling of system bottlenecks.
Kanban is a workflow management method designed to help visualise work, maximise efficiency, and improve continuously. Originating from the Japanese manufacturing sector, it focuses on displaying work-in-progress (WIP) limits through Kanban boards, which are often divided into columns such as "To Do," "In Progress," and "Done."
This visualisation aids in tracking the flow of work and identifying bottlenecks.
![A diagram of a Kanban board](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Ffpd6pmb45z8g%2FpR7gMQ7GG6FlJWuABgyTv%2F36c93375f06f959c3291a517d0c86a82%2FElements_of_a_kanban_board.png%3Ffm%3Dwebp&w=2048&q=80)
Setup Core Agile Ceremonies
Regular agile ceremonies are fundamental for team coordination and project progress. This includes daily stand-ups, which can be asynchronous for remote teams, fortnightly retrospectives to discuss what's working and what's not, and fortnightly showcases to demonstrate progress.
Dynamic Backlog Management
Finally, treat the project backlog as if it is a living entity. Continuously update and prioritise tasks based on emerging issues or changes in the project scope. This approach allows for greater flexibility and responsiveness to challenges as they arise.