Have you noticed that a lot of your friends who used to be Designers are now UX Architects?
Did their jobs really change? Or is their output being used and valued differently by the organizations that employ them? As a mainstream culture, we've really only become comfortable with design-thinking over the last 50-75 years. Today, designers are more important than ever to facilitating the product development process. But designers' roles are undergoing a critical transformation.
In the modern workplace, design culture is everywhere and it's had a lasting impact on the way organizations function. But while we've been paying attention to one very important way that work culture has changed, we have been potentially ignoring another, even more significant shift. Software development, and increased demand for software developers by both technology and more more traditional businesses, has shifted the culture of our workplaces and changed our expectations for how work gets done.
Like designers, software developers have never been more in demand. Today they can command high salaries and frequently can improve their prospects by 50% or more simply by moving jobs. Companies are now employing recruiters whose sole focus are attracting technical talent. And more developers are represented in business and technical leadership positions than ever before. These are relatively recent changes, but they're already beginning to affect our workplace cultures. In this blog post, we'll explore how increased the increasing gravity of developers is shifting the balance of our workplace into becoming DevOps cultures.
Using the mainstreaming of "design thinking" a template, we'll look at some design collaboration tools that have been adopted by mainstream businesses. Then, we'll look at some developer-centric collaboration and productivity tools and discuss how their adoption could impact the ways software development teams and entire businesses will work together in the future.
Designers have a whole assortment of tools at their disposal. But most of the tools that designers use can be distilled into one of two categories. The first type are design tools, in that they are the bits of software like Figma, Sketch, and Adobe XD, where the primary purpose is to enable the act of designing and creating. The second type of design tool is one that helps designers communicate and collaborate with other stakeholders, sometimes referred to as "DesignOps."
AirBnB explains their need for DesignOps tools, as their product teams are "working daily across so many disciplines, from Engineering to Product Management, Research, Content Strategy and an array of Design specialties, every little overhead in the transfer of information compounds. Inversely, every optimization and positive connection significantly lowers friction for everyone." DesignOps tools ensure that cross-functional product design teams have visibility into each others progress, and removes friction by enabling each discipline to contribute, in context, whenever is convenient (within the project schedule).
Tools like Zeplin help designers make their design systems shareable and accessible to developers and other designers on their team. In other words, the Zeplin app helps with the people-side of design operations. This is why it's helpful to view DesignOps tools as platforms for facilitating team collaboration. Because DesignOps tools make information accessible, teams can rely less on in-person or virtual conferencing more productively allocate their time resources.
The benefits of DesignOps tools are clear, so much so that traditional design tools are incorporating collaboration features as part of their longterm product roadmaps. In the same way that introducing collaborative features will enable traditional design tools to adapt to the requirements of DesignOps culture, businesses will increasingly turn to collaborative design experiences to enable their internal design processes and procedures.
Like design tools, developer tools also come in many flavors. Traditionally, developer tools have focused on enabling the act of software development, as in coding. These take the forms of text editors like Sublime and IDEs like VS Code. But a developer's everyday experience isn't just limited to what gets deployed. Like designers, developers also rely on tools to help them collaborate, make their work accessible to others, and ultimately deploy to production. These tools are commonly described as having to do with DevOps.
DevOps is really just a way to describe the design, development, deployment, and continuous operation of software code, including all the tools and mechanisms that support those processes. Atlassian warns that DevOps is "not a matter of simply adopting agile planning or automated testing or continuous delivery." Instead, they describe that "DevOps culture is all about a shared understanding between developers and operations, and sharing responsibility for the software they build."
As developers become increasingly central to business operations, the tools that they use to collaborate with peers and non-developers on product teams will play an outsized role in facilitating everyday business operations. You can already see evidence of this now. For example, even if you're a non-developer you feel the impact of a Slack or Zoom outage. And if you are a developer, you know exactly how (un)productive your day is when GitHub is down. Just like these examples, new tools are being created everyday to support DevOps and remove the daily frictions experienced by software developers. Ultimately, these are the tools that will deliver immense future value.
Here are the main types of DevOps tools that have already become, or will become, ubiquitous for modern software development teams:
⚙️ Platform-as-a-Service (PaaS) and Serverless
There are lots of ways to build and host your web application. Platform-as-a-Service providers like Netlify and Heroku provide a more streamlined user experience compared with AWS, Microsoft Azure, or Google Cloud, while all four provide scalable infrastructure services to support applications of all sizes. Serverless architectures take the notion of abstracting-away infrastructure a step further, and adopt an overall philosophy of offloading all (or as much as possible) of the infrastructure responsibilities to third-party services.
🚧 Deployment Staging and Visual QA
Every software development process that has a visual component or user interface will have some sort of visual review process. Web platforms like Netlify and Heroku have native deployment preview solutions to preview UI/UX work. FeaturePeek is a developer tool that makes deployment previews collaborative, so designers and other non-engineer team members can easily comment and leave annotations on the in-progress UI/UX.
🚢 Containerization and Deployment
Containers, like those used in Docker, can make it easier to operate your application, especially when dealing with complex deployment environments. Services like Kubernetes can help you orchestrate and monitor your containers. Some of the benefits to adopting a container-based architecture include the ability to build once, run anywhere - a self contained process, and the freedom to package absolutely everything needed to run your application in a convenient way. Containers are modular, interoperable, portable, reproducible, and scalable. So it's no surprise that while containers are not used everywhere, they're quickly getting there.
🔄 Continuous Integration and Deployment (CI/CD)
Integration is the act of checking that the code you just wrote didn't break something you weren't working on directly. Continuous integration, or CI, is doing this continuously to make sure issues are caught and addressed incrementally rather than all at once. Tools like Travis CI and CircleCI are good bets when considering continuous integration. Deployment is the process of launching your code onto the server, and there are lots of different ways to accomplish this. You'll want to think about choosing an automation server like Jenkins and whether you'll need a delivery platform like Spinnaker. Together, CI/CD is the collection of integration checks and test run to ensure code properly integrates, along with the steps needed to safely and reliably deploy your code onto your server environment.
🌡️ Performance and reliability monitoring
In order to effectively operate a software application, you need to be able to troubleshoot when issues occur. But before you can identify a fix, first you need to know what happened. Logging is the continuous recording of application events, so that developers can assess and problem-solve issues as they occur. But logging itself is a passive activity. Monitoring answers questions about how the system is running, and involves continuously observing a set of KPIs about performance and resource usage. Datadog, AppDynamics, and New Relic are some of the leading providers of monitoring solutions.
FeaturePeek brings DesignOps and DevOps together. The easiest way to set up on-demand frontend staging environments, FeaturePeek creates a deployment preview of your frontend every time you open a pull request. A drawer overlay makes it easy for your reviewers to leave comments, take screenshots with annotations, capture screen recordings, create tickets on popular bug-tracking platforms, and more.
FeaturePeek works with static sites and sites containerized with Docker. Best of all, you don’t have to migrate to a new cloud ecosystem. Whether your company’s website is hosted on AWS, Google Cloud, Heroku, Digital Ocean, whatever — since FeaturePeek is infrastructure-agnostic, you can use FeaturePeek no matter who your hosting provider is.
Try the 2-week free trial to see how FeaturePeek can improve your team’s development productivity.