Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

re: 2) I can't speak for all developers, but I generally try to work with the mantra of "first make it work, then make it work well and then make it pretty or fast (depending on what the project is)". I guess that I am a little guilty of thinking of "design" as mostly eye candy and nice-to-have (when in reality, some parts of design probably should be part of making it work well). But I also abhor applications that have some shiny/slick interface and don't work well at all.

re: 4) As a developer, I recognize that I am not the best at everything and don't pretend that I could design an awesome Wordpress theme if my life depended on it but as you point out, design is not just the "eye candy". At the same time, I am not just an codemonkey. I want to participate in making something awesome, I want to learn and I want to work with people who know more than I do (I learn more that way and will probably come up with a better result).

In my mind, there is a difference between working together and saying "developers can't design, just go over there and write some code to make my vision come true" (I realize that I'm exaggerating a bit here). Any hint of a "just shut up and color" mentality makes my hair stand up in ways that I just don't have words for.

I don't think that either extreme (designers are the only people who can design or 'I can do it myself') is the right answer in any projects where volunteers are involved. As you pointed out, the trick is finding a happy medium and some way for people who stereotypically think in different ways to find common ground.

Now I have some thinking to do about how I can help reach that common ground in the projects that I work on and will work on.

* Edited formatting because it was hard to read. I'm new here and learning.



I think some of the contention comes in the statement "first make it work, then make it work well and then make it pretty or fast (depending on what the project is)" and the belief that without good design in the first place it doesn't really work. Leaving design till the end means it won't really have a positive impact on the use of the software.


While my statement probably doesn't covey this very well, I certainly am not an advocate of amalgamating dirty hacks or throwing any thoughts about good design out the window in the name of speed. You are quite right that leaving design until the very end isn't incredibly efficient or effective.

I'm also not a big believer in the "big design effort up front" methodologies. I tend to think of design (of code, at least) as more of an iterative process. I can't think of a single project I've worked on where a big design effort up front hasn't gone through a huge change before project completion.

Why spend all that time on a huge, detailed design that will end up being partially thrown out in the end when you can make iterative changes and design some things as you go?

Granted, this doesn't work in all situations and you do need good developers who are willing and able to write good, testable code and throw it away at a moment's notice.

If I code something in the "first make it work" phase that isn't throwaway code or can't be completely ripped out and rewritten without too much risk/effort, then I have failed as a developer.

Another mantra I try to code by is: never let perfect be the enemy of good. Perfection is never done and the best design in the world means nothing if it never gets finished.


> huge change before project completion.

As a designer, I feel that the design process is meant to highlight better routes to take with any artefact. It develops it further whilst keeping the goals more focused as they are nearer.


Is "agile design" a thing? If not, should it exist?


Totally agree. On all points I think. Shiny interfaces that don't work suck as much or more than crappy interfaces that do. Developers should not just code, designers need to at least understand programming and it's basic concepts. A big part of the problem, I think, is there are just not enough people, on both sides, that can bridge the design/develop gap.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: