Archive for the Web Development Category

This blog is written specifically to and for all Freelance Web Designers and Developers. In case you don’t know this about me, I too am a Freelance Web Designer and Developer. Yes I own & run a Web Development company, but my company acts like sort of a glorified freelance group. Most of my clients and leads come from online. And I work from home full-time. As freelancers we have an interesting business that can be both complicating and rewarding. One of the major obstacles that many of us freelancers face is Better Communication with our Clients!

Vera Raposa, an author from the Small Business Branding blog wrote an interesting article recently titled “10 Easy Steps for Better Communication with Your Clients”. The article was not directly intended for the “freelancer” in mind, but as freelancers there are many things we can take away from the article to help us in this area of business. I’m going to list her 10 steps in this article because they are so helpful to freelance web designers and developers.

1) THE IMPORTANCE OF LISTENING

Just as it’s been said the best offense is a good defense, the same can be said for communication. Sometimes the best way to reach out to people is simply by listening to them. Clients will never be shy about expressing their needs and concerns. However, a lot of times companies have well developed sales approaches that don’t take into account the dynamic nature of client relations.

It is a good idea to know your strategy and have it firmed up; however, an essential part of that strategy should be formed around listening to what the client has to say on a regular basis. Good listening skills not only allow you to collect valuable information necessary to assist a client and answer their needs, but it also demonstrates sensitivity and understanding.

Listening will set the tone for the rest of your communication. It will direct your efforts. By actively listening to clients, you’ll know the best way to communicate with them. Whether through email or phone, listening skills will foster the next steps in client relations. This can not only help businesses fine tune their sales and implementation techniques but it will also help to create a long term client relationship, increasing visibility, referrals and market share

2) EMAIL ETTIQUETTE

Email has become the most effective and efficient way to communicate within the workplace. Almost 88 percent of all Internet users in the U.S. use email. This information comes from a survey conducted by the UCLA Center for Communication Policy (The UCLA Internet Report: Surveying the Digital Future. UCLA Center for Communication Policy. 2001).

According to the same survey, approximately 90 percent of those who use the Internet at work use it to access business email. It has provided its own unique set of issues to learn to navigate. Although, intended to be used to communicate ideas and concerns, as well as, respond to needs as they arise, if not used correctly email can lead to miscommunication resulting in negative consequences.

The use of email can have a dramatic impact on business, a powerful communication tool. Establishing an email protocol ensures that the client message remains on point and is done so in a The key components to this would be acknowledging emails in a timely matter, using appropriate tone and making sure to check each email for any spelling or grammar errors. Clients often may not notice the extra effort taken to deliver the perfect email; they will, however, be quick to point out any errors, miscommunications or poorly written emails.

3) PHONE ETTIQUETTE

The phone brings a real time approach to client interaction. It allows you to get the true pulse of how a project is headed or what a client needs. Having a team with proper phone skills are essential to any successful business. It isn’t just a matter of picking up a phone and dialing the numbers; it is about having a productive, meaningful and engaging conversation.

A good phone conversation has three key elements

1. The call should be uninterrupted and quiet - It should go without saying that the best place to call a client is from a quiet office and not from a mobile phone in a convertible. However, with technology allowing us to be accessible 24/7, sometimes a quiet office may not always be available. Still though, it is essential to find a location that will allow the topic of the call to be the focus and not background noise. If it is necessary to step out of a room or take a few minutes to find a location, let the client know they will receive a call back shortly. It is better to get back to them in reasonable time then for either party to be distracted.

2. An agenda should to be in place - It is not always the case that a formal agenda needs to be typed up and distributed ahead of time; however, there should always, at a minimum, be an outline of what needs to be taken care of during the conversation. In busy settings, it is important to take time to check in on clients, but also important to be aware of their time constraints too. A focused call will help achieve this. The tone of a call can be as formal or informal as needed; however, it still needs to be driven by objectives and follow-ups.

3. Follow-up - If necessary or requested, it is a good practice to send a follow-up email thanking the client for their time, reviewing the hot topics of the conversation and putting in writing any requirements that need to be addressed in future calls. This gives another opportunity to show clients that by active listening, their needs are being heard and their goals are being worked towards. It also allows an opportunity to clarify any issues or questions that may have come out of the phone call, but still require more information.

4) DEFINE THE PROJECT

Entering into an agreement with a client is the basic function of business. Someone sees a need and decides to fill it. Months are spent creating the perfect branding and marketing plan in preparations for opening the doors. The hard work of running a business is rewarded in the success of expanding a client base.

