7 Coding Practices that Sustain Ongoing Agile Software Development [#AgileCodingPractices #AgileSoftwareDevelopment #AgileDevelopment]

7 Coding Practices that Sustain Ongoing Agile Software Development [#AgileCodingPractices #AgileSoftwareDevelopment #AgileDevelopment]

1. Do not reinvent the wheel
2. Consider low-code development options
3. Automate testing
4. Externalize all configuration parameters
5. Follow naming conventions and include comments to make code readable
6. Check code into version control frequently
7. Avoid coding heroics and complexities

1. Do not reinvent the wheel
The first rule of coding: Do not code something that does not need to be coded!

Consider asking questions about the requirements.

Why is a feature important?

Who benefits?

More specifically, explore noncoding options to solve the problem. Sometimes the best solution is no solution at all.

Has someone in your organization already coded a similar solution?

Perhaps there is a microservice that just needs an enhancement or a software library that needs a minor upgrade?

Be sure to look through your organization’s code base before coding something new.

Are there third-party solutions, including affordable SaaS tools or open source options, that meet minimal requirements?

Have you looked at open coding repositories such as GitHub for code examples and snippets that meet your organization’s compliance requirements?

2. Consider low-code development options
If you do need to code a solution, then perhaps alternative low-code platforms can enable developing the capabilities more efficiently compared to coding in development languages such as Java, .Net, PHP, and JavaScript.

Low-code platforms such as Caspio, Quick Base, Appian, OutSystems, and Vantiq all provide tools to develop applications with little code and sometimes even without coding at all.

3. Automate testing
Beyond writing code that fulfills the requirements, one of the most important things developers need to do is to test it.

Test-driven development practices and automated testing tools have matured, and development teams should include unit, regression, performance, and security testing as part of their Agile estimates.

In addition to having tests to validate builds and releases, these tests also help make the code more supportable.

Tests are documentation and establish a contract of how the code is supposed to behave.

When new developers join teams and inadvertently implement a bad change, continuous testing halts the build and provide meaningful feedback to the developer in order to quickly address the issue.

4. Externalize all configuration parameters
There should be no excuse for developers to ever hard code system-level settings, usernames and passwords, or other configuration information in the code.

Developers can be seen taking shortcuts while developing prototypes that find their way into production environments.

In today’s architectures this should never be done.

Hard coding is not technical debt but a lazy, irresponsible coding practice that can have significant consequences.

If code becomes accidentally accessible, it creates a security vulnerability if endpoints or access credentials are exposed.

5. Follow naming conventions and include comments to make code readable
Teams should adopt naming conventions such as Google’s JavaScript Style Guide and Java Style Guide and commit to commenting code at least at the modular level and ideally at the class level.

In addition, organizations should consider using static code analysis tools that provide feedback to developers when code needs refactoring for structure and readability factors.

6. Check code into version control frequently
If you are not checking code into version control on a daily or more frequent basis, it can create conflicts and other blocks that impact the team.

One small mistake can cause Agile teams to miss their sprint commitments or create additional work to resolve dependencies.

Teams should agree on conventions for checking in code that is not ready for production.

Conventional approaches include feature flags and Git branching.

7. Avoid coding heroics and complexities
Most developers became professional software engineers because they love solving coding challenges.

Coding is an art, science, and craft, and better developers seek thought-provoking coding assignments and elegant implementations.

Except there is a gray line between solving challenging business and technical tasks versus coding heroics that leave the next developers with code that is hard to understand and complicated to maintain.

Sometimes simple but less elegant coding practices are better.

7 principle coding practices for Agile developers:
How to make your architecture, application, and code easily supportable by other developers

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Don`t copy text!