Play 5: Build with Software Development Best Practices & Tools


Guide processes and tool selection using software development best practices

Because languages, tools and frameworks are constantly evolving, every digital transformation journey will be different. Despite this healthy evolution of technology, there are software development best practices that comprehend, embrace and support these changes regardless of implementation specifics. At Artemis Consulting, we are knowledgeable about the set of software development best practices guiding our specific processes and tool selection. 

To help you identify best practices that transcend specific tools and technologies, consider the following questions: If there was an ideal software development project, what tools and components would be included to achieve this ideal state? Would the makeup look the same if the project began last year? Will the choices you make today look the same next year? Despite the constant evolution of tools and technologies, the following software development principles and guidelines transcend specific tools or language choices.


Diagram showing each step

Keep the code simple

One of the most important properties about any software system is the ability to understand how it works without having to run it. Complex or tricky code is difficult to understand and, therefore, also difficult to maintain. Simplicity is the opposite of complexity.
 

Code refactoring

Refactoring is intended to improve the design, structure, and implementation of the software, while preserving existing functionality. Advantages of refactoring include improved code readability and reduced complexity. Refactoring improves the code’s maintainability and creates a simpler or more expressive internal architecture to improve extensibility.
 

DRY — Don’t Repeat Yourself

According to this principle, a single piece of information should be present in only one place and in an authoritative manner in your system.
 

YAGNI — You Aren’t Gonna Need It

YAGNI is a principle derived from extreme programming (XP) that states a developer should not add functionality until it is deemed necessary. YAGNI is the principle behind the XP mantra of do the simplest thing that could possibly work. 


code on a computer screen

Test from the start building toward automation

Testing is part of every project from the first line of code. The testing strategy for a project also evolves. The evolution of testing automation as the project matures is essential for maintaining reliable service

as the digital transformation moves into production. In Play 6, we dive deeper into tests, types of tests, and the evolution of testing automation.


Prioritize coding style and coherence

When working in teams, it’s important to have consistent style for the code base of the project. Many programming languages have recommended style guides, and there are many tools available for these languages that enforce consistent style.


co-workers reviewing code

Rely on peer reviews

Peer reviews are a software quality assurance measure where one or more software developers check a proposed software change mainly through code reading. Although direct discovery of quality problems is usually the main goal, code reviewing by peers tends to impart many positive side-effects on a project.

  • Knowledge transfer – Code reviews help in the transfer of knowledge about the codebase both to the reviewers, as well as to the author.
  • Promote mutual responsibility – Code reviews greatly increase a sense of collective code ownership and responsibility.
  • Better code quality – Code reviews promote improved code readability, uniformity, understandability and maintainability.
  • Discover a better solution – Code reviews can generate ideas for new and better solutions.
  • Find defects prior to release – Code reviews help uncover performance problems and security vulnerabilities.

CHECKLIST

  • Compose a set of software development best practices through regular cross-project developer interaction
  • Publish guidelines and HOW TO guides in a Wiki and encourage all software development performers to contribute to the process
  • Organize a set of tools specific to each language or environment to help ensure consistent implementation of best practices across projects and technologies

KEY QUESTIONS

  • Compose a set of software development best practices through regular cross-project developer interaction
  • Publish guidelines and HOW TO guides in a Wiki and encourage all software development performers to contribute to the process
  • Organize a set of tools specific to each language or environment to help ensure consistent implementation of best practices across projects and technologies