In this series we will tackle the problem of optimizing network access to fetch data from the network, a common theme of networked applications. While it is certainly trivial to fetch data from a server in any modern framework or OS, optimizing the frequency of access to the network, in order to save bandwidth, battery, user frustration, amongst other things, is complex. More so if you want to reduce code duplication, ensure testability, and leave something useful (and comprehensible) for the next engineer to use.
To achieve engineering excellence, organizations must focus on the following key pillars:
1. Continuous Improvement
Embrace iterative development and continuous delivery to accelerate time to market through established methodologies and practices like Agile and DevOps. It is essential to remember their underlying philosophy so people don’t get lost in unnecessary bureaucracy.
Leveraging automation tools to streamline processes, reduce errors, and boost efficiency is a standard for modern organizations. Given the current advances in AI, investing in this front has become even more pressing.
Regular retrospectives should be conducted to identify lessons learned and areas for improvement. Successes and failures will be the constant outcomes; learning is the only obvious way to gain value from them.
2. Technical Mastery
We can only aim for excellence if we are on the frontline of what is being done regarding tools, technologies, and techniques. Keeping up with the latest technologies, frameworks, and best practices is an ongoing challenge that should have the time in our calendar of day-to-day tasks.
Promote a culture of code review to maintain high-quality standards. Development is mostly about writing code (so far), and significant products depend on big teams producing code in an orchestrated way. Therefore, the code production process should have a continuous feedback loop.
Ultimately, an application or software is the outcome of the work done, and we must continuously monitor and optimize its performance.
3. Collaborative Culture
Always ensure that collaboration between engineering, product, design, and other teams is incentivized and prioritized.
This collaboration must be based on open and honest communication to build trust and transparency.
Invest in mentorship programs to develop future leaders and the overall potential of teams and their members.
4. Product Quality and Maintainability
Implement comprehensive testing strategies to ensure software reliability. Also, ensure that teams maintain precise and up-to-date documentation for code, processes, and architecture.
A very underappreciated subject for product owners and business leaders is how to prioritize decreasing technical debt to avoid future issues.
5. Performance Measurement
Define and track relevant KPIs to measure progress. Use data to make informed decisions and drive improvements.
And ensure that teams receive regular reports on product performance, team performance, and project status.
Focusing on these pillars can help organizations create a culture of excellence in which innovation thrives, quality is paramount, and teams are empowered to deliver exceptional software products.