The most important aspect of doing just that is making sure that the needs of the client are met in the most effective way.

So often a client needs one thing and through a series of miscommunication and internal meetings, the client ends up receiving something other than their vision. Instead of being a business that revisits these issues in postmortems, a proactive way to solve this client killer is to develop a well defined project plan.

Having a definite project scope with appropriate follow-ups will help alleviate the stress of finding out mid course that the client is on a different page. Defining scope can be as simple as meeting with a client to review the basic needs to as extensive as hiring and assigning a project manager to work with the client in a creating and sign off of formal scope document. The level of defining scope will be dependent on the size of the project and the needs of the client. This also goes back to the importance of actively listening.

By taking time early in the process to actively engage the client in what it they require will help to firm up the understanding of the deliverable they are expecting. Putting the communication effort up front, can also be cost effective as there will be less potential for work spent trying to ‘fix’ issues as they arise. A successful project is one that continually moves forward. Moves laterally or backward are financially draining for both client and business owner.

Communicating scope at the beginning of the working relationship ensures that each day the project is active it is moving forward to both the benefit of client and business alike. In the end, a project that is defined will leave less room for error and more opportunity for repeat business and word of mouth referrals.

5) MAKE DEADLINE

Hand in hand with defining project scope is honoring the commitment promised to the client. Scoping out the project ahead of time will allow proper resource allocation to be towards the project from the beginning. Just as time is money for you, the client is dependent on your word to complete their needs in the time promised.

A delayed project not only adds more payrolls to the business expense, but it delays the end goal of the paying client. Whether the business makes t-shirts, hosts websites or performs online trading, the client is dependent on the expertise of the business. One component of that expertise is the ability to listen to the needs the client is presenting and turning that into a functional timeline.

Your business is making money off the needs of the client, however, the client is dependent on a promised turnaround in order to make money. A client is going to seek to hire those companies that not only provide the services they need but do so in the most cost effective manner. They will be taking into account not only price point when making a decision with who to work, but also turn around time.

A business is only as good as its reputation. And its reputation is solely based on that of its clients.

Communicating with clients on what they can expect is only half the battle; letting them know when they can expect it is the other. Everyone knows that not all projects are delivered on time. In fact only a small percentage of projects come in on time and under budget, so although hopeful most clients will be aware that there will be variables beyond control that can push a deadline.

However, how a company communicates that information to a client can be the difference between an angry client and a delayed yet very successful project. Any successful business knows that there will have to be a fair share of adjusting to situations as they present themselves; going into projects clients will be aware they may need to shift from time to time, open and timely communication to them will allow them to make the changes necessary.

6) EXPRESS NEEDS

Working with a client is a mutual relationship. Just as the client is expecting certain things from the business, it is expected that the business will have certain needs for the client. From the onset of the project through its completion, communicating on what is needed from the client will have a direct impact on how things progress.

As it is with the client conveying their requirements, taking the time to freely communicate expectations, concerns and preferences will help create a dynamic approach to the project and help build trust and rapport with the client. Communicating has both an immediate and long lasting impact. Instantly it sets the bar high for the project and lets the client know that they are working with a company they can trust.

7) ADMIT & CORRECT MISTAKES

Throughout the course of a business relationship with a client there are bound to be situations when what the client wants or expects is not done to the client’s expectations and, in turn, satisfaction. When things go amiss, it makes good business sense to take the time to review what went wrong and why. There are going to be times the ‘why’ is because the business made an error.

Never be afraid to step up to the plate and let the client know an error was made, and more importantly that it is being corrected - immediately.

Communicating issues with the client allows them to see that they have selected a company that both sees manages issues as they arise and doesn’t try to cover them up. It is often said that it isn’t the lie that befalls a man, but the cover-up. The same sentiment can hold true for businesses.

It isn’t the error that will hurt your relationship, errors happen; however, an attempted cover-up, denial or lie will have negative implications that can harm the ongoing project, as well as curtail any change of future projects with the client.

There will also be times after careful review it is determined that no real error was done, rather the client miscommunicated, change scope or is just being difficult. Inevitably at some point everyone will run into this situation; the edict, “The customer is ALWAYS right” applies here.

Treat the client as if they are right, even if it means gritting your teeth. Although easier, and often more rewarding to point out no error was made taking that approach, this will not move the project forward. Getting into a back and forth with a client on who was right and who was wrong can stall a project and create a new wave of issues to deal with.

