Field notes · Journal

Why prototyping software will never win

Draft From my notes

We’ve been there. It was called Dreamweaver. A tool loved by some, and hated by many. It gets you some distance toward your destination fast, but then it slows you down, sometimes to the point when you have to either abandon your trip (probably not true), or go back to the beginning and start over.

All the cool animations and transitions (over-promise, under-deliver)… who is going to implement them once the time comes? As a designer you have to understand the basic elements of the final product. Designers of physical products study material science, learn how things are manufactured. These things don’t have to impose restrictions on designs, but they have to be considered. Not everyone has the privilege to put something on the table saying “Here, figure out how to build this”. This might not be part of your job title, but being able to express your ideas in code that can potentially be used in the final product makes you an invaluable member of the team, even if the code is not optimal. It really goes the other way around as well. Developers should be able to come up with a reasonable design. Not something Dribbble-worthy, but something that makes sense, and is not absolutely atrocious.

Specialization is no longer a thing

It used to be that the more focused your skill set was, the better off you were. It might still be true if you are working in a large corporation, but it is not something everyone wants to do. If you end up in a small dev shop, the more diverse your skill set is, the better off you will be. Agile promotes cross-functional teams. It does not mean you have to know as much as developers do. There is a lot to development that is not even related to writing code.

There is a lot of overhead that we don’t need to consider when building a prototype:

  • Wiring up the backend
  • Refactoring code to be reusable
  • Optimizing
  • Testing (development practices like TDD)
  • Cross-browser optimization
  • Performance
  • Security

Working on a prototype is liberating. Of course, it does not mean anything goes.

For a developer, working on a prototype might mean having a chance to try out something new. A new library, a new technology. Something that might not be approved for use in production because it is not compatible with the existing tech stack.

← All field notes