What comes first, second, third & so on...

Express the business side of your digital lives. Share your experiences and/or your comments regarding a business or organization.

No advertising.

Moderator: General Moderators

alex.barylski
DevNet Evangelist
Posts: 6267
Joined: Tue Dec 21, 2004 5:00 pm
Location: Winnipeg

Post by alex.barylski »

While it's true, many developers are capable of doing all three, depending on your budget and expectations, it could be a smart idea to hire 3 seperate people...

Sounds like what you need is a contractor of sorts: *Ahem* as in me :)

I'll explain...how I do it anyways.

I personally, sit down before any web project and sketch visually how and where I want things to be (Buttons, images, etc...) for the homepage/desktop/dashboard whatever you want to call it (this process is slightly different for web sites and web applications).

When a front page becomes crazy cluttered, I begin to normalize my visual design into seperate logical sections. From these disparate parts I construct a navigation chart or network if you will. Basically maps out the different pages required to get things done, etc...and how they interact with each other (sorta).

When I have these pages logically seperated and determine any FORMs, etc required...I move onto designing the database (if required). I am NOT by any means a database expert, I understand basics and principles...

Once I have a data model figured out and how each table integrates with the next, etc...

I move onto either object discovery (OOP) or SQL API, of course, now attention has turned to using DAO or ideally something like Hibernate (but I haven't found a PHP implementation yet which I like) which would allow me to continue thinking in OO terms...

Once I have discovered objects and determined their exact interface (it's usually a trivial task to deligate the implementation to another developer) I switch back again to design...

I sketch out final designs and re-produce them in Photoshop - again I am not an expert designer, but once I have the gist of an idea layed out in PS I can usually hire a designer to beautify things for me...at this point though I'm typically only interested in the common layout.

Once completed I take the photoshop file and splice into efficient PNG, GIF, etc and begin to write the HTML usually extensive tables (But this could be deligated again to someone with a strong skillset in CSS - so I'm told).

Once the HTML and images are complete in viewable form, I begin creating a file structure which will hold my project (I design every application to be VERY modular).

Once the file structure is complete I integrate my application layout into a template system like Smarty or bTemplate (which I prefer).

I do not use any MVC frameworks, but I do model my applications after it somewhat, just no0t as formally as some might or as some MVC frameworks might make you.

At this point I pretty much have an application skelton unique to the project I'm working on (minus common libraries I may use AdoDB, Smarty, phpMailer, etc).

I again review the original navigation and try and figure out any gotchas any page might throw at me. Basically I try and figure out functionality which applies to EVERY page (Javascript or PHP) and write that code into my primary layout template. Without breaking template rules with PHP - no SQL calls or application logic, just template logic.

My applications are always powered by a single index.php which uses state variables to "pull" up other pages, language packs, classes, templates, etc...

This single index.php is the application. It handles all other state variables specific to other sub-pages, FORMs, etc...and deligates the actions to required sub-modules or handles them itself as nessecary. Authentication for example, is not a plugin module...it's a basic property of any application so it's included in the core of an application.

From here it's pretty much an excersize of weaving each part into the system and completeing those which aren't done...

I follow a iterative design/development process in that, I learn about a system as I go...so I don't waste time in planning for 6 weeks only still to not design a perfect system...I do plan, but it's limited to getting a general idea only...

As you might be able to tell, developing a professional web application is not an easy task and IMHO not a task for one individual (show me developer with knock out designs and I'll show you a designer whose better and visa-versa. Same goes for every sub-skillset). What you need is somene who has played the game long enough and experienced enough to know when someone does something better than him or her. You need someone with industry know how and connections to take your project from ground zero to completion, hopefully even on time and under budget.

But if your a small fry, you might have to settle for something a little less professional...

Of course you could sacrafice DB optimizations cuz no one is really going to notice...unless performance hits become noticable...you could sacrifice quality design, which I wouldn't recommend, cuz everyone notices that...

But hiring a designer/developer is out of the question...cuz they IMHO are waaaaay to different fields for any one person to become an expert in...

So likely hiring a developer would be your best choice...one who knows quality design and knows where to find talent...and one knows all about compliance (ask Roja why thats important :P) or at least knows someone who does and can get the job done.

Thats my tip to you ;)

Cheers & good luck :)
User avatar
RobertGonzalez
Site Administrator
Posts: 14293
Joined: Tue Sep 09, 2003 6:04 pm
Location: Fremont, CA, USA

Post by RobertGonzalez »

Hiring one person to handle the full scope of your project is possible, but I would not recommend it. I have been "the hired developer" on projects like this and, without fail, I seem to disappoint the client for one of a few possible reasons:
  1. I didn't capture one of the core elements of the project the way the client envisioned it.
  2. I didn't hit a deadline on one aspect of the project
  3. I didn't develop the project to the exact specification that either was or was not communicated to me.
What I have done recently is bid each scope of the project as though each scope was it's own project. The scopes that I am talking about are:
  • Markup
  • Style
  • Server-side code
  • Client-side code
  • Database design & development (No entry)
  • Graphic design (I do not do this anymore)
Before I bid I make sure the client gives me a written project outline with all desired features. Based on what the client tells me I develop a quote. Everything beyond this point is a little off topic.

PS Welcome to DevNet. You'll love it here.
Post Reply