There is no reason to admit fault during these situations, however, a skillful business person will listen to the needs of the client and communicate the desire to fix the issue. Taking steps to rectify the situation without admitting fault will keep the project moving along and will satisfy the concern of the client.

At this point it may become necessary to add more check-in emails or meetings with the client to help alleviate this type of problem in the future. And the good news is once the project is over it the decision can be made to avoid future relations with the client.

8. PROJECT TRACKING

As the start of the project nears it is a good idea to have a kick-off meeting with the client to review expectations, deadlines, scope, billing, and any other variables that will be tracked over the course of the project. Structuring expectations of the project from day one will help minimize confusion as the project begins to roll out.

One way to do this is to track all components of the project and provide the client updates along the way. For example, remember to track all time spent on the project; if billing is by the hour, make sure to send the client updates.

No client wants to be surprised by a large bill due to miscommunication of time spent working on the project. Keep the client abreast of the time it is taking to move the project forward, by communicating with them, it allows them the opportunity to make adjustments if necessary and will help to avoid any payment issues on the back end.

Also track as much of the client communication as you can too. A good system keeps track of every communication with the client and solves the “didn’t you get my email?” problem. An overall tracking strategy also allows you the freedom to provide feedback to the client on a moment’s notice. If they have questions as to the amount of time, the cost, or the overall efficiency of the project, it will be easy to provide them a quick response addressing all of their concerns.

9) LET IT ROLL OFF YOUR BACK

The business world can be tough. With the best team leading a project, the best efforts in place and the best outcome resulting, there are still going to be situations where it just isn’t good enough for someone. Even with all the best efforts put forward, inevitably a client will ask for a report to be worded a certain way or for a logo to be in neon yellow and orange.

Provide them a professional opinion of what better, however remember at the end of the day (and budget) it is their project and as discussed earlier, ‘the customer is always right” Criticism is bound to happen at all levels of the project, from the client to internal meetings, try not to take it personally and think of criticism as an objective opportunity to make the project better. The more often criticism is presented; the easier it will be to keep it in check, remember its importance and to use it as a tool to move forward.

10) CUSTOMER SERVICE | CUSTOMER SERVICE | CUSTOMER SERVICE

If as if they say, ‘location, location, location’ are the three most important variables in deciding where to start a business, then ‘customer service, customer service, customer service’ are the three most important to keeping it up and running. Communication is the core component to providing top notch customer service. From the moment a prospect calls with an inquiry into the services provided to thank you notes, communicating is the best customer service approach to let the client know they matter are appreciated.

One of the most important customer service skills is the ability to understand and effectively respond to the customer’s needs and concerns. Excellent customer service starts by first taking the time to get to know the customer, his situation, his vision, his frustrations and his goals. Providing great customer service is not difficult nor does it require a lot of effort.

What good customer service requires is a belief in the philosophy that the business is dependent on the client, and in turn will work to make sure the clients needs are the most important thing. Clients want to work with those businesses who demonstrate a sincere desire to help them with anything they need, and they are willing to pay for it. Yes, they want products to work and services that meet their needs. More importantly though, they want someone to care when something goes wrong.

Final Thoughts

In Web Design and Development, projects should have a collaborative feel to them. Meaning, it’s important that you and your client are on the same page working to complete a project. But the client has to be willing to communicate as well. It can’t all be the freelancer. Way too many times Freelance Web Professionals are overly criticized by their clients. And many times this criticism has more to do with the ignorance and arrogance of the client, not the freelancer. Nevertheless, it’s important to do your best in communicating and being open with your client. And these 10 steps will help you tremendously. Much thanks to Vera for this fantastic article! Keep up the great writing Vera!

Some of you may be running the popular podcasting plugin for Wordpress called Podpress. If you are and you are also running the new version of Wordpress 2.6 than chances are your Podpress plugin is not working at all for you. The problem is happening with Podpress and the new Revisions feature in Wordpress. Most people, including myself are the only author of our blogs. So the revision feature is useless to us. However the Podpress feature is very important. So what you need to do is turn off your Revisinons feature by placing the following code in your wp-config.php file:

define(’WP_POST_REVISIONS’, false);

This will eliminate the problem your Wordpress installation is having with the Podpress plugin. So now you can go ahead and write new posts with Podcasts as usual with no interruption.

The Open Source Magento Ecommerce system has just come out with a new production version of 1.1! This new version has some new advacements/features that are very interesting. Check it out.

More product-types

