Imagination is our power

Archive for November, 2010

Relationships at work

Article By Times of India : Ahmedabad Mirror

In an office set-up it is essential not to get too personal with your co-workers, and yet not be the snob isolated from the rest, suggests Reneta Kripalani

It’s a typical Monday morning. You’ve snoozed your alarm for those “extra” minutes of sleep, until you realise you are late for that important meeting at work! You reach work, the meeting is half-way through, your boss isn’t happy, the client is snappy as always, he wants a detailed presentation by tomorrow, which means late hours today…what a ‘kick’ start to the week! It’s nearing lunch and another client just demands your attention… this juggling act makes you want to scream loud! Your co-worker in the next cubicle smiles, his smile reflects his understanding for your woes. No time for a meal, you grab a quick bite for lunch, sharing those loud laughs with your colleagues. Your evening cuppa coffee with a close associate is rejuvenating. The workload seems to get lighter, and you are glad a few others are working late as well, and you are willing to join them for dinner post work hours.
The week goes by on a similar note. When you pause to think, you realise the amount of time you spend with your colleagues 365 days of the year. Maybe it is even more than what you spend with your group of friends or family. Gradually, they begin to don the role of a friend, mentor, family member, or even a lover! Is this a boon or a bane? Is it important to be friendly, should this scenario be avoided, should you keep your ‘distance’ from your colleague? The answer is tricky.

So what makes you bond with a colleague? Constant interaction, working for a ‘common cause’, the amount of time spent with each other in a day, the reasons are innumerable. Similar likes and dislikes top the list. As Esther Caszo, who works with a television production house puts it, “At work, there may be people from the same background, course, age, or have similar personalities and opinions. Thus, automatically you tend to get close to them.” She also feels it’s a matter of convenience. “If your vibes gel”, she adds, “it becomes convenient to share your joys and sorrows with your workplace fellows since you’re with them for a greater part of the day. You may catch a movie with them post work, since most of your other friends may be caught up with their work in different parts of the city.”
Devnidhi Bajoria, an advertising professional, feels it’s the “common enemy” which could bring people together at work. “There are times when a bad boss can make you bond with your team members, a result of sharing common grievances.” Media professional Ruhail Amin is quick to add, “Due to the long work hours, you tend to look for a support system at work. It’s natural to get friendly with your co-workers. When you work as a team, team spirit also tends to bring you closer.”
Girish Chandran, an event manager, quips “At one of my former workplaces, regular parties were arranged to ensure you know all your colleagues. Most of the time, you get to know the real person only after 6:30pm.”

Some relationships at work however, may not be as unconditional as they seem. Kundan Shah, a software engineer, illustrates, “You have to maintain cordial relations with everyone at work. Be it your boss, who may not be your best friend, but is responsible for your promotion, or with your colleagues, who you need to coordinate with on a daily basis, whether you like it or not. Your personal preference has no space.”
Mona Budhrani, a costume designer for films, exhorts, “Sometimes people try to be over-friendly. This can happen either because you’re at an influential position at work, or the other needs to get some work out of you.”
As in case of Kavya Krishnan, a financial expert, “When my team member, who was a close friend, started to date her boyfriend, she would frequently ask me to do her favours so that she could leave early. She assumed I would ‘understand’. However with time, I started getting extremely annoyed which began to affect our relationship.”
Thus, this interaction or bond is inevitable. It can do wonders, but also prove to be a hazard if not handled in the right way. We explore the nuances:

Good relations with colleagues enhance your work-relationship with them, making it easier for you to work whatever be the nature of the project.
An office buddy can make the otherwise dull atmosphere fun and ease the routine stress. Who better to identify with your despair at work than someone who has “been there, done that!” They can also be one of the reasons motivating you to head to work each day, and put in that extra bit.
The mentoring boss can help you grow professionally, with his experience in the field speaking volumes. His motivation can keep the tempo high, especially at times when you’re running low on energy. His rightly pointed out areas of improvement can help you chart a successful career path. Office camaraderie can also help teach you the ‘tricks of the trade’, like understanding how to tackle your boss better, which may be useful to climb the ladder.
Most organisations are eager to see their employees grow not only professionally, but also personally. This development only comes about with interpersonal relations with co-workers.

Getting very friendly with a co-worker may result in spending too much time in the canteen, or the constant chatter at work can divert you from your focus. This can also give people the impression that either you are too frivolous, or not much interested in work
Sometimes people try to get friendly with you with a hidden agenda if you are at an influential position at work. Such a situation can make the other person think he’s being “used” generating feelings of animosity.
A colleague can consciously or unconsciously take you for granted.
The friendship can bring emotional baggage with it, affecting work. You tend to get very edgy when a friend at work, who may be a senior or your boss, criticizes you. This can hamper your self-esteem as well. The same could apply to a boss or colleague who would have to address a subordinate, whose performance is not up to the mark
Breaking up with a co-worker with whom you have shared a friendship which has been more than platonic can be draining. It would not only be impossible to avoid the individual, but you may have to bear it up for the sake of your work, making you feel worse.

Thus, relationships at work can add that zing to your day, push you to work harder, and have the potential to develop into life-long relationships. However, you can be in a catch-22 situation if things go wrong.
What is then, the key to maintaining relationships at work? “It’s important to be real! Faking a personality can make people dislike you, jeopardising your relationships, and work in-turn,” maintains Kavya. Sumir Nair, an assistant editor for films, feels one should take the relationship slowly before getting too friendly or close to a colleague. “Man is a social animal and is bound to make friends be it at work or otherwise. Thus, I feel you should get to know the person first, giving the relationship time to grow and breathe. Everyone is different and peculiar in their own way. So accept it first, before treading too fast. This will help avoid complications at a later stage.”
Open communication is a great way to foster healthy relationships. “Whatever be the issue, you need to address it with maturity and put your personal differences aside at the time of work. Everywhere there will be people who you may not like, or who do not like you, but you must not forget that you can’t choose the people you work with,” says Ruhail. “If things are not working out with a colleague, you must make an effort to resolve it as soon as possible, and keep the egos aside.”
It’s important to put your foot down when required. “My work is of utmost priority, and if people make mistakes, it doesn’t matter who you are to me, I shall address the issue in the same way and at no cost let my work suffer,” Kundan concludes stating a balance is essential. This attitude can help you in the long run. A few close friends at work are great, but getting too involved can get messy if you are the emotional kinds!

Whatever your relationships are at work, you must not forget at any point in time that you are at work for a purpose and to be useful. You have come there to get job satisfaction, monetary returns and, most importantly, professional growth. It is important to first know yourself, understand your office ethics and environment and then manage your relationships effectively.

10 things you should know about managing IT projects

#1: Get professional

IT projects historically have a negative reputation for being over budget, late, and poorly implemented. Having a professional individual in charge of the project can add great organization and credibility to your efforts. If your project is of a size where a project manager role can be used, go for it.

Working with a Project Management Institute (PMP)-certified individual will greatly enhance the effectiveness of your software projects. The PMP is also a good benchmark across all project management disciplines and is a big credibility booster when a project integrates with non-IT individuals, external customers, business partners, or part of a larger project.

#2: Identify the leadership roles

Having individuals responsible for specifics metrics of the project is important. This should be done in a way that puts capable individuals in roles that are best suited for their talents but that doesn’t overwhelm individual team members. IT projects often put too much emphasis on the technical contributions of a small number of individuals — or even just one person — and effectiveness is limited when these resources are maximized during the project cycle.

You should also ensure that individuals in charge of specific areas of the project do not hoard responsibility. For example, a person or small group may make great contributions to the progress of the project in regard to overall systems performance, not using so much time for the project (when working from a fixed-price/hours amount project), and getting finished ahead of schedule. But these efficiencies may come at the price of this individual or group not updating project documentation or ensuring revision control with authoritative instances of documents or code and possibly missing “the little things” in the project.

