Reflecting on 2022:
As we reflect on 2022 at Intelliware, we’ve had the opportunity to work with a variety of technologies and techniques. We’ve seen firsthand the impact they can have on the development process. In this retrospective, we’ll take a closer look at some highlights that have shaped our work in 2022.
- A number of our clients have increased their use of virtual desktop infrastructure (VDIs) in recent years. While there are clear benefits in terms of security and cost, the developer experience on VDIs has continued to be a challenge. Our teams are working closely with VDI administrators to improve the developer experience as much as possible. To this end, we’re taking an analytical approach and using quantifiable test cases to assess the performance of VDIs compared to local hardware. This allows us to provide specific feedback to administrators on how to optimize VDI configurations. In 2023, we will continue to work with our clients to find the best solution for their needs, whether that involves improved VDI configurations, client-provided laptops, or the use of Intelliware’s hardware.
- This year has seen a significant increase in the use of TypeScript across our client projects. This isn’t surprising, given the ongoing popularity of Angular. But another factor driving the adoption of TypeScript is the growing use of NestJS for server-side development, even at large financial institutions.
- Almost all of our client projects involve the use of one of the major identity providers, such as Cognito, Azure B2C, or Okta/Auth0.
- We continue to have high regard for MoleculerJS as a backend development tool.
- Deno Deploy and Hasura have impressed us with their ability to facilitate rapid development. We’ve used them to quickly create backends for projects primarily focused on the front end.
Go, or Golang, is a programming language developed by Google over ten years ago. In recent years, it has gained popularity in the industry, particularly in the financial technology (fintech) sector. In 2022, Intelliware had its first three client projects using Go.
Go is known for its simplicity, concurrency support, and fast runtime. While the technical merits of Go were certainly a factor in these projects, they were not the only consideration. In one case, we were able to leverage a starter application written in Go as a foundation for the project. This led to a much shorter delivery timeline, including working patterns to follow in the code. In other cases, the popularity of Go within the fintech industry played a role in the decision to use it. This highlights the fact that software development is a social endeavour as well as a technical one. Factors such as the familiarity and availability of developers with a particular technology can be just as important as its technical capabilities.
Since 2019, the “Team Topologies” book by Skelton and Pais has had a significant influence on software development teams and their organizations. The book identifies four types of teams—stream-aligned, enabling, complicated-system, and platform—and three interaction modes—collaboration, X-as-a-service, and facilitating.
In 2022, one concept from the book gained particular traction: the idea of a “platform” team. The platform team is responsible for providing internal services to other teams in order to reduce the cognitive load on them. However, the term “platform” team has come to be used in a variety of ways, with different organizations interpreting it differently. Some teams that are referred to as “platform” teams create reusable components for other teams, while others take on library upgrades, and others run CI/CD pipelines. This has led to confusion. My lesson this year is not to assume that everyone means the same thing when they’re using the term “platform”.
While “Team Topologies” has had a significant impact, there are other aspects of the book that have not yet gained widespread adoption. For example, the interaction modes described in the book—collaboration, X-as-a-service, and facilitating—are not as familiar to many teams and organizations. Additionally, the concept of cognitive load and its relationship to a team’s scope of responsibility is not widely understood. Finally, there are still many organizations that assign work across teams without considering the implications of Conway’s Law. We continue to see organizations that assign multiple teams to work on the same codebase, and suffer the consequences of long-lived feature branches.
Finally, no end-of-2022 retrospective would be complete without a reference to Chat GPT. Chat GPT is a powerful tool that has gained a lot of attention in the last few weeks of 2022. It uses natural language processing and machine learning algorithms to generate text based on a given prompt or seed text. Other tools like Dall-E and Stable Diffusion are similar in that they generate images from text prompts.
The impact of these tools on software development is likely to be significant. Intelliware’s own BC Holmes has been researching the use of hyperautomation to generate code from visual specifications, such as turning designs in Figma into React code or diagrams into Terraform code. Chat GPT is similar in spirit to GitHub’s Copilot, which uses machine learning to help developers write code more efficiently. Overall, these tools represent a step towards “what, not how” in software development, allowing developers to focus on defining the desired outcomes rather than the specific steps needed to achieve them. In that sense, they are a natural continuation of the history of software development.
This article was written using a collaborative process with Chat GPT. In some sections, I requested minor copy editing, while in others, I asked for more significant edits with some constraints. In about half of the article, I asked for wholesale content generation based on seed text. Throughout the process, I did the final editing to ensure that the text met my needs and did not depart greatly from my voice. Using Chat GPT in this way felt like using predictive text editing, but at a much more advanced level. It allowed me to quickly generate rough drafts of sections and then refine them with the help of the assistant. (e.g., the assistant turned “write whatever inelegant verbal vomit” into “quickly generate rough drafts”.)
And so, the last words go entirely and unedited to Chat GPT (responding to “100 words in conclusion for this 2022 technology retrospective blog for Intelliware.”)
In conclusion, the year 2022 has brought about many changes and advancements in the world of technology and software development. From the growing popularity of Golang and the influence of the “Team Topologies” book, to the emergence of new tools like Chat GPT and Hasura, it’s clear that the field is constantly evolving. As we move into 2023, we can expect to see these trends continue and potentially even more innovations on the horizon. It’s an exciting time to be in this field and we can’t wait to see what the future holds.