Elexicon Watermark
Archive for the 'Business' Category:

January 15th, 2010 - Chris

What really makes Elexicon valuable to clients is the ability to deliver a lot for a little. When it comes to web programming and development, this can be difficult, because there are so many ways a development project can go wrong. I won’t reveal all our secrets, but here are some of the important lessons I’ve learned that help me ensure Elexicon or our clients don’t waste time or money.

Context is everything

I enjoy developing elegant, clean, programming solutions, but sometimes cutting corners and doing something quick and dirty is fine. No one but me cares about how code looks - they care about how it works. On the other hand, if it’s going to cost the client more for me to maintain my messy code in the future, then it may be better to spend more time to provide a more elegant solution.

The lesson here: Context is everything, and programming in a bubble should be avoided, because the programmer often will know best the questions to ask that could save the client money.

As an example, say a client named Jane Dough needs to import some data into her big important database. She’s considering having Elexicon build her an automated process to do so. At this point, we would want more information. Some questions we would ask would be:

  • Is this is one-time data import, or something that would have to happen often?
  • How is the data currently formatted?
  • How much data is there?
  • How long does it take to manually enter a single record?

From the answers to these questions, we could help her determine whether the cost of doing the manual entry would be less than or greater than the cost of building an automated process to do so. Often, there are diminishing returns, where it may cost a great deal to fully automate a system, but to compromise and just partially automate a system is a lot cheaper.

Other examples of common questions I ask myself:

  • Should I spend more time today to make this code standardized, or is the chance of reusing it very small?
  • Should I spend more time today to make this code maintainable, or will it not be around for very long?
  • How tech-savvy is the client? Is it worth spending time on making a system very usable when the client will be able to figure it out anyways?
  • Will spending more time on this development project now give me the experience to do it faster in the future?

Don’t reinvent the wheel

This applies to every level of the development process. It may seem obvious, but I still see it violated often.

On a higher level, don’t even think about coding your own shopping cart solution, blog software, or simple content management system. While it might guarantee your job while you have to maintain the behemoth of code you created, it betrays a lack of knowledge of the world around you. Instead of giving clients a system that’s built exactly to spec for a lot of money, you can often buy them a system that goes above and beyond what they want for even less money. It may take time to find the exact solution that fits, but that pales in comparison to the time you would spend implementing and maintaining your own solution.

There are definitely exceptions to this, but during the proposal process the key is to ask yourself: Does the client want something that’s similar to sites all over the internet? If so, someone has probably developed something that will save you time and the client money.

On a lower level, there are plenty of development tasks that can be automated or made easier by libraries. However, I would issue a warning: these concepts should be fully understood before attempting to automate them. I would not use an Object-Relational Mapper (such as Subsonic) if I couldn’t figure out how to code one myself, or use jQuery if I didn’t understand what makes it so powerful. It’s a delicate balance between libraries that save you time on trivial tasks, and those that will take too long to learn and/or restrict your ability to maintain and simplify your code. This is why it’s important to understand the concepts in the first place.

Proper communication is essential

Thankfully, at Elexicon we have a team of project managers who are used to working with both design and development, and who ensure that our lines of communication remain open. Nothing has the potential to save yourself and clients more time, money, and headaches like proper communication, mostly because improper communication can be disastrous. This isn’t just about asking the right questions to be aware of the context. It also comes down to the ability to translate tech-speak into language that the client can understand. Not only will this ensure that clients understand what is being delivered, but it will make your process more transparent and trustworthy. It’s good to be able to answer the client when they ask questions like “Why does this simple development task take 20 hours?” in terms that anyone can understand.


August 19th, 2008 - Jeff

By definition it may seem that the answer to this question is yes. It’s simple. A user starts a web browser, enters your company’s domain name, and your website appears. You have hopefully spent some time thinking about those users, but making sure your site is connected to the web means more than viewing your site in a web browser.

Search Engines
The most obvious example is search engines. Companies write software called “Spiders” that visit your site and ask for every page. You have probably invested some money into “Search Engine Optimization (SEO)”. One goal of SEO is to make it easy for the spider to find, prioritize and index the important content on your site. This is accomplished by improving the HTML code behind your web pages.

HTML is one language of the web, but a more powerful language is XML. For instance, to optimize your site for the Google spider you can add an XML sitemap file to the root of your website. This tells the spider where to find content, what content is important, and when content has changed.

