14 September 2009
I use Adobe ColdFusion, ColdFusion Builder, Fireworks—and some HomeSite—every day to build business solutions for my clients. For the last few weeks, however, I have been testing the ColdFusion Builder beta, slowly integrating it as my primary IDE.
Outside of Adobe products, I use MySQL and SQL Server as databases and jQuery as my client-side framework.
The most recent project that I launched at Epicenter Consulting—and continue to maintain—is the Project Lead the Way (PLTW) extranet. It's an educational organization that seeks to bring engineering and biomedical science classes into schools across the country. It's a large, multitier application that coordinates efforts across the organization, including staff members, teachers, school district delegates, state leaders, and affiliate directors.
On the back end, I am using ColdFusion 8 and MySQL 5.
Because I work mostly on business software, custom-built for individual clients, it's hard to comment on the commercial success of any particular project. However, what I can tell you is that some of my projects revolutionize the way these companies do business.
Take PLTW, for instance (previosly mentioned). It was originally running on an old Microsoft Access database that had to be downloaded from a central server anytime a staff member wanted to query it or modify its data. As such, all requests made by the over 6,000 PLTW stakeholders needed to be funneled through one or two staff members.
I took this inefficient workflow and revolutionized it. Creating a company extranet using ColdFusion 8 and MySQL, I centralized the data repository and distributed the responsibility of maintaining the system. What originally had only one login and serious bottlenecks was now a system that had six different logins, which granted all 6,000+ stakeholders access to the system at different levels, where they could easily coordinate across the entire organization and gather the information that they required.
How all of this translates to a commercial success for the client, I cannot say; but I can tell you that the system I built brought a large amount of efficiency to the day-to-day activities of all members within the organization.
As far as projects that were not successful, nothing in particular jumps to mind; however, most likely, the cause of any failure would be a lack of empathy on my part with the client. I don't like to think of clients as "clients" but rather as business partners. As such, it is essential that I fully understand their business and am empathetic to all the needs of all of its stakeholders. Any failure of the final product is almost always indicative of a failure in how I translate those needs into software requirements. Luckily, using strategies like Interface-Driven Architecture (IDA), I find that these breakdowns in communication are always caught early and are addressed before the software is fabricated.
Because I use ColdFusion at work, there are very few technological challenges. ColdFusion just makes things so easy; and when there are things that ColdFusion cannot do, oftentimes reaching down into the Java layer is sufficient to solve the problem at hand.
Because I primarily build custom software for businesses, I don't often think about monetization. However, Clark Valberg (my business partner) and I have a saying in the office: "The easiest way to make a million dollars for yourself is to make two million dollars for your client." Essentially, this reminds us to keep our eye on the real goal, which is to build the best possible solutions for our clients. If we can do that, then the monetization will happen naturally.
I work with ColdFusion 8 as a server-side technology and jQuery as a client-side technology, and I love them both for the same reason: They make hard things easy. If there is anything that either of them can't do "out of the box," both languages provide straightforward ways to extend the core functionality.
I get most of my information about technology from within the ColdFusion community. Whether it's reading blogs, recommended books, or attending conferences like CFUnited and cf.Objective(), I seek out everything that my fellow community members have to suggest. Outside of the ColdFusion community, I rely on my business partner, Clark Valberg, who has his finger on the pulse of the ever-expanding technology field.
All day, every day, I have Ray Camden's ColdFusion Bloggers RSS feed aggregator open. I find this to be my one-stop shop for the latest in web development goodness. As of late, though, I have also found that my Twitter feed provides fantastic links to emerging technologies and high-end programming examples.
All elegant pieces of software inspire me. Every day I wake up excited to tackle new software problems and experiment with new technologies and coding techniques; as such, anything and everything that proves elegant is another example of the kind of solutions that I hope to create for my clients.
Better user interfaces.
For years, probably as long as I've been programming, I have wanted to build the most awesome piece of fitness software ever created. Programming and working out are my two passions, and I've wanted nothing more than to bring them together to form something great.
Working in ColdFusion was a "right place, right time" situation for me. Years ago, I landed a summer internship at a web development company that just happened to use ColdFusion as its server-side programming language. And of course, once I started using ColdFusion, I never really wanted to use anything else.
I just got back from CFUnited 2009, so the list of things that I want to look into is long. Adobe AIR, Adobe Flex, ColdBox, Model-Glue, Mach-ii, social networks, mobile apps, server maintenance, high-availability, and so on and so forth. It all looks so interesting. The hard part is going to be finding the time to explore so much exciting stuff!