Individuals with leadership roles within the project can ensure that the project follow-through is done according to the required standards. Examples of this include roles such as Technical Lead, Project Lead, or Documentation Lead. These leadership roles can provide checks and balances in the event that a person becomes reassigned unexpectedly or leaves the organization. The continuity chain can be made stronger by tighter integration across individuals for progress points and ensuring the administrative follow-through of the project.

#3: Focus on scope management

Scope management is one of the most important aspects of IT projects, and it’s the team’s responsibility to make sure that any scope changes are introduced in the correct forum. The project process should include procedures for making a scope change proposal.

It’s also important to ensure that the official mechanism for project documentation maintains robust revision control, because scope can change functionality requirements and thus change the documentation that accompanies a project. In the event that a scope change is backed out, proper revision control will ensure that the original functional levels are available from a documentation standpoint.

Real-world example

We solicited feedback from Bill Reits, a certified PMP at Siemens Logistics and Assembly Systems for some comments on scope management. He said that one of the most common and troublesome scope problems within IT projects is Gold Plating.

Gold Plating is adding undefined features to a project that were not within the agreed scope of the project. It’s common in the software industry because programmers, software engineers, and IT pros decide on their own to add “cool features” that they determined would be fun to code, tools, or other benefits to the implementation project or customer’s deliverable system. Although the intentions are often well meaning, Gold Plating can have the following costly consequences:

  • The individual can underestimate the effort, get caught up in developing or showcasing unnecessary features, and end up taking a great deal of time that was not budgeted at the expense of deliverable requirements.
  • Because the task was not planned, it often affects other areas of the project that were not considered. This can be negative performance impacts, unclear training materials that differ from practice, or other methods.
  • If the tasks introduce a nonconformance (a.k.a. software bug), a great deal of warranty effort can be expended correcting something that was never within the scope of the project.
  • When an individual adds a “feature” that was not in the scope of the project, additional work from other team members can be required. For example, the feature must be added to the master documentation, the functional specification, the operators manual, the unit test plans, the integration test plans, the acceptance test plans, the traceability matrix, etc. It should be obvious that one small easy-to-code feature can add many hours to a project.
  • It may be possible, that the added feature is not desired by the customer, resulting in time and effort to remove it and in customer dissatisfaction. For instance, a “slick feature” may be added to a banking application that is against government regulations or bank policy.

#4: Create the project definition or charter

Having the project clearly defined can pave the way for all subsequent aspects of the project to be implemented correctly. A well-defined project definition and corresponding processes gives the project a strong foundation.

The project definition will define an agreed-upon performance baseline, costs, efforts required, expected functionality, implementation requirements, and customer requirements, and it identifies the individuals and organizations involved in the project. Project definitions that include specific technology details on how a task is to be accomplished will benefit all stakeholders of the project.

Real-world example

One TechRepublic member was implementing a project whose initial project definition referenced communication between two systems as the following:

“The host system automatically will send the order system the order information over the network using a standard interface.”

This language spells trouble, since it could mean so many things: An EDI transaction, an FTP exchange between the two systems, two custom socket interfaces exchanging a messaging formats, an XML file, connectivity through a standard product like MQ series, SQL database replication, or any other number of ways of two systems exchanging data.

#5: Identify the risks

IT projects can incur risk in unique ways, as IT projects make frequent use of vendors, consultants, and contractors. For example, if your organization contracts Acme IT Services to assist your IT staff in its upcoming Active Directory and Windows 2000 Professional to Windows XP Professional client migration, you may face the risk that Acme IT Services could go out of business, get a “more important” client, or do an inferior job.

Each element of risk — resources, schedule, performance, cost, etc. — should have assessments performed. These tasks are usually delegated to the project manager or individual most closely associated with that role. Periodic risk assessments and tracking are due diligence of the project process. Risks manifesting themselves in the project cycle should have recourses as well. For example, if Acme IT Services leaves your project for another client, ensure that there are recourses to working with this agency.

#6: Manage relationships with external parties

IT projects will almost always have some level of involvement with external parties. These parties can be:

  • Consultants
  • Business partners
  • Service providers
  • Vendors
  • Software publishers<
  • Equipment manufacturers

Having external parties involved in the project will add resources and ability to the appropriate deliverable of the project. However, ensure that each organization’s role and need is clear. The project plan should identify an individual to be in charge of administering the relationship and availability of external parties. If your organization executes many projects at once, this individual may perform this function for all active projects.

#7: Maintain strong documentation standards

Documentation is the key to a successful IT project, especially when changes need to be made after implementation. Ensure that your organization has clearly defined documentation expectations as well as standardized repositories for various types of documentation. Revision control mechanisms are also important if custom development is being performed.

In addition, it makes sense to have documentation that defines the documentation requirements. That may seem like overkill, but as a project scales in complexity, this becomes more valuable to the success of the project implementation and manageability.

Strong documentation standards offer the following benefits to IT projects:

  • New team members can assimilate more easily.
  • Future work related to this effort are more easily started.
  • Functionality changes are easier to stage or test.

#8: Build effective communication channels

Project management should coordinate clear communications. E-mail seems to be the preferred mechanism for this, but it can easily become overwhelming and inefficient. One popular good practice is to identify specific individual(s) when a response is required. By using the TO: and CC: fields appropriately, you can avoid unclear messages about who needs to do what. Figure A shows an example of an e-mail communication that outlines specific responsibilities.

Figure A

This e-mail message clearly identifies that its target is William. If there are any issues with the topics presented, it is the primary responsibility of William to raise them. The other members are presented with an opportunity to raise concerns and to share them with the selected distribution.

Little habits can add great effectiveness to the communication patterns, especially when involving external parties. For instance, in the example above, members from each organization are grouped to give clarity to distribution. How many e-mail messages have you received where you aren’t even sure whether you’re being addressed, much less whom you should reply to?

Also make it a priority to communicate the schedule (and its changes), status reports, scope topics, and new issues that arise in the project process. Clear, concise, and targeted communications are all positive habits for IT projects.

#9: Keep an eye on costs

The closer you are to the technology, the less pleasant the topic of cost becomes. Nevertheless, cost is among the most important aspects of the project process. Each project member should be aware of the costs associated with his or her aspects of the project. This also becomes important if it’s determined that the scope of a project should be changed. For example, consider the following technology scenarios:

  • A new version of a critical software component is released.
  • A security risk for a software component is discovered.
  • Newer or faster computer equipment is required or desired.

Scope change can address these topics, but there may be dependency scope changes that go with them, which can greatly increment the costs involved. Licensing, space concerns, “lost licensing” or unused equipment and software, and rework or lost time all can add to the cost of scope change.

Fear of the price impact should not deter scope change, but it’s an element the project team must keep in mind.

#10: Don’t forget the closeout

Once the deliverables of the project have been met and all appropriate signoffs have been obtained, exert the same effort to correctly close the project. Depending on your project type and scope, the project’s closeout and post-mortem are important to ensure that all project members have executed their required steps and that the customer (internal or external) is satisfied with the project results.

Depending on the scope and nature of the IT project, the closeout may be a required step to take the project (or customer) to “support mode.” Project turnovers, closeouts, and other mechanisms to prepare the project for ongoing life are important to ensure that all the ends are in place so that when this topic arises again, there is a good reference point on the details of the project.

Use this process to estimate a project’s effort hours

There are three early estimates that are needed for a project: effort, duration, and cost. Of the three, you must estimate effort hours first. Once you understand the effort that’s required, you can assign resources to determine how long the project will take (duration), and then you can estimate labor and non-labor costs.

Use the following process to estimate the total effort required for your project:

  1. Determine how accurate your estimate needs to be. Typically, the more accurate the estimate, the more detail is needed, and the more time that is needed. If you are asked for a rough order of magnitude (ROM) estimate (-25% – +75%), you might be able to complete the work quickly, at a high-level, and with a minimum amount of detail. On the other hand, if you must provide an accurate estimate within 10%, you might need to spend quite a bit more time and understand the work at a low level of detail.
  2. Create the initial estimate of effort hours for each activity and for the entire project. There are many techniques you can use to estimate effort including task decomposition (Work Breakdown Structure), expert opinion, analogy, Pert, etc.
  3. Add specialist resource hours. Make sure you include hours for part-time and specialty resources. For instance, this could include freelance people, training specialists, procurement, legal, administrative, etc.
  4. Consider rework (optional). In a perfect world, all project deliverables would be correct the first time. On real projects, that usually is not the case. Workplans that do not consider rework can easily end up underestimating the total effort involved with completing deliverables.
  5. Add project management time. This is the effort required to successfully and proactively manage a project. In general, add 15% of the effort hours for project management. For instance, if a project estimate is 12,000 hours (7 – 8 people), a full-time project manager (1,800 hours) is needed. If the project estimate is 1,000 hours, the project management time would be 150 hours.
  6. Add contingency hours. Contingency is used to reflect the uncertainty or risk associated with the estimate. If you’re asked to estimate work that is not well defined, you may add 50%, 75%, or more to reflect the uncertainty. If you have done this project many times before, perhaps your contingency would be very small — perhaps 5%.
  7. Calculate the total effort by adding up all the detailed work components.
  8. Review and adjust as necessary. Sometimes when you add up all the components, the estimate seems obviously high or low. If your estimate doesn’t look right, go back and make adjustments to your estimating assumptions to better reflect reality. I call this being able to take some initial pushback from your manager and sponsor. If your sponsor thinks the estimate is too high, and you don’t feel comfortable to defend it, you have more work to do on the estimate. Make sure it seems reasonable to you and that you are prepared to defend it.
  9. Document all assumptions. You will never know all the details of a project for certain. Therefore, it is important to document all the assumptions you are making along with the estimate.

This type of disciplined approach to estimating will help you to create as accurate an estimate as possible given the time and resources available to you.

10 ways to trim your IT budget

#1: Put off unnecessary upgrades

If your IT department is in the habit of automatically upgrading to the latest version of the operating system as soon as it comes out (or as soon as the first service pack is released, or any other arbitrary timeline), rethink that strategy. Do you really need the new features offered by the new OS? Will those features actually increase productivity, solve some problem with the current software, or otherwise save you money? If not, maybe you can get along just fine without upgrading for another year or so.

Remember that upgrading the operating system doesn’t just require the money for those licenses, but also often requires that you spend more money to upgrade the hardware to support the new OS. And there are indirect costs, such as the administrative overhead involved in the upgrade and end-user training.

The same thing goes for productivity applications, such as Office. Will you benefit from the new features or have you been just automatically upgrading every time a new version comes along? Many companies save money by upgrading only with every other new release. Of course, there may be good reasons to upgrade, but do a cost-benefits assessment first and be sure those reasons are sound.

#2: Don’t buy top of the line

Like it or not, hardware does eventually fail or become obsolete. When it comes time to purchase new computers — whether servers or desktop machines — you can save a lot of money by not buying the top-of-the-line product. When you buy the fastest processor on the market, for example, you pay a big premium. The processor that’s one step down may be considerably less. And one thing you can count on in the IT industry is that the top-of-the-line model won’t stay in that lofty position for long. In a few months, a new, faster model will come out and the price of that expensive piece of equipment will drop like a rock.

Of course, you don’t want to go cheap by buying the oldest, slowest systems available, either. The best value usually comes one or two steps below the top-of-the-line model. For example, at the time of this writing, a Dell Optiplex 755 with a 2.40 GHz Core 2 quad processor costs $320 less than the same model with a 2.66 GHz Core 2 quad, yet the difference in performance will hardly be noticeable. And when you start buying dozens or hundreds of workstations for a business, that $320 difference can add up fast.

#3: Consolidate servers

Server virtualization is all the rage now, and there’s a good reason: Consolidating multiple physical servers on one (or fewer) machines, using virtualization technologies such as Microsoft Virtual Server, VMWare ESX Server, or (coming soon) Windows Server 2008’s Hyper-V, can save money on hardware costs, power and cooling costs, and administrative workload.

Dedicated servers are often underutilized, but combining server applications/roles on the same computer can become an administrative and security nightmare. With virtualization, each server role functions in a separate logical (virtual) machine that appears on the network with its own name, IP address, etc., but multiple logical machines run on the same hardware.

Server consolidation also cuts down on the amount of server room space you need, allowing you to save money on valuable office real estate.

#4: Virtualize applications

Server consolidation isn’t the only use of virtualization technology in today’s cost-conscious IT environment. Application virtualization using technologies such as Microsoft’s SoftGrid can save you money by reducing the administrative costs of installing, maintaining, and troubleshooting application software. Because the virtualized application is installed on the server instead of the clients, admins don’t have to deal with multiple installations of a program on different machines.

Application virtualization can also provide a way to protect the OS and other applications from software with bugs or glitches, reducing or eliminating expensive downtime. And because it uses fewer resources than separate virtual machines, less expensive hardware can be used.

#5: Use thin clients

Thin client computing is another way to cut hardware costs and allows you to provide users with a modern desktop while utilizing older or low-powered client machines. Windows Terminal Services in Windows Server 2003 and the soon-to-be released Windows Server 2008 can be deployed to allow users to access the full Windows desktop or selected applications on the terminal server over the LAN or Internet.

As with application virtualization, administration, maintenance, and troubleshooting of applications is centralized, saving administrative overhead. Programs can be deployed and updated more quickly, and less network bandwidth is used to access remote applications.

There are many approaches to thin client computing, including new “zero client” technology such as that offered by Pano Logic.

#6: Consider selective deployment of open source software

Open source software is often available free of charge, but may also come without warranties, formal training programs, or technical support. Updates may or may not occur. Some organizations have deployed open source operating systems and applications, only to return to commercial software due to these problems. Another disadvantage of some open source products for business use is lack of integration/interoperability with commercial software that may be in use by other departments, partners, customers, etc. Traditionally, open source programs have tended to require more technical expertise on the part of the users, although some open source software has become more user-friendly.

All that said, open source may have a place in your organization if deployed carefully and selectively. Open source (Linux/UNIX-based) server software may be appropriate for certain dedicated servers if you have IT personnel who have knowledge and expertise in the OS. Open source operating systems on the desktop may work fine for more technically savvy users. Open source applications such as Open Office that offer compatibility with the file formats of commercial applications might be the right choice for some users, especially those who only need to create documents occasionally and don’t need the advanced features of commercial programs such as Word.

A careful assessment of where open source software can and can’t be deployed in your organization without undue disruption and a steep learning curve can help you integrate it into your network in a way that saves money.

#7: Have fewer, smarter meetings

Meetings eat up a lot of time that could be better spent on more productive work. This is true across all organizations, and the IT department is usually no exception. You can cut down on meeting wastage by careful planning, having a set agenda and staying on-topic, and requiring only those who really need to be there to attend.

In many cases, the purpose of a meeting can be accomplished much more efficiently via e-mail or a telephone conference. Meetings at remote locations cost even more in travel time and expenses. If face-to-face communication is essential, you can use videoconferencing to save both time and money.

#8: Look at new training options

Training is often one of the first items to suffer when budgets have to be cut, but arbitrarily slashing all training dollars can end up costing the company more in the long run. It’s necessary for IT personnel to keep current on the technologies they deploy and administer; mistakes can result in expensive downtime or even loss of critical data.

When cutting training allocations, it’s important to have a plan for personnel to continue to maintain and update their knowledge and skills. There are a number of ways to save money on training. Instead of attending expensive offsite conferences that involve travel and per diem costs, you may be able to set up onsite training or utilize computer-based training and self-study programs to accomplish the same thing.

Encourage IT personnel to keep learning. If the company can no longer afford to pay all the expenses for employees to obtain industry certifications, for example, you may still be able to cover part of the expenses (such as the exam fee) and/or offer incentives — monetary and otherwise — to employees who complete the training on their own time.

#9: Replace dedicated WAN links with site-to-site VPN

If your business has multiple physical locations and you have dedicated leased lines connecting them, it might be time to think about ditching the expensive dedicated links and replacing them with site-to-site VPN connections instead. Midsize and large businesses may be able to save thousands of dollars on monthly fees by doing this.

Likewise, small businesses that are currently paying hundreds of dollars per month for a T-1 line should look into new Internet service options. In some areas, you can get a business FiOS line (with static multiple IP addresses) for less than half the cost of your T-1, and it provides up to 10 times the downstream bandwidth and twice the upstream.

#10: Outsource some services

Outsourcing is a sensitive subject. Many people, hearing the word, think only of personnel cuts and jobs going to foreign shores. But judicious outsourcing can allow you to better utilize the personnel you have and to more efficiently and cost-effectively run your IT operation, without entrusting your data to people half a world away.

For example, as your business grows and your need for more servers expands, you might find that it’s less expensive and less hassle to use a hosting service for your Web servers or e-mail, rather than buying more hardware and hiring more personnel. As with other money-saving measures, this is not a one-size-fits-all solution, and you should first assess your specific needs, compare prices, and do a cost/benefits analysis to determine whether outsourcing really is the most cost effective option in both the short and long run.

30 HTML Best Practices for Beginners

1: Always Close Your Tags

Back in the day, it wasn’t uncommon to see things like this:

  1. <li>Some text here.
  2. <li>Some new text here.
  3. <li>You get the idea.
<li>Some text here.
<li>Some new text here.
<li>You get the idea.

Notice how the wrapping UL/OL tag was omitted. Additionally, many chose to leave off the closing LI tags as well. By today’s standards, this is simply bad practice and should be 100% avoided. Always, always close your tags. Otherwise, you’ll encounter validation and glitch issues at every turn.


  1. <ul>
  2. <li>Some text here. </li>
  3. <li>Some new text here. </li>
  4. <li>You get the idea. </li>
  5. </ul>
  <li>Some text here. </li>
  <li>Some new text here. </li>
  <li>You get the idea. </li>

2: Declare the Correct DocType

Declare doctype

When I was younger, I participated quite a bit in CSS forums. Whenever a user had an issue, before we would look at their situation, they HAD to perform two things first:

  1. Validate the CSS file. Fix any necessary errors.
  2. Add a doctype.

“The DOCTYPE goes before the opening html tag at the top of the page and tells the browser whether the page contains HTML, XHTML, or a mix of both, so that it can correctly interpret the markup.”

Most of us choose between four different doctypes when creating new websites.

  1. <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN” “”>
  2. <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “”>
  3. <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “”>
  4. <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “”>

There’s a big debate currently going on about the correct choice here. At one point, it was considered to be best practice to use the XHTML Strict version. However, after some research, it was realized that most browsers revert back to regular HTML when interpretting it. For that reason, many have chosen to use HTML 4.01 Strict instead. The bottom line is that any of these will keep you in check. Do some research and make up your own mind.

3: Never Use Inline Styles

When you’re hard at work on your markup, sometimes it can be tempting to take the easy route and sneak in a bit of styling.

  1. <p style=”color: red;”>I’m going to make this text red so that it really stands out and makes people take notice! </p>
<p style="color: red;">I'm going to make this text red so that it really stands out and makes people take notice! </p>

Sure — it looks harmless enough. However, this points to an error in your coding practices.

    When creating your markup, don’t even think about the styling yet. You only begin adding styles once the page has been completely coded.

It’s like crossing the streams in Ghostbusters. It’s just not a good idea.
-Chris Coyier (in reference to something completely unrelated.)

Instead, finish your markup, and then reference that P tag from your external stylesheet.


  1. #someElement > p {
  2. color: red;
  3. }
#someElement > p {
  color: red;

4: Place all External CSS Files Within the Head Tag

Technically, you can place stylesheets anywhere you like. However, the HTML specification recommends that they be placed within the document HEAD tag. The primary benefit is that your pages will seemingly load faster.

While researching performance at Yahoo!, we discovered that moving stylesheets to the document HEAD makes pages appear to be loading faster. This is because putting stylesheets in the HEAD allows the page to render progressively.

  1. <head>
  2. <title>My Favorites Kinds of Corn</title>
  3. <link rel=”stylesheet” type=”text/css” media=”screen” href=”path/to/file.css” />
  4. <link rel=”stylesheet” type=”text/css” media=”screen” href=”path/to/anotherFile.css” />
  5. </head>
<title>My Favorites Kinds of Corn</title>
<link rel="stylesheet" type="text/css" media="screen" href="path/to/file.css" />
<link rel="stylesheet" type="text/css" media="screen" href="path/to/anotherFile.css" />

5: Consider Placing Javascript Files at the Bottom

Place JS at bottom

Remember — the primary goal is to make the page load as quickly as possible for the user. When loading a script, the browser can’t continue on until the entire file has been loaded. Thus, the user will have to wait longer before noticing any progress.

If you have JS files whose only purpose is to add functionality — for example, after a button is clicked — go ahead and place those files at the bottom, just before the closing body tag. This is absolutely a best practice.


  1. <p>And now you know my favorite kinds of corn. </p>
  2. <script type=”text/javascript” src=”path/to/file.js”></script>
  3. <script type=”text/javascript” src=”path/to/anotherFile.js”></script>
  4. </body>
  5. </html>
<p>And now you know my favorite kinds of corn. </p>
<script type="text/javascript" src="path/to/file.js"></script>
<script type="text/javascript" src="path/to/anotherFile.js"></script>

6: Never Use Inline Javascript. It’s not 1996!

Another common practice years ago was to place JS commands directly within tags. This was very common with simple image galleries. Essentially, a “onclick” attribute was appended to the tag. The value would then be equal to some JS procedure. Needless to say, you should never, ever do this. Instead, transfer this code to an external JS file and use “addEventListener/attachEvent” to “listen” for your desired event. Or, if using a framework like jQuery, just use the “click” method.

  1. $(‘a#moreCornInfoLink’).click(function() {
  2. alert(‘Want to learn more about corn?’);
  3. });