XML can take different forms and that’s where it gets interesting.

Feed Readers
Many people read their favorite sites without ever opening a web browser. Instead they use a Feed Reader.

IE Feed Reader Screenshot Many websites offer their content in XML formats called “Real Simple Syndication (RSS)” or “Atom Syndication Format (ATOM)”. A feed reader, which may look like an email application, checks your site for updates and sends the information back to the user. Internet Explorer 7 has a feed reader built-in and you will notice in the screenshot below that the content of the Elexicon blog looks very different in the IE feed reader.

Mashups
As soon as you provide an XML feed, other websites can combine your content with other sources to create a new experience. The richness of your data enables unforseen value as others start to piece it together with additional web resources. Here are some examples:

Widgets: A web feed allows users to put your information on their site. This is great for SEO and for your user. If your company has a dealer network, each dealer site could host your news widget and drive traffic to your site while adding value to theirs. In the screenshot below, you can see a simple widget displaying the Elexicon blog feed on my Google home page.

iGoogle Screenshot Geocoding: If your data has a geographic connection you can include the latitude and longitude. Many digital cameras will geocode and timestamp every photo when it is taken. If you upload your photos to the Flickr website, then sites like flickrvision can combine the Flickr feed with a map and you get a fascinating worldwide photo tour in real-time.

Aggregation: Others may chose to load your data and analyze it for patterns and trends. For instance, Twitscoop reads all the words from the microblogging site, Twitter, and creates a real-time tag cloud revealing the most popular topics of conversation on the web at any given moment.

Here is a Mapdango map of Grand Rapids, Michigan, which pulls together weather, events, photos, history and more.

Sites like technorati are trolling for content and if your information is tagged properly, it will likely be included.

Visualization: Besides aggregation, advanced visualization is another trend. Software is used to analyze data and create new ways of seeing things. SpatialKey is a new company doing some nice work in this area.

Application Programming Interface (API)
Another level of web integration is providing an API. An API allows others to develop even more robust web applications with your data. It will be easier to do business with you and it will offer valuable exposure for your company. A great example of this is the UPS API which provides information about a package in an XML format. Web users have used the API to create multiple ways to track packages, by map, IM via Twitter, and more.

What you can do
It is not enough to think only of people visiting your site with a web browser. You need to think about what rich information you can provide to the web. Organizing your data will benefit your company and you may be surprised what it inspires in the web community. There’s a lot going on; just look at the full spectrum of sites in this analysis dubbed The Conversation Prism.


December 4th, 2006 - Jeff

As a web consultant I help companies create web-based applications. This often involves either automating some business process and/or exposing an internal data asset, such as a catalog of products, to the world.

In order to do this, a discovery process takes place to define what data, actions, people, conditions and exceptions are required to accomplish a particular business process. What I have discovered will shock and surprise you. Ready? Often what a company thinks is happening is either far from the truth or severely underestimated.

There are several reasons for this that often stem from the simple fact that people do what they must to get the job done. Sometimes they cut corners; sometimes they make mistakes. Often the business applications they use have productivity flaws that inspire creative workarounds.

For instance, data visibility is often a problem. Users don’t have the information they need when they need it. To get around this they type text into an “unused” field, add special codes to an existing field or, worse yet, they create separate documents and try to keep them synchronized manually.

Overtime the corporate database and business processes become an esoteric mess that is hard to maintain. The problems survive primarily because they are only visible to employees and even 90% of them “dare-not-tread”. This happens whether there are legions of DBAs or not.

As with most things in life, a little accountability will often motivate people to do the right thing. The solution is to kill two birds with one stone. If you automate a business process through a web application, inevitably you will have to expose a portion of the corporate database to the world. Often it is product information, scheduling, or order status. For instance, a nightly refresh of product data could send product descriptions and pricing straight to the web site.

Suddenly, that once hidden data will be visible to the world. If things don’t look right, customers will be calling; senior executives will be calling; You get the idea. Suddenly the visibility of problems will force some action. Senior executives will suddenly find funding to improve operations. Users will be more careful when entering data and will find more satisfaction knowing that their efforts to keep the database clean do not go unnoticed.

There is nothing like millions of web users to provide some accountability. In the end, they will appreciate your new customer focus through accurate, real-time information. The new visibility will help improve your data and the application itself should automate the process and improve overall quality.