24 tips for web developers

by ian

I’ve neglected the development folks lately. Which is ironic, since I’ve spent the last six weeks buried in reverse proxies via nginx, Nutch and writing web spiders in Python.

To make up for it, here’s a list of random learnings I’ve had when I put on my development hat:

1. Learn the business case. Make sure you understand the purpose of the application you’re writing. It’ll help you make informed decisions on features and such.
2. Fight for simplicity. Once you know the business case, you can work with your client to keep the application simple. So do it.
3. A stupid specification doesn’t justify a stupid application. If you know the spec makes no sense, then work with folks to fix it. Don’t write crappy code based on the crappy spec and expect sympathy later on.
4. You’re an architect, not a hammer. In the same vein as #3.
5. Plan twice, write once. Oh. My. God. Before you write a loop within a loop within a loop, think! There’s probably a better way. Small changes in architecture can make life a hell of a lot easier.
6. Plan for scalability. When your client says «Oh, this will never need to handle more than 1000 records» they are lying. Always plan for ginormous scaling. Write your code so that it can someday run on a platform like Amazon EC2, at least.


example of Python language
Image via Wikipedia

I’ve neglected the development folks lately. Which is ironic, since I’ve spent the last six weeks buried in reverse proxies via nginx, Nutch and writing web spiders in Python.

To make up for it, here’s a list of random learnings I’ve had when I put on my development hat:

  1. Learn the business case. Make sure you understand the purpose of the application you’re writing. It’ll help you make informed decisions on features and such.
  2. Fight for simplicity. Once you know the business case, you can work with your client to keep the application simple. So do it.
  3. A stupid specification doesn’t justify a stupid application. If you know the spec makes no sense, then work with folks to fix it. Don’t write crappy code based on the crappy spec and expect sympathy later on.
  4. You’re an architect, not a hammer. In the same vein as #3.
  5. Plan twice, write once. Oh. My. God. Before you write a loop within a loop within a loop, think! There’s probably a better way. Small changes in architecture can make life a hell of a lot easier.
  6. Plan for scalability. When your client says «Oh, this will never need to handle more than 1000 records» they are lying. Always plan for ginormous scaling. Write your code so that it can someday run on a platform like Amazon EC2, at least.
  7. Like it or not, you’re writing for human beings. Turning a simple feature into a game of keyboard Twister may seem logical at the time, but remember: You’re a mutant. You can do things with computers that make a normal person sweat through their shirt. Think carefully about who’ll be using your code, and code for them, not you.
  8. Make your users leave you alone. Expose as many features as possible. Don’t force your client to come back to you, for example, just because they now want the spider you wrote to just grab image links, instead of both image and text links. 3 lines of code and you can get another week of peace.
  9. Learn at least two languages. Doesn’t matter which two. The mental exercise will make you a far, far better coder.
  10. Don’t use frameworks like Django or Ruby on Rails until you know the underlying language really well. Otherwise, the level of abstraction those languages create will turn you into a drag-and-drop programmer, and you’ll write godawful code.
  11. Learn SQL!!!!! Every day, I see sites that could run three or four times faster if the developers could have the database server do more of the work, and the web server do less. At the very least, learn how to use JOIN, stored procedures (if your platform has ‘em), indexes and the slow query log (every database platform has one).
  12. Don’t use compiled if scripting will do. I know some folks think JAVA is the risen savior. It’s a great platform. But sometimes, a language like Python or PHP can get you a better result with a lot less effort. Be ready to switch when necessary.
  13. Learn HTML. And CSS. Too bad. Do it anyway.
  14. Learn how web servers work. It will help you make smart decisions about everything from use of secure certificates to caching.
  15. Which, by the way, is also important: Learn to use whatever caching modules/commands/features included in your platform of choice. I’ve recently seen three sites that regenerate every line of every page for every visitor. Seriously? You’re updating your site’s Terms and Conditions more than once a day?…
  16. Do your own QA. Test your code before you fling it over the wall to the production team or the QA team. There are voodoo dolls especially created for developers who break this rule.
  17. Include error trapping. Don’t show nasty 501 error pages to the whole world. As much as possible, have your application gracefully recover from errors.
  18. Practice defensive design. Build smart validation into your applications. Anticipate the mistakes a hassled, rushed person might make while using the tools you build for them.
  19. Turn on the logging. Your software will break. Make sure you have a clear diagnostic trail when it does: Turn on the logging tools built into your web server and your programming language.
  20. Think about security. Trap for injection attacks. Use good passwords. And for the love of everything, don’t use the root user for database access in production, OK?
  21. Oh, and ‘password’ is never a suitable password. Ever.
  22. Google is your friend. I’ve rarely seen a totally unique development challenge. Chances are, someone else has solved it. Look around.
  23. Google is your enemy. Just because someone else solved a problem doesn’t mean they solved it right. Check their assumptions, and yours, before you cut-and-paste.
  24. Leave your computer. Stand up. Turn around. Walk out of your office and talk to other people on the team, face to face. Once they recover from the shock, they will be a lot easier to work with.

http://www.conversationmarketing.com/2010/07/24-tips-web-developers.htm

Enhanced by Zemanta

Autor: Gabriel Catalano - human being | (#IN).perfección®

Lo importante es el camino que recorremos, las metas son apenas el resultado de ese recorrido. Llegar generalmente significa volver a empezar!

GENTE COSMO

LIFESTYLE - by Esther Herrero

Being Your Brand

Branding and Strategy for Business and Life

Cruces, Sol y La Imaginación

Cuando la imaginación y la creatividad suman infinito

tranquicomix

fanzine bejarano de historietas hecho en los 80

A Stairway To Fashion

imagination is the key

Vinod833's Blog

This WordPress.com site is the bee's knees

Apasionada de las Redes Sociales

Compartir conocimientos 2.0 y Marketing Online

Zona de Promesas

Blog de Tecnología en Español - Internet - Redes Sociales - Entrepreneurship - Innovación

Top Master | Blog

LOS PROGRAMAS DE MBA Y POSTGRADO MAS INFLUYENTES DE TODO EL MUNDO

Unencumbered by Facts

Taking unsubstantiation to new levels

PsicoEmocions Blog

Un Pont entre la Psique i les Emocions

TEA PTLS NACHO

AUTISMO.TEA..PTLS

Comunicación & Marketing

De Lilian Lanzieri

Xtratexia

Dirección estratégica para la vida

StellarHIRE Partners

Founding Partner, StellarHire Partners - Executive Search Consultants. Recent engagements include Eloqua, SFDC, Tibco and Veeam.

ivanbrunpr's Blog

4 out of 5 dentists recommend this WordPress.com site

BLOGTEC

Noticias de Tecnologia.

T a l e n t o  en  E x p a n s i ó n

Gestión de personas y transformación digital para las organizaciones líderes de la Era del Conocimiento

Two Leaves Tea SPAIN

Great Organic Tea! ✫✫✫✫✫ Te Organico en Piramides

Ideas para la clase

Experiencias creativas en la clase de español.

Little Grey Box

Travel Well

No solo los 80's

La mejor música de la historia

Molly Balloon's Blog

Identity + Dressing + Colour

El OJO PUBLICO. / Глаз общественности

Ver para contar & contar para ver. / Чтобы рассказать

Think Creative Idea Growth Hacking

Expertos en estrategia y auditoria de marketing

The Coaching Alliance

El camino hacia el éxito

Erick Lovera

Mi Pasión en un Blog

Estampas de México.

“Un fotógrafo tiene que ser auténtico y en su obra, debe expresar emociones, provocar reacciones y despertar pasiones.” ~ Javier García-Moreno E.

Natalia Gómez del Pozuelo

Escritora y formadora en comunicación

aloyn

Alimentación, ocio y negocios, ALOYN, es un Grupo dirigido a Directivos y Propietarios de empresas, interesados en el mundo de la industria de alimentación y bebidas. Tanto por la parte de la industria productora como por la parte de la industria consumidora y/o distribuidora (Distribución Comercial, Horeca, Vending, Venta Directa, etc). También nos interesan las actividades ligadas al agroturismo y el enoturismo como magníficas actividades de promoción y difusión de la cultura gastronómica.

Blog de Jack Moreno

Un blog de Joaquín Moreno sobre recursos, literatura y ciencia ficción

Mashamour

Ensalada de Manjares

be.blog

be. Intelligent Multimedia Education

~~Mente en Gravedad~~

************************************************************************************************************

The Xtyle

Fashion Blog - Un Blog de Moda y Tendencias by Bárbara Sanz Esteban

aníbal goicochea

Tecnologías de la Información y Estrategia

A Waterfall of Sound

"Poetry is when an emotion has found its thought and the thought has found words." Robert Frost

Health & Family

A healthy balance of the mind, body and spirit

Style & Design

Fashion Trends and News

U.S.

News, Headlines, Stories, Video from Around the Nation

NewsFeed

Breaking news and updates from Time.com. News pictures, video, Twitter trends.

A %d blogueros les gusta esto: