- [Instructor] In this video, we're going to talk about designing developer tools. A programming tool, or a software development tool, is a computer program that software developers use to create, debug, maintain, or otherwise support other programs and applications. This definition is very important, because designing software for developers is a lot different than designing software for consumers. Each of these programs, or tools, that developers use, have very specific functionality, and when going in to design them, we need to think about what the use is, and how to keep the functionality as simple as possible.
Designing development tools requires a different approach than you would normally take from applications used by average users. Again, these types of tools aren't going to be used by your parents, or your friends, per se, but they're going to be industry tools that are used by professionals, or internal teams that are designed around specific tasks. For the most part, development tools are not going to be forward facing. That means that they won't be used by a broader audience.
A forward facing product has to stand up to the use of many different types of users. But a development tool will have a very specific use case, and it only has to serve that one purpose. To that point, development tools are single serving. Usually a developer tool is designed to complete a specific task. They don't need to be over-designed, either. While you can take some liberties in designing the way that a tool looks, or make it a little bit unique, generally, these tools need to be subtle, to the point, and achieve their intended functionality.
And finally, developer tools should be intuitive. The person performing the task should be familiar with the task enough, to be able to look at your UI, and understand what they need to do. Any type of documentation, or instruction, should be built into the tool, itself, in order to guide them. You don't want people having to read a manual in order to use a simple tool. There are lots of popular development tools. All of these tools can be used to draw a reference from.
Things like simple text editor, such as Sublime Text, is a perfect example of how a minimalistic approach to a text editor is able to achieve great results. It's an incredibly popular tool, used by lots of web developers, and while the UI is minimalistic, there's a lot of hidden functionality used in the actual shortcuts, and other macros that are built into the tool, itself. For the most part, the UI is very subtle.
On the other side, programs like Visual Studio, which are designed for higher-level programming on lower-level systems, require a lot more UI. And while this program is a little bit richer in the UI, you'll find the similarities between Sublime and Visual Studio are apparent, in the fact that both of them put a heavy emphasis on editing text. Scratch is a visual programming language that is designed to be user-friendly.
So people getting started with Scratch will feel a lot more comfortable dragging and dropping code around, instead of typing it by hand. And on the other side of the spectrum, programs like Unity, which take something complex like building 3D games, simplify the UI enough to make it approachable for anyone who's learning game development for the first time. Unity does a great job of making 3D game development approachable, especially if you don't have experience in working with 3D modeling tools.
There are lots of development tools to draw a reference from, when designing your own. The best thing you can do, is take the time out, and understand how others have solved problems that you are trying to approach.
- The interface of a developer tool
- Designing within constraints
- The Pixel Vision 8 user interface
- Creating a common UX language
- Standardizing UI components
- Designing for small resolutions
- Adding toolbars and action bars
- Setting limits for simplicity