With Magento 1.1 you can now create a few new product types. Bundles most commonly used in the “built to order” product model. And Virtual Products - products that don’t require shipping information.

More ways to configure products

  • Custom Product Options - allow merchants to designate a SKU to a base item and add attributes instead of having to create a unique SKU for every combination of options (simple products).
  • Personalized Products - a new product configuration feature in Magento 1.1 that allows customers to personalize products by adding images or text, such as embroideries, engravings, etc.

Integrate with any application via Web Services

Magento 1.1 features a new Webservices API with methods for easy integration between Magento’s Catalog, Customer and Sales modules and any third party application. This appears to be something similar to what Drupal has with their “Drupal API”.

Speeding up the process(ing)

One of the main goals for Magento 1.1 was to examine bottlenecks in the
platform and improve performance. In the production release of Magento
1.1 performance was improved by as much as 40% in the catalog and sales
modules, and by optimizing when and how data loads, responsiveness of
the Admin UI was also increased significantly. This is an important one. One of the downfalls of the previous versions of Magento were all the complaints about how slow it was. Hopefully this actually translates into some faster page loading.

If you’re not sure what Magento is you can read an article I wrote a few weeks back titled “What Open Source Shopping Cart Should I Use?” where I talked about Magento and some of it’s features and benefits.

As an accumulation of research over the past couple of weeks, I have come across 6 Wordpress Plugins each one totally different from the next that you might find helpful in a project of yours or maybe even on your own Wordpress blog.

1. Full Registration Form

With this plugin you add the fields ‘First Name’, ‘Last Name’, ‘Nickname’, ‘Description’, ‘Website’ to your registration form. By default, the wp-register.php file that allows your readers to register as a user to your blog only asks for Username and Email. You can of course use this to get a little more information about your users.

2. Side Content

This plugin provides similar functionality to the Drupal Side Content module. It enables you to define a set of widgets which are effectively placeholders. Each one is empty until you assign content to it when editing a page. This enables you to effectively extend the content of the page into the sidebar. Suppose, for example, you have a set of pages about people in your company. You could use a side content widget to add a biography for each of them, or a photo, or to list their favorite pizza toppings. You can use the plugin without any template changes at all, but it does provide a simple API so you can test for the presence of side content widgets and adjust your templates accordingly.

3. WP-LinkChanger

WP-LinkChanger is a small script for affiliate link masking. That means all of your affiliate links in a post will automatically be changed to an internal file. After installation all links of your new posts will look like http://your.domain.tld/exit.php instead of http://evil.affiliatelink.com/ref/id/123

4. Email Commenters

Sometimes you want an easy way to e-mail all the people who commented on a certain post. Up till now that took a bit of work, now it’s as easy as installing this plugin, and clicking the link you’ll get underneath each post labeled “Mail the commenters on this post”!

5. WordPress MU Sitewide Tags Pages

This plugin creates a new blog on your WordPress MU system for all the posts on your site, much like http://wordpress.com/tags/ For performance reasons the number of posts is limited to a user configurable amount, and the blog itself can be made indexable by search engines or not.

6. WP Super Cache

This plugin generates static html files from your dynamic WordPress blog. After a html file is generated your webserver will serve that file instead of processing the comparatively heavier and more expensive WordPress PHP scripts. However, because a user’s details are displayed in the comment form after they leave a comment, the plugin will only serve static html files to:

  1. Users who are not logged in.
  2. Users who have not left a comment on your blog.
  3. Or users who have not viewed a password protected post.

This plugin should help your server cope with a front page appearance on digg.com or other social networking site.

Slideshow 2 is an open source Mootools slideshow class for streaming and animating the presentation of images. It’s definitely one of the better looking slideshow’s out there. A very impressive look is given to your images in a much more professional manner. Here’s a screenshot of what it looks like (without mootools of course)

You can choose from a variety of different effects of course which gives you some good flexibility on how you want it to end up looking. The cool thing is that you can input your slideshow via HTML with one simple line of code. The example they give is this:

new Slideshow('show', ['1.jpg', '2.jpg', '3.jpg'], { controller: true, hu: ‘images/’ });

