TribalScale
Published in

TribalScale

TribalScale’s Code Assessment Service

Written by: Alvin Fong, Senior Engineer Manager, TribalScale

We bring TribalScale’s core competencies to digitally transform and accelerate your team.

Oftentimes, we find clients who have been developing their software a certain way for many years. Their app or website is operational, functions well enough, and delivers value. However, our client knows the process can be better. Perhaps new features always face delays in reaching the market, costing significant time and money. Security holes might exist, due to outdated dependencies.

TribalScale’s Code Assessment service is our solution to identifying areas for improvement in your software delivery cycle.

Symptoms of Poor Software Development

How can you tell if your software has room for improvement? Look for one or more of these signs:

Development Delays

Software development is not a trivial task at the best of times. Adhering to a consistent architecture will facilitate adding new features or removing unneeded features. Well organized software components means new team members will have an easier time onboarding, with less time spent before they become productive.

Deployment Delays

How streamlined is your software deployment process? Many startups rely on manual builds by key developers. Personal absences or process breakdown can lead to delays in deploying your latest software. A continuous integration and deployment (CI/CD) pipeline can represent a significant amount of up-front cost, but the rewards are great. With automation, nightly or weekly builds are possible, reducing the chance of builds failing when a mission-critical update is required.

Code Reliability

Is your organization tracking your software’s error and latency rates? Almost all software should have the ability to self-report errors, and trends in these errors should alert your development team to issues that must be addressed. Monitoring across your servers is critical in detecting service slowdowns and interruptions, and notify the correct team. The same tools will often offer you the ability to track user journeys within your software, offering you insights into how to improve your user experience.

What value does Code Assessment bring?

TribalScale’s Code Assessment aims to identify what issues are blocking your team from:

  • Reliable, on-time feature delivery
  • Reduction in Error Rates
  • More responsive software at lower latencies
  • Streamlined team composition
  • Lower Total Cost of Ownership of your software

We take time to understand your software pain points, and review your development and deployment process. We analyze your codebase for application of best practices. Finally, we suggest a roadmap for your team to reach these five goals. We have technical resources and experts available to support your team through this process.

What This Service Entails For You

So, what actually happens in TribalScale’s code assessment?

  1. Collaboratively, we identify source code branches to analyze. At the same time, we review how code changes flow back into your main branches for deployment.
  2. Senior engineers perform static and run-time analyses of code
  3. We compile itemized lists of issues and risks for each platform
  4. We identify foundational concerns across platforms
  5. A maturity level mapping is provided, to identify future growth opportunities

To determine your codebase’s quality, we cover the below aspects in our analysis:

  • Unit/Integration testing
  • Legibility and style
  • Maintainability and expandability
  • Security
  • Reliability
  • Documentation

Maturity Model

During the code analysis process, our engineers consider how well developed the aforementioned aspects are in the codebase and. To help create a proposed software maturity roadmap, we compare the codebase against these levels:

Level 1 — Inconsistent

Level 1 is where your stereotypical startup code lives. Cowboy coding, inconsistent architecture, and skipping unit tests occur in the name of getting the product to the App Store as soon as possible. Shoehorning in additional features can be difficult, and worsen the state of the codebase.

Level 2 — Defined Vision/Plan

As a first step to software maturity, Level 2 is where ideal processes are defined and architecture is chosen. Client leadership works with the developers to choose best practices and achieve buy-in. Most importantly, this vision is recorded and outlined in documentation — any team member joining the team should be familiar with the vision and help guide its implementation.

Level 3 — Processes in Place

Level 3 is where the agreed-upon processes are applied and enforced. Any new modules, features, UI screens, etc., should be compliant with these rules or guidelines. Code reviews by peer developers with automatic tools such as Husky are used to enforce code style before git check-ins. Continuous integration relies on running automated tests to reduce the number errors that enter production. Crash reporting automation allows bugs to be created and assigned.

Level 4 — Measurable Metrics

In Level 4, our clients’ leadership can define numeric goals based on the tools on level 3. Perhaps an organization might agree that crashes that affect more than X users should have a fix deployed within Y weeks of passing that threshold. Another organization might set a goal that new commits should have a certain level of code coverage in business logic classes. The chosen metric should closely reflect the organization’s success. Input and buy-in from all levels of development is critical.

Level 5 — Optimizing/Continuous Improvement

Level 5 depends on various factors, but is based on what numeric indications level 4 produces. What processes can be put in place to improve those metrics with minimal adverse effects on developers’ workflows?

It’s important to pick the right goals, the smart goals. We’ve all heard of horror stories of companies that set items such as lines-of-code, or 100% automatic code coverage, as performance goals — regardless of their limited impact on user experience or the company bottom line. No matter what goal is chosen, it should be directly beneficial to the organization or department’s success.

Conclusion

Code Analysis is just the start — building quality comes from quality processes and a transparent and humble team dynamic. This can be learned, and taught by example by the leaders in your organization.

At TribalScale, our goal is to generate a code assessment and growth plan, to level up your team. Ultimately, your team’s specialists are enabled to lead and transform others in your organization.

I’m Alvin Fong, a Senior Engineering Manager at TribalScale. I have been involved in projects developing software on Android, GCP, and Flutter platforms. My current interests include learning more effective testing techniques, the latest architecture patterns, and how to build a culture of open and clear communication in our remote work world.

TribalScale is a global innovation firm that helps enterprises adapt and thrive in the digital era. We transform teams and processes, build best-in-class digital products, and create disruptive startups. Learn more about us on our website. Connect with us on Twitter, LinkedIn & Facebook!

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
TribalScale Inc.

TribalScale Inc.

2K Followers

A digital innovation firm with a mission to right the future.