Introducing SpinDance’s TechRadar: Navigating the 50-page Menu of Technology Entrees
Have you ever walked into a restaurant and were handed a menu that feels more like an encyclopedia, complete with a table of contents? Don’t get me wrong, I like to have options. However, too many options leaves you feeling like everything is going to be mediocre. The old adage of being a “jack of all trades and an expert at none” feels like it fits well. It is very different when you walk into a restaurant and see a curated list of 3 entrees that you know have been hand selected and perfected.
The world of software development often feels the same as that huge menu. There are so many options to choose from and just when you think you’ve finally picked what you wanted, the waiter brings out a new addendum to the menu along with a few marketing and sales folks to convince you why you need to pick this new item. It is overwhelming, frustrating, and often confusing. It doesn’t help that we love to give software tools and frameworks really obscure or generic names.
Wouldn’t it be nice if someone came along, sorted through all the things, and gave you a nice curated menu to choose from? Wouldn’t it be nice if they also updated it regularly to deal with those constantly changing addendums? That’s what we thought too. So we have been doing that internally for years to help us navigate this crazy technology buffet. Enough with food analogy. Time to get to the “meat” of the post.
One of the best parts of working in the custom software as a service industry is the ability to see a whole variety of projects and tech stacks. As a technologist working with an incredibly talented team of developers, it is always exciting to see what new tools, frameworks, and approaches are out on the horizon. Since we get the opportunity to create a lot of green-field projects, that also means we have a ton of latitude to leverage the best possible options instead of being tied to existing tech stacks.
While this is awesome, it also comes with challenges. We have to strike a balance between the “new and shiny” and the “tried and true.” We continuously strive to always do what is best for our customers. Sometimes that means the next cutting edge technology to solve their unique problems. Sometimes that means using what we know has a long shelf life and will be easier to maintain. To do this well, we must have a well-formed opinion and experience in the tech we are recommending. Since we do work in the embedded, cloud, mobile, web, and machine learning space, that means A LOT of technologies to keep up with and evaluate. Therein lies the challenge. How do we do this effectively and efficiently while keeping everyone at SpinDance on the same page?
For the past couple of years, we’ve been experimenting with TechRadar as the solution to this problem. It is modeled after the one published by ThoughtWorks, but is tailored for our internal use. This has been an incredibly valuable tool for us to get a quick overview of what we are currently doing, investigating, or abandoning. We have found a lot of value in it and thought others in the dev community might as well.
So, today, we are excited to announce the public release of our internal TechRadar—a dynamic tool that showcases our ongoing evaluation of emerging technologies. Think of it as your curated menu of options for your next development project.
The radar can be found here:
Note: This is an awesome service provided by ThoughtWorks to host the front end. We simply update the public Google Sheet behind the scenes.
Understanding SpinDance’s TechRadar Terminology
To make the most of this tool, it’s essential to understand the terminology we use to categorize technologies. Here’s a breakdown of what each term in the four rings signifies:
Technologies under assessment are on our radar, but we’re still in the early stages of understanding their full potential. We’re researching, attending informational sessions, and gathering knowledge from the broader tech community. While we haven’t fully embraced them in projects, we recognize their potential and are closely monitoring their evolution.
Technologies in this category are those we believe have significant potential. We’re actively experimenting with them in real-world scenarios, often in pilot projects, to understand their strengths, weaknesses, and suitability for broader application. Trialing is a hands-on approach, allowing us to gain practical experience and insights.
These are technologies that have passed our rigorous evaluation and have proven their value in multiple projects. We’re confident in recommending them to our clients and have seen consistent success in their application. Technologies in the ‘Adopt’ phase are often mature, well-supported, and offer clear advantages. Working on a lot of green-field projects uniquely positions us in a spot to adopt technologies sooner than a lot of organizations that are stuck in specific frameworks or tools due to existing investment.
This category is for technologies that we’ve decided to pause or reduce investment in, either because they’ve been superseded by better alternatives, or they didn’t meet our expectations in real-world scenarios. It’s worth noting that ‘Hold’ doesn’t necessarily mean the technology is not valuable; it might just not be the right fit for our current needs or focus.
By categorizing technologies in this manner, we aim to provide clear insights into our tech decision-making process, ensuring that we’re always aligned with the best tools and practices to serve our customers’ needs.
Additionally, the radar is split into quadrants. Each quadrant represents a different category of technologies based on their purpose or stage in the development lifecycle. Here’s a breakdown of the four quadrants:
This quadrant encompasses the methods, practices, and approaches used in software development and project management. Examples might include methodologies like Agile or DevOps, practices like Continuous Integration/Continuous Deployment (CI/CD), or approaches like Test-Driven Development (TDD).
Here, you’ll find specific software or utilities that aid in the development, deployment, or operation of systems. Examples could range from development environments, like Visual Studio Code, to orchestration tools like Kubernetes, or even monitoring tools like Grafana.
This quadrant is dedicated to the underlying environments where software runs. It can include cloud platforms like AWS, Azure, or Google Cloud, container platforms like Docker, or even more specific service platforms like database-as-a-service offerings.
Languages & Frameworks
As the name suggests, this quadrant focuses on programming languages and the frameworks built around them. Examples include languages like Python, Java, or Rust, and frameworks like React for frontend development or Django for backend development.
Spotlight on Technologies
I won’t go into everything on the radar in this post, but I will highlight a few key ones. If you are interested in why a certain technology is in a particular place, feel free to reach out and we can talk more.
Technologies We’re Assessing
– Svelte: While still fairly new in the web development space, there are a lot of things we like about Svelte from a speed, size, and developer experience perspective.
– ML: Edge Impulse: We see more and more potential for growth in the embedded machine learning space. Edge Impulse provides a pretty awesome platform for stream-lining this process and optimizing models for embedded devices.
– Mojo: Hot off the grill, this is a new language from the creator of Swift. It is helping to bridge the gap between the ease of use of python with the speed and flexibility of C. I’m excited about this one.
Technologies We’re Trialing
– AWS SageMaker: AWS continues to invest in their ML platform and we’ve been seeing more and more ways that it can be used for production scale machine learning solutions.
– Mobile: Flutter: We are actively moving more and more toward Flutter as our goto solution for cross platform development. Our developers like it more than React Native and it often makes more sense than native app development. Surprisingly, we are also seeing a lot of promise for it in higher end embedded linux applications.
– Copilot: GitHub’s AI pair programmer. Of all the AI assisted tools we’ve trialed so far, this one has been the most useful for day-to-day productivity gains.
Technologies We’ve Adopted
– AWS Cloud Development Kit: A software development framework to define cloud infrastructure and provision it through AWS CloudFormation. This has been one of the most rapidly adopted tools in the cloud space for us because it is such an improvement over previous tooling. We are excited enough about it that we are doing a free webinar about it on September 28. To sign up for the webinar, click here:
– OpenCV: A library of programming functions for real-time computer vision. Computer vision at the edge is also an area that seems to be growing rapidly. We haven’t found a better tool set yet than OpenCV. The learning curve is a bit steep, but the power and speed more than make up for it.
– GraphQL, NestJS, Serverless Express, Dev Containers: Tools and frameworks that have become integral in our development process.
Technologies We’re Holding
– R: A language I wanted to love, but it never really grew legs. Python devoured it, and so we have embraced that as our goto language for data analysis and ML projects.
– Cloud: Terraform: CDK has made us never want to look back, at least for AWS projects.
Our TechRadar is a testament to SpinDance’s dedication to innovation and our commitment to delivering the best solutions. As a full-stack IoT and custom software provider, we have to be the experts that can help our customers navigate the menu of options.
We are hoping that our public release of this will help others in the community benefit from the work we have done.
We also hope it helps our potential customers know what kind of technologies we use as well. If you are looking for experts in this space, we are here to help. We have a vast knowledge of software development on our team that can help with vetting ideas, to roadmapping, to architectural designs. We can also help build out your product or idea with development services that can work right alongside your team or independently. We love technology and love seeing happy customers that feel good about what is being built.