- Solutions
Our solutions
Digital solutions combining strategy, technology, automation and people.
Technology advisory
Navigate the fast-changing world
Cloud engineering
Transformational change at scale and speed
Data solutions
Realise the untapped potential of data
AI and machine learning
Leverage your data assets
Application engineering
Optimise and grow your digital investment
Maintenance and support
End-to-end application management
Business process solutions
Manage business processes to reduce operating costs
Quality solutions
Independent testing for your systems and software
Digital experience platforms
Redesign your digital assets for the optimal customer experience
- Industries
Industries
We provide solutions tailored to your sector to assist you in identifying opportunities, realising value and opening up new markets.
Banking
Delivering next-gen banking solutions that drive growth
Healthcare
Patient empowerment, lifesciences, and pharma
Retail
Functional and emotional customer experiences online and in-store
Travel
Airlines, online travel giants, niche disruptors
Media and publishing
Content consumption for the tech-driven audience
Hi-tech and IOT
Real-time information and operational agility and flexibility to respond to market changes
Logistics and supply chain
Reimagine a supply chain that is more flexible and resilient to change
Education
Create an exciting and engaging digital experience for students and departments
- Our thinking
Our thinking
The latest updates to help future-focused organisations on the issues that matter most in business.
News
Keep up to date with company news and announcements at NashTech
Digital Leadership Report
Explore insights from the latest world's largest and longest-running study on technology leadership
Insights
The latest expertise and thought leadership from the NashTech and our clients
Resources
Expert guidance on everything from complex technological issues to current trends
- Case studies
- About us
About us
Find out what makes us who we are
Leadership
The diverse leadership team at NashTech
Nash Squared
A global professional services organisation with three key areas of focus
Vietnam 360°
Experience a 360 degree all-encompassing virtual tour of NashTech’s Vietnam offices
ESG
Discover our environmental, social and governance commitments
Diversity, equality and inclusion
Making diversity, equality and inclusion an integral part of our culture
Our locations
Discover our network of global offices, centres of excellence and innovation
- English
The value of code reviews
As software development transitions away from waterfall workflows to more Agile and iterative practices, there is a growing perception that artifact (document and code) review is not as critical – we’re responding to change instead of following a plan!
When it comes to software quality, we all think we know the difference between good and bad code. Customers often ask us to perform one-off code reviews, typically when taking on a code base or when a new CTO arrives!
Whilst one-off code review is useful, the real value of regular code reviews is in maintaining the long-term quality of the code base. Here, we outline how we define code quality, how we go about reviewing and measuring it, and lastly, how this links through to technical debt management.
What is software quality?
In the context of software engineering, software quality can be split into two distinct areas:
- Software functional quality reflects how well it complies with or conforms to a given design, based on functional requirements or specifications. That attribute can also be described as the fitness for purpose of a piece of software. Functional quality is typically enforced and measured through software testing.
- Software structural quality refers to how it meets non-functional requirements that support the delivery of the functional requirements, such as robustness or maintainability, the degree to which the software was produced correctly. Structural quality is evaluated through the analysis of the software structure, its source code, libraries, architectural standards and design patterns employed. This article is focused on software structural quality.
The importance of code reviews
Whilst one-off code review can take a snapshot of code quality, an effective code review process aligned with the software development or maintenance approach is key to ensuring the long-term quality of the code base. Shift left is a practice intended to find and prevent defects early in the software development process. Like testing, code reviews are of paramount importance in ensuring good code and providing a way to locate problems as early as possible as well as ensuring the consistency and reliability of the software. The earlier you find errors, the faster, easier, and cheaper they are to resolve.
SmartBear Software conducted a global online survey in 2020. The respondents rated code reviews as the best way to boost code quality.
Additionally, more than 80% of developers surveyed said satisfaction with code review processes is directly linked to confidence in the overall quality of software released.
Code reviews can be conducted in a variety of ways, including manual reviews, pair programming, mentoring and the use of shared documents for easy review. Whilst all these methods are effective, they can be very time consuming – this is where tools come in.
Using tools to review code quality
Code review tools provide a way to automate the process, and like test automation support more frequent and earlier reviews. The tool we most use is SonarQube.
Code quality and security are similar in that both types of issues can be identified with static analysis. Static Application Security Testing (SAST) tools are designed to analyse source code or compiled versions of code to help find; bugs, vulnerabilities and code smells.
Such tools enable our software engineers to discover security vulnerabilities (using OWASP Top Ten) early and often in real time as they write code. These tools are now integrated into the development environments (IDE) we use, such as, Visual Studio.
Static code review tools also help developers to understand structural quality and to follow coding standards. Using Continuous Integration tools allows for automatic triggering of checking against coding standards and code smells. This can give developers immediate feedback, decreasing the chance of errors and bugs getting into production.
Managing technical debt
One of the advantages of producing quality code from the first iteration is that it reduces technical debt. High quality code may take longer initially to produce but will result in less bug fixing and refactoring and can reduce or remove the long-term pain of technical debt. High quality code makes long-term development and maintainability easier and (critically for customers) cheaper.
Our approach to increasing code quality is to continuously track and prioritise technical debt so that we can make the business case to refactor the most important parts of the client’s code base.
Ready to know more?
Learn more about the NashTech approach or arrange a call to discuss how we can help, email info@nashtechglobal.com.
Suggested articles
From rising above adversity to riding the wave of digital transformation in the education sector
Explore how NashTech help Trinity College London ride the wave of digital transformation in the education sector
Migrating and modernising the virtual learning environment to AWS for an enhanced experience
The migrated and modernised Moodle infrastructure means that The Open University can now take advantage of cloud benefits.
A glimpse into a year-long RPA journey with a leading digital advertising service
A glimpse into a year-long RPA journey with a leading digital advertising services and solutions provider and how NashTech helped them.
We help you understand your technology journey, navigate the complex world of data, digitise business process or provide a seamless user experience
- Topics: