Some of them explode in speed. They arrive super fast, but their bodies can’t support much time. They usually use the cutting edge technology in food, physical exercises and clothes with great aerodynamics. They are often the innovators. They must achieve quick results and stop early.
Their coleagues, long distance runners, need to prepare themselves to a more intense physical and emotional activity. The ultra-marathonists run for days, face cold, warm, sun, darkness, different heights, all in a single run. They need do feed themselves often and stop to stretching. Their shoes need to be extremelly comfortable: absorve impacts and protect from injuries.
Application developers must understand that long term customers want long term commitment. And long term plans. Your appointment doesn’t finish a few seconds away. Your are focused in a future objective. It’s a ultra-marathon, not a 100m running.
Technologies envolved must be safe, with continuation compromise. Very often we need to adjust things, we bring alternatives, but the big picture is already designed. We need to remind the rules, our competitors, renew our strengths. But it’s still the same running.
I want to clear out this way of thinking does not promote you to keep doing things the same way you always did. You need and must innovate in every single opportunity, but safely. Your choices need to be based on real indicators.
Maybe the more important choices, that will dictate if you will keep walking or will need to rewind are programing languages (business rules, automation scripts, templates, data manipulation), data base management systems and the framework will keep you appart from boring and difficult tasks to let you focus on your goal: your apps.
These points are often under attention, even for professional developers. I already faced people choose some language “because everybody I know is using it”, “because it’s the natural transition” ou “because we already know it”. If you do this way, wake up! These are important arguments, but they don’t have a solid background.
I met Java developers that had never heard about Python until they knew me. Visual Objects were “the natural transition” from Clipper to Windows, in early 90’s. I’ve worked in a place with a PHP “culture” because they had some sites written in it, but they didn’t know even why they chose PHP. Here in Brazil we hear often “when your only tool is a hammer, all your problems seem to be a nails”.
As a developer, your business core value is intellectual and the programming language expresses your app rules is too valuable to you. It will determine if that “bit of feature” to be fixed or implemented will be 1 hour or 3 days long.
Nowadays I am developing applications using web2py. Some characteristcs I voted pros are:
- It has official commitment with backwards compatibility. None compatibility was broken in 3 years. What I developed, keeps running.
- It is written in Python, to develop Python apps. A mature language, increasing its marketshare, used by big players worldwide. I can develop object oriented, or not. I can write administration or automation scripts, if I want.
- I can use Python to render my views. Using the same language, lesser is the learning curve.
- It’s self-contained. In other words, unzip and use. All dependencies are already there. This accelerates my deploying and configuration process. It comes with jquery, PDF generator, Ajax, etc.
- It’s open source.
- DAL (Data Abstraction Layer) may be decoupled. It means if I need to develop a module to work out of web I can still use the same data access language. In other words, DRY (Don’t Repeat Yourself).
- There’s a lot of free site templates ready to use, made from CSS Zen Garden and Free Templates.
- There’s a trully receptive and organized comunity, even in Brazil. (nice!)
Who stands and plans, reaches the ultra-marathon’s finish line.