Here are the features as listed in the blog article that featured this tool from webresourcesdepot.com:

  • Dynamic resizing - Slideshow can accommodate any size presentation.
  • Thumbnails - intelligent, auto-scrolling, tracking, etc.
  • Full-featured controller - completely style-able with CSS.
  • Animated captions - plain text or formatted with HTML.
  • Fully accessible - Slideshow can be controlled with access keys.
  • Automagic slideshows - create slideshows from existing HTML images.
  • Varied hyperlinking options - allows for mashups with Lightbox, Slimbox, etc.
  • CSS slide transitions - designed in stylesheets, not javascript,
    allow for an infinite combination of effects (plus support for all
    Robert Penner transitions)
    .
  • Unobtrusive and degradable - Slideshow even functions with Javascript turned off!

So if you are looking for a cool javascript slideshow to add some spice to your website then try this one out. There is some good documentation to help you along the way in customizing it to fit your needs. Enjoy!

Okay, so I spent some serious time this weekend researching, testing, and researching some more to find 10 really good Commerce/Advertising related Modules for Drupal. Needless to say I found some really fantastic stuff that I think will be extremely helpful for you!

A Referral Credit System for Users

1. User Referral
This module provides users with the ability to refer other users to a site they are registered at. When the new users registers, the referral is recorded. Users can see a list of users they referred, and the site admin can view more detailed reports. The module works by displaying a referral link (such as referral/123) in the user’s page. When a non-registered visitor clicks on this link, and then registers to the site, the referring user’s ID is recorded
in the database.

If the Adsense module is installed and Revenue sharing is enabled, then the referral is used to share the revenue between the referring user and the referred user.

Sell “TextLinkAds” on Your Website

2. TextLinkAds.com Integration
Simplified setup right on your site. All you need is your Website XML Key from Text-Link-Ads.com and you’re ready to start publishing ads. A built-in tool to customize the looks of the ads, including borders, background color, link color and font size. Access to your publisher statistics from within your website. See your site details, including how much money you’ve earned and how many links are being served. Cron-based updates of your ads. The ad links are kept up to date via Drupal’s cron functionality.

Tell a Friend Tool

3. Tell a Friend
Module creates a “Tell a Friend” page that allows page viewers to send form e-mails about the site to their friends.

Integrate Drupal with SugarCRM

4. SugarCRM Webform Integration
Adds capabilities to webform to facilitate submitting a form to SugarCRM to capture leads. The module adds configuration fields to editing the webform, and constrains the field keys on the form to parameters that the SugarCRM lead captures script (leadCapture.php) is able to process.

Paid Listings on your Drupal Website

5. Pay2Publish
Pay2Publish lets users publish basic versions of listings (nodes) for free, and later be able to pay to “upgrade” them to custom Levels (categories) to add more visibility (Views plays) and/or show more information (CCK fields). set up different “Levels” with different costs and properties (Silver, Gold, Platinum style). Each level will have its corresponding taxonomy (category) term. to upgrade a node, the user will have to buy the desired “Level” and assign it to one of his published nodes. The corresponding taxonomy term will be assigned to the desired node.

Sell Content Pages on Your Site

6. PayPal Node
Use PayPal to charge users to post a specified content-type. Costs are calculated based on combinations of taxonomy terms. Nodes can be set to expire (become unpublished) after a specified number of days. Use this module to create a custom classified advert system, or charge for hosting any content that users might categorise.

Click Thru Tracking & Reporting

7. Click Thru Tracking
This module provides the ability for site admins to track clicks on their site such as advertising campaigns and newsletter click throughs. The clicks are organized into groups, so ad campaigns can be tracked if they involve more than one node.

Your Own Affiliate Program

8. Affiliate
This module allows site owners to issue affiliate links to their partners. When anonymous users follow these links, the clicks are counted by affiliate, day, and optional keyword. When referred users sign up for an account, the account is associated with that affiliate.

Ad Management & Tracking

9. Advertisement
The ad module is a powerful advertising system for Drupal-powered websites. It supports the random display and tracking of graphical (banner) and text ads. Ads can easily be displayed in themes, blocks, or embedded in site content. The module records comprehensive statistics about when and how often ads are viewed and clicked, including a plug-in module for generating graphical time-based reports. Ads can be assigned to multiple owners, each of which can be assigned their own set of permissions. Installation is simple by design. An API is provided allowing the development of additional functionality and integration with other Drupal modules.

Product Feeds from Commission Junction/Linkshare

10. Affiliate Products Shop
This module targets the users who want to use affiliate products on their drupal sites. The module facilitates affiliate products feeds transfer from http://www.commissionjunction.com/ and http://www.linkshare.com/. You just have to fill information that the above sites provides and the system will bring the products links to your site in a fully categorized and alphabetically sorted fashion in terms of different merchants. The module also provides the facility to edit these feeds once in your database.