Designer, architect and developer

Original author: Tom Preston-Werner
  • Transfer
Over the past six years, I have been successful with my three companies (Cube6 Media, Gravatar, and GitHub), and have failed with a couple of other projects. I thought a lot about how it all turned out, and I identified 3 main roles that are necessary for creating successful web applications: designer , architect and developer .

In college, I spent a lot of time in a room with a dim red light, dipping film and sheets of paper in reagents. I inserted negatives into the enlarger, and printed the images on paper. It impressed me. every time I turned on the bright light of the projector, I recalled the saying: “Photography is nothing more than drawing with light”. Think about it for a second. When we look at a photograph, we see only the light that fell into the frame. No flashes, soft boxes, reflectors and backs will help you take a good photo if the light that they create or reflect is not directed correctly. Bad light is a bad photo .


I think this metaphor is good for web development. Adapting what was said to our situation, I would put it this way: "A web application is nothing more than UX created by a designer . " The user does not see the technologies that you use in the project, and does not know whether you are using flexible methodologies. All that the user receives is the interface on the screen. It is very important that this interface is not confusing, looks good, and does not have problems with spelling.Bad User Experience is a bad application . Everything is simple.

Good design is created by good designers. Someone in your team should not only be able to create beautiful interfaces, but also make them user-friendly. I cannot find words explaining how important a good interface is.

Well, firstly, the design. It is the design that determines what exactly you create. After that, you should figure out how to implement this idea. Here the architect rises to the stage.

You need a person who is well versed in technology: databases, frameworks, messaging systems, preprocessors, and so on. The choice of technology that you must make at the very beginning will affect your company for many years. The wrong decision can easily turn into a disaster. The task of the architect is to select the best technologies for work, as well as determine when you need to create your own tools .

Also, the architect should be prepared to scale any components of the system when you begin to attract users. There is a very fine line between premature optimization and the system choking on thousands of new registrations. A good architect always lays the foundation for future scalability one step further.

Design and architecture determine what and how you do, but you cannot do without a person who will bring this design to life. The role of the developer is to implement the ideas of the designer, without going beyond architectural restrictions . In addition, the developer must monitor the quality of the code, and get rid of crutches. Inaccurate development later will result in tremendous effort spent supporting bad code.

All three roles - designer, architect and developer - can be performed by one person, but more often the roles are distributed in a group between two or three people. In fact, the best teams are those in which each member represents a combination of roles. This helps create an environment in which good informed decisions appear.

PS: Highlighted the most interesting phrases in bold.

Also popular now: