Tuesday, June 14, 2011

My Philosophy on Web Development

I think web development really has 4 layers.  And really when I talk about web development, I'm talking about web applications, like backends, not just plain websites.  Who has a plain html website anymore?

Layer 1 - Business and Finance.  This really can be ignored if your a freelancer, but not if your a company. This is the layer that you figure out the future of the company,  your goals as a programmer, the quality of work you want to provide, and handling all the money and charging and tax stuff.  This layer should not be done by a programmer, leave this to the guys that like to write proposals.

Layer 2 - Client Management.  Its difficult to talk to clients. Clients are stupid. (No offense to any of my clients whom might be reading this.  You're not stupid we love you :).  But basically in customer service you go by the rule of "the customer is always right". Well that doesn't apply in web development.  They are hiring you for your expertise, and expect you to know what is best.  They only know a little bit of what they want, and you have to sift through all of their gorgeous thoughts and really figure out what will make them happy, in the most efficient and cost effective way. We can take a minute here to thank tools like Pivotal tracker, Fresh-books, drop box and any other client management tools you might use. They really do make a huge difference.  Programmers can be client account managers, but generally should not be, you should stick to coding.

Layer 3 - Core Design.  I don't mean the photoshop skills here. This is really the functional design and implementation architecture of the project.  A lot of freelancers do this but they call it "sketching on a whiteboard".  You can get really complex with this step.  But more or less, this phase you are figuring you the entire project, solving all the problems, and building the foundation so that you can outsource the rest of the work.  This is really the most fun phase, and its also the most challenging.  You really have to understand every facet of the project, from what coding languages to use, to math, to what the client wants.  This phase is the heart of the project.  A great tool here is Omnigraffle, it really helps spec out projects.

Layer 4 - Work.  This is where the meat is.  This layer is all the html, css, photoshop files, images, php files, database files etc..  Basically you are building the project here.  This is different from the core because everything from this layer is built to work with the system that you created in layer 3.  When you get started, this is the main phase you focus on, and the phase that costs the most money.  Over time - in a business, you will do less of this and more of layer 3. As your company grows, you will find your self being able to outsource this part to your employees, and focus on designing more layer 3's for other projects.

So yea - that is just  my philosophy on web development, and what I think is involved from being just a freelance to growing into a web company.

No comments:

Post a Comment