Developers I'd like to work with (2)
2024. 07. 31.
It would be great if the developers I work with also have these additional abilities:
- Intuition, or sense. This refers to the ability to envision how to solve a problem when you see it. With a good sense, you can not only come up with a solution before coding, but also grasp the efficiency of the solution and identify potential weaknesses. I describe people with good intuition as having "good eyes."
- Reproducibility. In other words, "Please make it possible for me to run what you've created." I believe one of the major advantages of computer-based work is this reproducibility. That is, if you've implemented something that works in your local environment, you can expect it to work the same way elsewhere.
Of these two abilities, intuition isn't something that can be developed in a short time, and it's more often required of leaders than team members, which is why I considered it supplementary. But reproducibility is different. Some developers might think reproducibility isn't even a skill, but something all developers are mindful of. Unfortunately, architects are severely lacking in this ability. The architectural design process I've observed so far has been far from reproducible, and as a result, I think architects have lived without knowing how to pay attention to reproducibility. So when an architect who's new to development joins the team, I always go through a process of explaining what developers mean by reproducibility, and what tools are used to create reproducible projects, starting from the basics. Reproducibility is that important.
So what exactly is reproducibility? Let's imagine a situation where someone has implemented a feature using Grasshopper. And I want to test this feature myself. What would I need? At the very least, I'd like to have the Grasshopper file with the implemented feature. If the person who wrote the logic used a plugin downloaded from food4rhino, I might get a message saying that some components are missing when I try to open the Grasshopper file on my computer. To prevent this, the person who initially implemented the feature should specify which plugin and version they used, and where it can be installed. The Rhino3D version used by the implementer might be different from the one I'm using. In this case, the implementer should specify which Rhino3D version it works with, and if possible, implement the feature to be compatible with other versions.
But what's the reality? The majority of architects export the Grasshopper canvas as an image file, insert it directly into their portfolio, and turn it into a PDF. In some cases, when the Grasshopper logic becomes complex and large, they even include a zoomed-out capture that looks like a tangled spaghetti mess where you can't even see what components were used. It doesn't end there. There are frequent cases where even the creators themselves, when trying to open the .gh file later, can never see it working again due to various compatibility issues. Architects are producing work that is so thoroughly unreproducible that even their future selves can't verify it.