3 ms·
I think that initially, it is hard to develop both clean code and good UI simultaneously. At least in my experience, in developing a hybrid CMS/shopping framewo
by acmegeek 19y ago
I think that initially, it is hard to develop both clean code and good UI simultaneously. At least in my experience, in developing a hybrid CMS/shopping framework from scratch, I had no specs to start from, so it was a fairly intense iterative process.
I would start with some functionality, ugly as it may be and then switch over to work on the code for a while. I would then look for common code areas and try to come up with functions or classes that were as general as possible. Some might say I'm too picky about leaving things to generalized, but even though my codebase is 90% procedural, I and others have little problems, debugging and/or adding functionality.
I also took great care to generalize as much of the UI as possible. Even though there aren't too many objects in play, sweeping presentation changes in both layout and style are fairly easy.
I guess, to answer your question, an intuitive user interface takes time, as does clean reusable code. A programmer who is disciplined to see the value in both would most likely be able to start a new project with both in place. Unless you have done it before, it will take time and you will mostly likely fall towards one side.
I have done most of my coding solo, but I suspect that in a team, the most important keys to success, aside from technical excellence, would be clear communication and a well-defined goal.
Really short answer, you can have both, but you need relevant experience, good communication, a clear goal, and the ever elusive time.
- amichail 19y agoThe point I am making does not concern the ability of the developer to write clean code. Rather, I am asking whether it is even possible in principle to have a clean spec that corresponds to an intuitive UI.
- acmegeek 19y agoGotcha... missed that. I would still say that only with lots of relevant experience could a project manager or whomever spec it cleanly and intuitively. So in theory, it think it is possible, but not at all easy. It would take a lot more time than "normal". I wonder if that much forethought might save more time than would be otherwise spent on development and testing? Kind of like the adage of "cut twice, measure once".