views:

436

answers:

12

I'm currently working on a pet project of mine: a web application using Servlets/JSP and some jQuery and Javascript goodies.
I just started on the project and my dilemna is: should I focus first on the website design or should I implement the back-end logic then start tweaking the design?
Right now, the website is hideous (looks like puke according to the Mrs.) but functional and some of the server-side logic is finished.
Thanks

+1  A: 

Design the interface (not UI but interface between the homepage and the server) first and then implement each thing independently. If your coupling is loose enough you should not have to worry at all.

dionadar
I'm not sure what you mean by 'interface between the homepage and the server'. Can you explain?
Zabbala
Well, you have a bunch of CSS, HTML, etc that displays some data in a pretty way. That is what I meant with "homepage".Then you seem to have a server side logic that provides certain data and/or functions.The first thing you should in my opinion do is define how those to parts talk to each other
dionadar
+6  A: 

Concentrate on getting your UI right first. The end user doesn't care the least about your backend, so long at it just works.

Chris Ballance
A: 

Start by making it fully functional, (by completing the server-side logic to produce the content & HTML).

Then add styling to make it pretty.

Then add scripting to make it interactive.

(Of course, you should always keep in mind what styling and scripting you will be using later, and may want to produce some interface mockups so you know where you're going.)

Peter Boughton
+3  A: 

If you have a chance I would suggest to use the server logic maybe with a simple stylesheet first. If you remember to use classes and ids throughout your HTML in the right places you should have no problem later on to style it.

Of course if you have a client who first wants to see great looking web pages then that's a different story.

But having some sort of good enough dummy layout around should be sufficient for most projects and also won't make it look like crap (like at least having some proper typography and maybe a basic grid).

MrTopf
A: 

Well that depends on which you see yourself as first. Are you a coder first then a designer second or is it the other way round. On my latest project as I am a coder first, I designed the DB layer (tables, some stored procs, normalization, yada yada). That gave me an idea on how to build the business logic layer, which i did and now I am on the UI/UX aspect.

Hope it helps.

simplyme
+1  A: 

There are many development methodologies you could follow. If you're interested in user-centered design, you would first build the user-facing components — not to full completion and final visual design detail, but enough to understand what your system needs to do and what users expect. Then you'd run it by whoever will use the site, and build the backend to support that, once you are sure your system is really doing the right thing.

Otherwise, what sometimes happens in projects is that you build a backend to support some function that ends up being irrelevant to users (you care about it but they don't), and you've wasted a lot of time and energy.

Jaanus
A: 

I would always recommend implementing functionality first - design can be done along coding the backend and then tweaked afterwards. A long time ago, I had some apps I started (visually) designing first and then suddenly lost interest in, resulting in non-functional but design-bloated trash. Functionality matters, but if you already got some you should be fine to go into visually designing your app now to catch up. :)

Energiequant
+1  A: 

I would say start with the design of the front end using stories or use cases. Model how you want the screens to look by drawing or with a tool such as Balsamiq. This may or may not have an effect on the back-end logic you design into your system but better to be prudent and plan for change.

When you have an idea how the user will use the system start building the back end logic to support the tasks defined. Use unit tests to model the behavior of the back end system with the front end. This should help lead to better design.

After the back-end logic is coming into shape then start actually building the front end based on the design.

Jeffrey Cameron
+1  A: 

I would bet on neither, and would do interface planning (how are the users going to interact with your application? Use cases, maybe try it on someone in a rough, paper-sketch usability test).

Website design is merely a nice frame around the core functionality of your application. On the other hand, jumping head first into back-end logic without first figuring how the application is going to be used is setting yourself up into potentially a lot of future rework.

MaxVT
A: 

Do what works for you, some people say that starting from the UI gives them the insight into the system usage they need in order to build the backend, other people are more productive starting from the backend yet another group like to start with programmatic interfaces (I start from the GUI myself).

Just remember, the GUI has to look good and "feel right" otherwise no one is going to use your application, the backend can be bad and barely functional and no one will care (as long as it sort of works most of the time).

Nir
A: 

Work from the back to front. What do you/your users want out of the system. Then work forward to what you need to get in. From this, the processes come out, then from that, the UI design that's best to do that. Next, make it look nice.

Presentation is important, but it's like building a house. Changing the colour of your front door is easy, changing the shape of the house isn't.

Tim Almond
A: 

Great information! At first time i have find something which i like http://www.whiteshaarks.com the most. It all made to see the theme of the site.Even they give proper attention to the color combination of the site so that clients will never ever complaints to the WS.