$('a#moreCornInfoLink').click(function() {
  alert('Want to learn more about corn?');

7: Validate Continuously

validate continuously

I recently blogged about how the idea of validation has been completely misconstrued by those who don’t completely understand its purpose. As I mention in the article, “validation should work for you, not against.”

However, especially when first getting started, I highly recommend that you download the Web Developer Toolbar and use the “Validate HTML” and “Validate CSS” options continuously. While CSS is a somewhat easy to language to learn, it can also make you tear your hair out. As you’ll find, many times, it’s your shabby markup that’s causing that strange whitespace issue on the page. Validate, validate, validate.

8: Download Firebug

download firebug

I can’t recommend this one enough. Firebug is, without doubt, the best plugin you’ll ever use when creating websites. Not only does it provide incredible Javascript debugging, but you’ll also learn how to pinpoint which elements are inheriting that extra padding that you were unaware of. Download it!

9: Use Firebug!

use firebug

From my experiences, many users only take advantage of about 20% of Firebug’s capabilities. You’re truly doing yourself a disservice. Take a couple hours and scour the web for every worthy tutorial you can find on the subject.


10: Keep Your Tag Names Lowercase

Technically, you can get away with capitalizing your tag names.

  1. <DIV>
  2. <P>Here’s an interesting fact about corn. </P>
  3. </DIV>
<P>Here's an interesting fact about corn. </P>

Having said that, please don’t. It serves no purpose and hurts my eyes — not to mention the fact that it reminds me of Microsoft Word’s html function!


  1. <div>
  2. <p>Here’s an interesting fact about corn. </p>
  3. </div>
<p>Here's an interesting fact about corn. </p>

11: Use H1 – H6 Tags

Admittedly, this is something I tend to slack on. It’s best practice to use all six of these tags. If I’m honest, I usually only implement the top four; but I’m working on it! :) For semantic and SEO reasons, force yourself to replace that P tag with an H6 when appropriate.

  1. <h1>This is a really important corn fact! </h1>
  2. <h6>Small, but still significant corn fact goes here. </h6>
<h1>This is a really important corn fact! </h1>
<h6>Small, but still significant corn fact goes here. </h6>

12: If Building a Blog, Save the H1 for the Article Title

h1 saved for title of article.

Just this morning, on Twitter, I asked our followers whether they felt it was smartest to place the H1 tag as the logo, or to instead use it as the article’s title. Around 80% of the returned tweets were in favor of the latter method.

As with anything, determine what’s best for your own website. However, if building a blog, I’d recommend that you save your H1 tags for your article title. For SEO purposes, this is a better practice – in my opinion.

13: Download ySlow

Especially in the last few years, the Yahoo team has been doing some really great work in our field. Not too long ago, they released an extension for Firebug called ySlow. When activated, it will analyze the given website and return a “report card” of sorts which details the areas where your site needs improvement. It can be a bit harsh, but it’s all for the greater good. I highly recommend it.

14: Wrap Navigation with an Unordered List

Wrap navigation with unordered lists

Each and every website has a navigation section of some sort. While you can definitely get away with formatting it like so:

  1. <div id=”nav”>
  2. <a href=”#”>Home </a>
  3. <a href=”#”>About </a>
  4. <a href=”#”>Contact </a>
  5. </div>
 <div id="nav">
  <a href="#">Home </a>
   <a href="#">About </a>
   <a href="#">Contact </a>

I’d encourage you not to use this method, for semantic reasons. Your job is to write the best possible code that you’re capable of.

Why would we style a list of navigation links with anything other than an unordered LIST?

The UL tag is meant to contain a list of items.


  1. <ul id=”nav”>
  2. <li><a href=”#”>Home</a></li>
  3. <li><a href=”#”>About</a></li>
  4. <li><a href=”#”>Contact</a></li>
  5. </ul>
<ul id="nav">
  <li><a href="#">Home</a></li>
  <li><a href="#">About</a></li>
  <li><a href="#">Contact</a></li>

15: Learn How to Target IE

You’ll undoubtedly find yourself screaming at IE during some point or another. It’s actually become a bonding experience for the community. When I read on Twitter how one of my buddies is battling the forces of IE, I just smile and think, “I know how you feel, pal.”

The first step, once you’ve completed your primary CSS file, is to create a unique “ie.css” file. You can then reference it only for IE by using the following code.

  1. <!–[if lt IE 7]>
  2. <link rel=”stylesheet” type=”text/css” media=”screen” href=”path/to/ie.css” />
  3. <![endif]–>
<!--[if lt IE 7]>
   <link rel="stylesheet" type="text/css" media="screen" href="path/to/ie.css" />

This code says, “If the user’s browser is Internet Explorer 6 or lower, import this stylesheet. Otherwise, do nothing.” If you need to compensate for IE7 as well, simply replace “lt” with “lte” (less than or equal to).

16: Choose a Great Code Editor

choose a great code editor

Whether you’re on Windows or a Mac, there are plenty of fantastic code editors that will work wonderfully for you. Personally, I have a Mac and PC side-by-side that I use throughout my day. As a result, I’ve developed a pretty good knowledge of what’s available. Here are my top choices/recommendations in order:

Mac Lovers

PC Lovers

17: Once the Website is Complete, Compress!


By zipping your CSS and Javascript files, you can reduce the size of each file by a substantial 25% or so. Please don’t bother doing this while still in development. However, once the site is, more-or-less, complete, utilize a few online compression programs to save yourself some bandwidth.

Javascript Compression Services

CSS Compression Services

18: Cut, Cut, Cut

cut cut cut

Looking back on my first website, I must have had a SEVERE case of divitis. Your natural instinct is to safely wrap each paragraph with a div, and then wrap it with one more div for good measure. As you’ll quickly learn, this is highly inefficient.

Once you’ve completed your markup, go over it two more times and find ways to reduce the number of elements on the page. Does that UL really need its own wrapping div? I think not.

Just as the key to writing is to “cut, cut, cut,” the same holds true for your markup.

19: All Images Require “Alt” Attributes

It’s easy to ignore the necessity for alt attributes within image tags. Nevertheless, it’s very important, for accessibility and validation reasons, that you take an extra moment to fill these sections in.


  1. <img src=”cornImage.jpg”  />
<IMG SRC="cornImage.jpg" />


  1. <img src=”cornImage.jpg” alt=”A corn field I visited.” />
<img src="cornImage.jpg" alt="A corn field I visited." />

20: Stay up Late

I highly doubt that I’m the only one who, at one point while learning, looked up and realized that I was in a pitch-dark room well into the early, early morning. If you’ve found yourself in a similar situation, rest assured that you’ve chosen the right field.

The amazing “AHHA” moments, at least for me, always occur late at night. This was the case when I first began to understand exactly what Javascript closures were. It’s a great feeling that you need to experience, if you haven’t already.

21: View Source

view source

What better way to learn HTML than to copy your heroes? Initially, we’re all copiers! Then slowly, you begin to develop your own styles/methods. So visit the websites of those you respect. How did they code this and that section? Learn and copy from them. We all did it, and you should too. (Don’t steal the design; just learn from the coding style.)

Notice any cool Javascript effects that you’d like to learn? It’s likely that he’s using a plugin to accomplish the effect. View the source and search the HEAD tag for the name of the script. Then Google it and implement it into your own site! Yay.

22: Style ALL Elements

This best practice is especially true when designing for clients. Just because you haven’t use a blockquote doesn’t mean that the client won’t. Never use ordered lists? That doesn’t mean he won’t! Do yourself a service and create a special page specifically to show off the styling of every element: ul, ol, p, h1-h6, blockquotes, etc.

23: Use Twitter

Use Twitter

Lately, I can’t turn on the TV without hearing a reference to Twitter; it’s really become rather obnoxious. I don’t have a desire to listen to Larry King advertise his Twitter account – which we all know he doesn’t manually update. Yay for assistants! Also, how many moms signed up for accounts after Oprah’s approval? We can only long for the day when it was just a few of us who were aware of the service and its “water cooler” potential.

Initially, the idea behind Twitter was to post “what you were doing.” Though this still holds true to a small extent, it’s become much more of a networking tool in our industry. If a web dev writer that I admire posts a link to an article he found interesting, you better believe that I’m going to check it out as well – and you should too! This is the reason why sites like Digg are quickly becoming more and more nervous.

24: Learn Photoshop

Learn Photoshop

In fact, Photoshop may very well become the more important tool you have. Once you’ve learned HTML and CSS, I would personally recommend that you then learn as many Photoshop techniques as possible.

25: Learn Each HTML Tag

There are literally dozens of HTML tags that you won’t come across every day. Nevertheless, that doesn’t mean you shouldn’t learn them! Are you familiar with the “abbr” tag? What about “cite”? These two alone deserve a spot in your tool-chest. Learn all of them!

By the way, in case you’re unfamiliar with the two listed above:

  • abbr does pretty much what you’d expect. It refers to an abbreviation. “Blvd” could be wrapped in a <abbr> tag because it’s an abbreviation for “boulevard”.
  • cite is used to reference the title of some work. For example, if you reference this article on your own blog, you could put “30 HTML Best Practices for Beginners” within a <cite> tag. Note that it shouldn’t be used to reference the author of a quote. This is a common misconception.

26: Participate in the Community

Just as sites like ours contributes greatly to further a web developer’s knowledge, you should too! Finally figured out how to float your elements correctly? Make a blog posting to teach others how. There will always be those with less experience than you. Not only will you be contributing to the community, but you’ll also teach yourself. Ever notice how you don’t truly understand something until you’re forced to teach it?

27: Use a CSS Reset

This is another area that’s been debated to death. CSS resets: to use or not to use; that is the question. If I were to offer my own personal advice, I’d 100% recommend that you create your own reset file. Begin by downloading a popular one, like Eric Meyer’s, and then slowly, as you learn more, begin to modify it into your own. If you don’t do this, you won’t truly understand why your list items are receiving that extra bit of padding when you didn’t specify it anywhere in your CSS file. Save yourself the anger and reset everything! This one should get you started.

  1. html, body, div, span,
  2. h1, h2, h3, h4, h5, h6, p, blockquote, pre,
  3. a, abbr, acronym, address, big, cite, code,
  4. img, ins, kbd, q, s, samp,
  5. small, strike, strong,
  6. dl, dt, dd, ol, ul, li,
  7. fieldset, form, label, legend,
  8. table, caption, tbody, tfoot, thead, tr, th, td {
  9. margin: 0;
  10. padding: 0;
  11. border: 0;
  12. outline: 0;
  13. font-size: 100%;
  14. vertical-align: baselinebaseline;
  15. background: transparent;
  16. }
  17. body {
  18. line-height: 1;
  19. }
  20. ol, ul {
  21. list-style: none;
  22. }
  23. blockquote, q {
  24. quotes: none;
  25. }
  26. blockquote:before, blockquote:after,
  27. q:before, q:after {
  28. content: ”;
  29. content: none;
  30. }
  31. table {
  32. border-collapse: collapse;
  33. border-spacing: 0;
  34. }
html, body, div, span,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
img, ins, kbd, q, s, samp,
small, strike, strong,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
body {
	line-height: 1;
ol, ul {
	list-style: none;
blockquote, q {
	quotes: none;
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;

table {
	border-collapse: collapse;
	border-spacing: 0;

28: Line ‘em Up!

Generally speaking, you should strive to line up your elements as best as possible. Take a look at you favorite designs. Did you notice how each heading, icon, paragraph, and logo lines up with something else on the page? Not doing this is one of the biggest signs of a beginner. Think of it this way: If I ask why you placed an element in that spot, you should be able to give me an exact reason.

29: Slice a PSD

Slice a PSD

Okay, so you’ve gained a solid grasp of HTML, CSS, and Photoshop. The next step is to convert your first PSD into a working website. Don’t worry; it’s not as tough as you might think. I can’t think of a better way to put your skills to the test. If you need assistance, review these in depth video tutorials that show you exactly how to get the job done.

  • Slice and Dice that PSD
  • From PSD to HTML/CSS

30: Don’t Use a Framework…Yet

Frameworks, whether they be for Javascript or CSS are fantastic; but please don’t use them when first getting started. Though it could be argued that jQuery and Javascript can be learned simultaneously, the same can’t be made for CSS. I’ve personally promoted the 960 CSS Framework, and use it often. Having said that, if you’re still in the process of learning CSS — meaning the first year — you’ll only make yourself more confused if you use one.

CSS frameworks are for experienced developers who want to save themselves a bit of time. They’re not for beginners.

Planning Web Page Navigation

Navigation is crucial to website success…

Without it working well, visitors will not move around the site, and information you want them to see will be left unseen. There are many different options available when designing a navigation system. Here, you will find an analysis of some of the options to see how they can help or hinder your website.

The first decision to be made is how the navigation panel will fit in with your website design. There are three basic options – horizontal, vertical or floating. Where a horizontal navigation bar is used, there will be a limit on sideways expansion options. Unless links to new pages are contained within a drop-down menu, horizontal navigation is very restrictive. Make sure you include a horizontal navigation bar towards the top of the page. If it is placed at the bottom it will not be obvious to all users, and this may present problems.

Vertical navigation bars

Vertical navigation bars are generally more common, and can be added to the right or left of a page. Most visitors expect it to appear on the left. The major benefit of vertical navigation is that it can in theory be extended indefinitely. This makes the system more flexible, and is the preferred option in websites where the content and structure is dynamic and subject to frequent change.

Floating navigation

Floating navigation is the placement of navigation panels anywhere else on the page, apart from the top or side. This needs to be justified by the overall page design, as it is unusual and could present problems to visitors.


Flash has been used for navigation in many websites where a hi-tech finish is required, and where style is of the essence. It provides excellent quality and freedom in adding animation to a navigation system. There are two main problems in using Flash for website navigation. Firstly, when viewed using Microsoft browsers it is necessary for the visitor to click on a flash button to activate it, and then click again to follow the link. This is a major problem where a large proportion of users may have minimal computing skills. The second problem is that few search engines can follow links or read text contained within Flash, and as a result search engine optimization benefits are reduced.


JavaScript has long been the technology of choice for website developers who want to use dynamic navigation bars that drop down or fold away. The drawback is the same as with Flash in that search engine spiders get lost in JavaScript. Search engine optimization in this situation is second to style considerations.

Image maps

Image maps provide excellent facilities to create a navigation bar without the shape being determined by the technology. Normally a navigation bar will consist of a vertical or horizontal row of buttons or links. With an image map, an image is used to provide a background prompt for navigation choices, and a series of ‘hot spots’ are defined in HTML to link these choices to other pages. The technique provides excellent flexibility in design, but again is hidden from search engine spiders.

Text hyperlinks

The best navigation option with regard to ease of use and being search engine friendly has to be text hyperlinks. The technology is simple and won’t let you down. There is some scope for effects if combined with a style sheet, and you will get immediate improvements in search engine optimization as the text links can be indexed.

When designing a website you want it to look good. Style must not be added at the expense of successful navigation. Whichever system you use remember that it has to work for visitors, it has to work for search engines, and it has to be expandable.

Top Tips for Becoming a More Efficient Designer

Most designers and creative professionals have lots and lots of projects going at the same time. One of the keys to being succesful is to do things effectively. The more you’re able to do, without loss of quality of course, the more projects you’re able to finish. This again will lead to more income, potentially more spare time, more clients and so on.

In this article we’ll have a look at a few great tips on how you can step it up and become more effective than you are today!


Do you keep wishing there were more hours in a day or that you didn’t have to work as much?
If you want to be succesful at what you do, it usually involves hard work. Still there’s a good chance that you can make some adjustments to become better. In some cases we just take on way too much work, which again leads to a situation with no room for a social life and so on.

Before you do anything else I suggest you analyze your situation to see if you’re in need of being more efficient or if you’re just taking on too much to make sure you’re not mixing things up.

Now, let’s have a closer look at some tips!

Up to date equipment and software

To be efficient you definitely need tools that work properly. This goes for everything from your computer and phone to virus protection and all sorts of software. If you need to spend a minute every now and then to restart your computer, click away various windows or just do things in complicated ways, you will lose a lot of time during weeks and months. Make a routine of checking everything once a month or so, and get problems solved as soon as they occur!

Know your software

Over and over again through the years, I’ve seen examples of designers being excellent creatives but not knowing their software well enough. You should always aim to get better with the software you’re using regularly. Watch tutorials, read magazines and play around with it to become more efficient. One brilliant example of this is something I’ve seen numerous times with Photoshop. The actions and scripts functions in Photoshop can be customized to do repetitive tasks for you very easily. This alone can save many designers hours on a weekly basis.

Stay away from social media during work hours

One of the biggest stealers of our attention these days are the number of social media available. Twitter, Facebook and so on, can be an excellent way for you to get in touch with new clients and other contacts. They have a big BUT though. Spending time on these during workhours can quickly take a lot more time than you first planned. Being hard on yourself on this point is the only way you’re guaranteed to see work. If you absolutely must be using social media while working, make sure to do so only at set times and monitor the use of time closely.

Take regular breaks and holidays

It has been proven that by taking regular breaks you will be more efficient. We all need to recharge the batteries, get some fresh air and move around a bit. This does not only prevent health issues, it also makes us more efficient. If you work too much over a long period of time you will get in trouble.

Practice “self-censorship”

Have you ever kept redoing a certain design to such a degree that you know you’re definitely overdoing it? By practicing you can get a lot better. Learn to stop when you’ve reached a good end result without working too much with redoing smaller details or feeling insecure. For many designers this is a huge issue and they ruin a lot of time this way. Try to learn to believe more in yourself and know when to stop.

Be undisturbed during work hours

If you’re a freelance designer or have a home office, you’re very likely to be disturbed easier than someone who has an office away from the home. Family members, pets or other tasks in the home can all be potential time-stealers. You have to be aware of this in order to prevent it.

Stop “doing everything else” when you’re at work

By being more focused you’ll save time. Some people tend to go out for personal errands during work hours, make private phone calls and so on. Once you’re able to completely eliminate this from your work hours you will free even more time for doing what you’re supposed to do.


Those were my tips on how you can become a more efficient designer. If you’re able to work with these specific points you will most likely notice a difference already after a week or two.

Finally we would love to hear your own tips in the comments, and any other feedback you may have to share with us.

How to Develop a Complete Internet Marketing Strategy

Many website owners concentrate on one or two aspects of Internet marketing and then leave the rest to chance. Unfortunately, there’s much more to marketing than what first meets the eye. A website should be treated the same as a brick-and-mortar store when it comes to promotions. If you were to open a shop locally, you wouldn’t put an ad in the newspaper and then neglect all other promotion efforts (sponsorship events, joint ventures, mailings, coupons, referrals, etc.). So why do this with your online business? Let’s study some ways to build a complete Internet marketing strategy that will skyrocket your business.

Sales Presentation

Make sure your site’s presentation is written to convert visitors to buyers. Don’t assume people will buy just because they visit your site. You must use Internet marketing sales techniques to convert them to buyers. Make ordering easy, with special offers they can’t refuse. Keep your copy clean and concise, and write on a white or very light-colored background for easy reading. Check to be sure your navigation system flows well, with no broken links or dead-end areas.

SEO Marketing

Use targeted keywords throughout your site pages, in outgoing and inbound text links, and in any written articles about your site. Then promote your site via the search engines (paid and free) as well as article directories, link directories, etc. Research to find keywords that are popular in the online searches, but low in competition for search results.

Opt-In Email Marketing

Build an opt-in list of subscribers that are interested in your website or products. You’ll be able to mail out an e-zine or an update email regularly and increase chances for sales. Many potential buyers will only make a purchase after they get to know you. Sending a free newsletter by email is the perfect way to build trust with visitors and to remind them of your site and what you have to offer. *Warning: Never use spam mail; send opt-in only to avoid being banned by your Internet service provider.

Link Building

Build links to and from well known sites and authoritative sites such as .edu and .gov websites. These will boost your search engine traffic and positioning while providing inbound traffic to your site. Don’t forget to target these sites carefully and make sure they are related to your theme. You can also build links from blogs, forums, article submission sites, social sites, etc.

Meet the Press

Be sure to write press releases about your new website and any time you can make an announcement-new products being added, new service, new website design, etc. Press releases provide a powerful way to get exposure. And when your release is published online, it will continue to get traffic while being linked back to your site.

Socialize and Blog

“Socialize” doesn’t mean to attend the next party you’re invited to, but it does mean to become familiar with all the social sites and blogs. DIGG, Delicious, Twitter, WordPress, LinkedIn and other social sites can help boost your traffic and build a professional reputation if you use them wisely. You can also create your own blog and invite others to post.

Off-Line Promotions

Don’t assume you’re off the hook with off-line promotions. Off-line venues can be used to drive traffic to your site. Include your website address on all printed invoices, envelopes, business checks, etc. Mail out sales letters and fliers to targeted lists periodically. Place newspaper classifieds with your website address and a simple special offer. Buy a car magnet with your Web address clearly printed in large lettering. Hand out and mail coupons to potential buyers.

Just one of these Internet marketing methods alone might not bring much response, but working all these areas together can result in amazing traffic and sales. Don’t neglect any of these areas if you want long-term success.

Tips on How to Code Web Designs Better

Writing semantic, efficient and valid HTML and CSS can be a time-intensive process that only gets better with experience. While it is important to take the time to produce high-quality code — as it is what separates professionals from hobbyists — it is equally important to produce websites as expeditiously and efficiently as possible.

As web designers, we’re always looking for ways to be more productive. Getting more work done in less time while at the same time maintaining (or improving) our products’ quality is a lifelong quest for many of us.


This article discusses a few fundamental techniques for writing high quality and efficient HTML and CSS.

Use Templates and Frameworks (Even If It’s Homemade)

Using templates and frameworks provides you with a solid baseline from which to start from. For example, CSS frameworks such as the 960 Grid System and Blueprint can save you time in having to write code for bulletproof web page layouts. The purpose of a framework is to reduce development time by avoiding having to repeatedly write cross-browser-tested code for each of your projects. However, take note: Using frameworks involves a learning curve and can bulk up your web page sizes with unnecessary style rules and markup.

Even something as simple as using this XHTML 1.0 strict template — a skeleton for your HTML documents — can be a time-saver.

XHTML 1.0 strict template

Whether you choose to use a premade framework or not, the notion you should take a note of is just how much code you end up writing over and over again. It’s imperative to discover these repetitive tasks so that you can come up with a system (a custom template/framework) to help you speed up your workflow.

Conform to XHTML 1.0 Strict Doctype

Writing under the Strict doctype forces you to produce smarter and specifications-conformant code. Strict doctype lowers your desire to use hacks, deprecated elements, proprietary code, and unconventional markup that in the future will give you grief and maintenance costs related to debugging and updating projects.

Conform to XHTML 1.0 Strict Doctype

Strict doctype also instructs web browsers to render your web pages under strict W3C specifications, which can reduce browser-specific bugs and thus lowering your development time.

Use Good and Consistent Naming Conventions

Always use consistent naming conventions for easier organization and so that you can produce work that is meaningful and expressive.

For example, if you use hyphens (-) to separate words in your classes and IDs (e.g. sidebar-blurb, about-us), don’t use underscores (_) for others (e.g. footer_nav, header_logo). Also, using standard and meaningful filenames for documents and directories is a good practice to get into.

Here are some popular classes, IDs and file names:

  • Structural IDs: #header, #footer, #sidebar, #content, #wrapper, #container
  • Main stylesheet: style.css, styles.css, global.css
  • Main JavaScript library: javascript.js, scripts.js
  • JavaScript directory: js, javascript or scripts
  • Image directory: images, img
  • CSS directory: css, stylesheets, styles

Naming Conventions

Always use meaningful words for your IDs and classes. For example, using left-col and right-col for div ID attribute values isn’t good because they rely on positional factors rather than semantics. Using something that has greater semantic value such as main-content or aside would be better so that you are giving your layout elements improved meaning and greater flexibility towards changes in the future.

In HTML5, the issue of proper naming conventions and uniformity for layout elements has been addressed with the introduction of new HTML elements such as <nav>, <footer> and <article>, but the concept of using proper naming conventions applies to all HTML elements with ID/class attributes, not just layout elements.

Read more about naming conventions in this article called Structural Naming Convention in CSS.

Good naming conventions are just a best practice in general, but as a bonus, it can help you speed up your development process because of organized and intuitive code, which makes finding and editing things quicker.

Understand and Take Advantage of CSS Inheritance

Instead of assigning every single element a font, color, background, etc., try to take advantage of CSS inheritance rules, especially for fonts, padding and margins. This can reduce the amount of code you have to write and maintain.

For example, the following is terser:

html, body {
  background: #eee;
  font: normal 11pt/14pt Arial, Helvetica, sans-serif;
  color: #000;
ul, ol {
  font-size: 18pt;

Compared to:

html, body {
  background: #eee;
p {
  font: normal 11pt/14pt Arial, Helvetica, sans-serif;
  color: #000;
ul, ol {
  font: normal 11pt/18pt Arial, Helvetica, sans-serif;
  color: #000;
blockquote {
  font: normal 11pt/14pt Arial, Helvetica, sans-serif;
  color: #000;

Reset Your Style Rules

One of the biggest time-sinks in web design is debugging browser-specific bugs. In order to ensure that you start off with a solid baseline — and thus avoid differences across web browsers — consider resetting your CSS. Read more about this subject in the article called Resetting Your Styles with CSS Reset.

Just like using CSS frameworks and HTML starter templates, there are several CSS reset templates that you can take advantage of. Here is a couple:

Here is Eric Meyer’s Reset CSS:

/* v1.0 | 20080212 */

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
body {
	line-height: 1;
ol, ul {
	list-style: none;
blockquote, q {
	quotes: none;
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;

/* remember to define focus styles! */
:focus {
	outline: 0;

/* remember to highlight inserts somehow! */
ins {
	text-decoration: none;
del {
	text-decoration: line-through;

/* tables still need 'cellspacing="0"' in the markup */
table {
	border-collapse: collapse;
	border-spacing: 0;

The best practice for using CSS reset templates is to fill in the property values of “resetted” styles instead of re-declaring them again.

For example, in Eric Meyer’s Reset CSS shown above, the line-height of web pages on the site is set to 1. If you know that your line-height needs to be 1.5, then you should change 1 to 1.5.

Do not do this when using CSS reset templates:

/ * Not good */
body {
line-height: 1;
body { line-height: 1.5; }

In addition, it’s best to avoid resetting CSS properties using the universal selector (e.g. * { margin: 0; padding: 0; }) because, performance-wise, it is inefficient and can be resource-taxing on older computers. Read more about using efficient CSS selectors.

Use CSS Shorthand Properties

Writing less CSS means saving time. Not only does using shorthand CSS reduce code-writing, but it also lowers the file sizes of your stylesheets, which ultimately means faster page response times. Additionally, shorthand CSS makes your code cleaner and — albeit arguably depending on your preference — easier to read and maintain.

The following are some popular shorthand syntax to memorize and use, with the longhand syntax equivalent preceding it.

Margin and Padding Properties

/* Longhand */
margin-top: 0;
margin-right: 20px;
margin-bottom: 10px;
margin-left: 15px;
padding-top: 0px;
padding-right: 20px;
padding-bottom: 0px;
padding-left: 20px;
/* Shorthand */
margin: 0 20px 10px 15px;
padding: 15px 20px 0;

A quick guide:

  • When 4 property values are used – margin/padding: [top | right | bottom | left]
  • When 3 property values are used – margin/padding: [top | left and right | bottom]
  • When 2 property values are used – margin/padding: [top and bottom | left and right]
  • When 1 property value is used – margin/padding: [top, right, bottom, and left ]

Font Properties

/* Longhand */
font-style: normal;
line-height: 11px;
font-size: 18px;
font-family: Arial, Helvetica, sans-serif;
/* Shorthand */
font: normal 18px/11px Arial, Helvetica, sans-serif;

A quick guide:

  • font: [font-style | font-size/line-height | font-family];

Background Properties

/* Longhand */
background-color: #ffffff;
background-image: url('../images/background.jpg');
background-repeat: repeat-x;
background-position: top center;
/* Shorthand */
background: #fff url('../images/background.jpg') repeat-x top center;

A quick guide:

  • background: [background-color | background-image:url() | background-repeat | background-position];

To discover more shorthand CSS syntax, take a look at the CSS Shorthand Guide.

Put Things in the Proper Place and Order

Always put things in the conventional place, i.e., where best practices and W3C specifications say they should go. For example, it is best practice to reference external JavaScript libraries after external stylesheet references to improve page responsiveness and to take advantage of the nature of parallel downloading.

This is the best way:

  <!-- CSS on top, JavaScript after -->
  <link rel="stylesheet" type="text/css" href="styles.css" />
  <script type="text/javascript" src="script.js" />

The suboptimal way:

<!-- CSS at the bottom, JavaScript on top -->
  <script type="text/javascript" src="script.js" />
  <link rel="stylesheet" type="text/css" href="styles.css" />

Note that both code blocks above are valid under specs, but one is better than the other.

When writing structural markup, think in terms of top to bottom and left to right because that’s the accepted convention. If a sidebar is to the right of a content area and below a header, then the markup should be organized as follows:

<div id="header">
<div id="content">
<div id="sidebar">

However, if the sidebar is on the left, a better practice would be to organize markup like this:

<div id="header">
<div id="sidebar">
<div id="content">

A caveat to the above is when you are optimizing your work for screen readers. The second code block above means that screen readers will always encounter the secondary content (#sidebar) before the main content (#content), which can hamper the reading of people that require screen-reading assistive technologies. In this case, you could place #sidebar lower down the document and use CSS for visual positioning (i.e. float #sidebar to the left, float #content to the right).

In addition to putting HTML elements in their respective places, it’s also important to organize CSS (again, for easier maintenance and readability). In a way, it should mimic the organization of your markup. For example, the #header styles should be before the #footer styles. This is a matter of preference, but it is also a conventional way of organizing style rules.

/* Structural Styles */
#header {
  // header properties
#header .logo {
  //site's logo properties
#footer {
  // footer properties

Five tips for securing mobile data

1: Ensure visibility

The request to get email on new devices such as iPhones and iPads often comes from the CEO, and IT responds by turning on ActiveSync. However, the problem is that once you’ve turned on ActiveSync, anyone can get onto the network. As different mobile platforms provide different capabilities for device security and control, the first step in mobile security is to find out exactly who is accessing your network and what devices they are using to do so. Then you want to be able to set access control policies that can determine whether to allow or block access based on hardware type, OS version, or compliance status. ActiveSync is a great technology to set some baseline controls, but it’s important to complement it with the right tools to ensure the security of your network.

2: Make sure you can do the basics

Any mobile device management and security technology you evaluate needs to be able to handle core mobile security functions:

  • Remote lock and wipe
  • Password policy
  • Encryption monitoring
  • Jailbreak and root detection
  • Device restrictions, such as denying access to certain apps (e.g., password spoofers) and explicit content

Keep in mind these are the minimum requirements that should be on your checklist.

3: Create clear policies and communicate them to employees

One major decision that many enterprises are struggling with today is whether they should allow employees to use their own devices. Whether the phone is owned by the company or the employee, it’s inevitable that it will end up with both corporate and personal data on it. Therefore, it’s essential to actively communicate your data security policies to your employees and to make sure that the information is in a place where it can be easily found. You will need to make decisions about two big areas. The first is how you handle personal versus corporate data — for example, what gets stored or archived on company servers, such as SMS? What gets wiped or removed if an employee violates policies? The second area of concern is privacy and who sees what. Regardless of your policy, the most critical factor to consider is transparency. It should be easy for an employee to find your corporate data security and privacy policies. They should know exactly what IT tracks, monitors, and archives. Then they can make decisions about their own device usage.

4: Make sure you’re securing everything — not just email

Mobile security is no longer just about email. Through the use of mobile apps, more and more company data is moving onto mobile devices, so you need to have visibility into apps, as well. You must have a central view of all the apps employees are using, and you need to be able to blacklist apps that pose a threat to security or compliance.

5: Stay flexible

It’s important to remember that enterprise mobility is really new. Be prepared to evolve because everything will keep changing. New OS releases will have new features and functionality. New devices are going to keep coming (consider  the iPad-led tablet computing wave), and there will be more mobile apps and data to secure. You need to be alert to all of these developments because many will have implications for the policies you’ve established. The most important thing is to maintain complete visibility into your mobile environment and regularly evaluate your security policies to make sure they align with your mobile reality.