Search This Blog

Friday, February 2, 2007

Project Estimation with Use Case Points

Introduction

Object-oriented applications frequently rely on Use Cases to describe the business processes of a software application. Since use cases consist of the strategic goals and scenarios that provide value to a business domain, they can also provide insight into an application’s complexity. Deriving a reliable estimate of the size and effort an application needs, is possible by examining the actors and scenarios of a use case. Use Case Points is a project estimation method that employs a project’s use cases to produce an accurate estimate of a project’s size and effort.

Use Case Points

Use case modeling is an accepted and widespread technique to capture the business processes and requirements of a software application. Since they provide the functional scope of the application, analyzing their contents provides valuable insight into the effort and size needed to design and implement the application. In general, applications with large, complicated use cases take more effort to design and implement than small applications with less complicated use cases. Moreover, the time to complete the application is affected by:

  • The number of steps to complete the use case.
  • The number and complexity of the actors.
  • The technical requirements of the use case such as concurrency, security and performance.
  • Various environmental factors such as the development teams’ experience and knowledge.

Use Case Points (UCP) is an estimation method that provides the ability to estimate an application’s size and effort from its use cases. Based on work by Gustav Karner in 1993, UCP analyzes the use case actors, scenarios and various technical and environmental factors and abstracts them into an equation.

The equation is composed of four variables:

  1. Technical Complexity Factor (TCF).
  2. Environment Complexity Factor (ECF).
  3. Unadjusted Use Case Points (UUCP).
  4. Productivity Factor (PF).

Each variable is defined and computed separately, using perceived values and various constants. The complete equation is:

UCP = TCP * ECF * UUCP * PF

The necessary steps to generate the estimate based on the UCP method are:

  1. Determine and compute the Technical Factors.
  2. Determine and compute the Environmental Factors.
  3. Compute the Unadjusted Use Case Points.
  4. Determine the Productivity Factor.
  5. Compute the product of the variables.

Technical Complexity Factors

Thirteen standard technical factors exist to estimate the impact on productivity that various technical issues have on an application. Each factor is weighted according to its relative impact. A weight of 0 indicates the factor is irrelevant and the value 5 means that the factor has the most impact.

Technical Factor

Description

Weight

T1

Distributed system

2

T2

Performance

1

T3

End User Efficiency

1

T4

Complex internal Processing

1

T5

Reusability

1

T6

Easy to install

0.5

T7

Easy to use

0.5

T8

Portable

2

T9

Easy to change

1

T10

Concurrent

1

T11

Special security features

1

T12

Provides direct access for third parties

1

T13

Special user training facilities are required

1

Figure 1: Technical Factors.

For each project, the technical factors are evaluated by the development team and assigned a value from 0 to 5 according to their perceived complexity – multithreaded apps. require more skill and time than single threaded applications, for example, as do reusable apps. A perceived complexity of 0 means the technical factor is irrelevant for this project; 3 is average; 5 means it has strong influence.

Each factor’s weight is multiplied by its perceived complexity to produce its calculated factor. The calculated factors are summed to produce the Total Factor.

So, using sample perceived complexity values, the Technical Total Factor might be computed as follows:

Technical Factor

Description

Weight

Perceived Complexity

Calculated Factor (weight*perceived complexity)>

T1

Distributed System

2

5

10

T2

Performance

1

4

4

T3

End User Efficiency

1

2

2

T4

Complex internal Processing

1

4

4

T5

Reusability

1

2

2

T6

Easy to install

0.5

5

2

T7

Easy to use

0.5

3

2

T8

Portable

2

3

6

T9

Easy to change

1

3

3

T10

Concurrent

1

2

2

T11

Special security features

1

2

2

T12

Provides direct access for third parties

1

5

5

T13

Special user training facilities are required

1

3

3

Total Factor

47

Figure 2: Calculating the Technical Total Factor.

In Figure 2, the Total Factor is 47 derived by summing all the calculated factors. To produce the final TCF, two constants are computed with the Total Factor. The complete formula to compute the TCF is as follows:

TCF = 0.6 + (.01*Total Factor). For Figure 1, the TCF = 1.07

Environmental Complexity Factors

Environmental Complexity estimates the impact on productivity that various environmental factors have on an application. Each environmental factor is evaluated and weighted according to its perceived impact and assigned a value between 0 and 5. A rating of 0 means the environmental factor is irrelevant for this project; 3 is average; 5 means it has strong influence.

Environmental Factor

Description

Weight

E1

Familiarity with UML

1.5

E2

Application Experience

0.5

E3

Object Oriented Experience

1

E4

Lead analyst capability

0.5

E5

Motivation

1

E6

Stable Requirements

2

E7

Part-time workers

-1

E8

Difficult Programming language

2

Figure 3: Example Environmental Factors.

Each factor’s weight is multiplied by its perceived complexity to produce its calculated factor. The calculated factors are summed to produce the Total Factor.

Using sample values for perceived impact, the Environmental Total Factor might be computed as:

Environmental Factor

Description

Weight

Perceived Impact

Calculated Factor

(weight*perceived complexity)

E1

Familiarity with UML

1.5

4

6

E2

Application Experience

0.5

2

1

E3

Object Oriented Experience

1

5

5

E4

Lead analyst capability

0.5

2

1

E5

Motivation

1

1

1

E6

Stable Requirements

2

5

10

E7

Part-time workers

-1

0

0

E8

Difficult Programming language

2

1

2

Total Factor

26

Figure 4: Calculating the Environmental Total Factor.

In Figure 4, the Total Factor is 26 derived by summing all the calculated factors. To produce the final ECF, two constants are computed with the Total Factor. The complete formula to compute the ECF is as follows:

ECF = 1.4 + (-0.03*Total Factor). For Figure 4, the ECF = 0.62

Unadjusted Use Case Points (UUCP)

Unadjusted Use Case Points are computed based on two computations:

  1. The Unadjusted Use Case Weight (UUCW) based on the total number of activities (or steps) contained in all the use case Scenarios.
  2. The Unadjusted Actor Weight (UAW) based on the combined complexity of all the use cases Actors.

UUCW

Individual use cases are categorized as Simple, Average or Complex, and weighted depending on the number of steps they contain - including alternative flows.

Use Case Type

Description

Weight

Simple

A simple user interface and touches only a single database entity; its success scenario has 3 steps or less; its implementation involves less than 5 classes.

5

Average

More interface design and touches 2 or more database entities; between 4 to 7 steps; its implementation involves between 5 to 10 classes.

10

Complex

Involves a complex user interface or processing and touches 3 or more database entities; over seven steps; its implementation involves more than 10 classes.

15

Figure 5: Use Case Categories.

The UUCW is computed by counting the number of use cases in each category, multiplying each category of use case with its weight and adding the products.

Use Case Type

Description

Weight

Number of Use Cases

Result

Simple

A simple user interface and touches only a single database entity; its success scenario has 3 steps or less; its implementation involves less than 5 classes.

5

8

40

Average

More interface design and touches 2 or more database entities; between 4 to 7 steps; its implementation involves between 5 to 10 classes.

10

12

120

Complex

Involves a complex user interface or processing and touches 3 or more database entities; over seven steps; its implementation involves more than 10 classes.

15

4

60

Total UUCW

220

Figure 6: Computing UUCW.

UAW

In a similar manner, the Actors are classified as Simple, Average or Complex based on their interactions.

Actor Type

Description

Weight

Simple

The Actor represents another system with a defined API.

1

Average

The Actor represents another system interacting through a protocol, like TCP/IP.

2

Complex

The Actor is a person interacting via an interface.

3

Figure 7: Actor Classifications.

The UAW is calculated by counting the number of actors in each category, multiplying each total by its specified weighting factor, and then adding the products.

Actor Type

Description

Weight

Number of Actors

Result

Simple

The Actor represents another system with a defined API

1

8

8

Average

The Actor represents another system interacting through a protocol, like TCP/IP

2

12

24

Complex

The Actor is a person interacting via an interface.

3

4

12

Total UAW

44

Figure 8: Computing UAW.

Finally, the UUCP is computed by adding the UUCW and the UAW. For the sample data used in the figures, the UUCP = 220 + 44 = 264.

Productivity Factor

The Productivity Factor (PF) is a ratio of the number of man hours per use case point based on past projects. If no historical data has been collected, a figure between 15 and 30 is suggested by industry experts. A typical value is 20.

Final Calculation

The Use Case Points is determined by multiplying all the variables:

UCP = TCP * ECF * UUCP * PF

For the sample values used in this article:

UCP = 1.07 * 0.62 * 264 * 20 = 3502.752 or 3503 hours.

Dividing the UCP by 40 hours (for one man work week) = 88 man-weeks. Therefore, for the sample values in this article, it would take one developer 88 weeks (or about 22 months) to complete the application.

Caveats

The Use Case Points estimate tends to be high when compared to human experts. This might be a good thing since many software projects are late, but, the estimate may still be too high. In order to produce accurate results, the variables in the equation need to be adjusted and tweaked – especially in the beginning.

  • The number of steps in a scenario affects the estimate. A large number of steps in a use case scenario will bias the result towards complexity and increase the Use Case Points. A small number of steps will bias it towards simplicity. Sometimes, groups of steps can be reduced to a fewer number without sacrificing the business process. Strive for a uniform level of detail but don’t force a use case to conform to the estimation method.
  • Including and extending use cases increases the complexity. Count these as a single use case.
  • The number of actors in a use case also affects the estimate. If possible, generalize the actors into a single superactor. This reduces the complexity without affecting the use case. On the other hand, don’t force a generalization where none exists.
  • The values for the Technical and Environmental Factors need to be adjusted over time as actual data is obtained. The more projects that employ Use Case Points for their estimations will yield more accurate values for the perceived values.
  • Compare the Use Case Point estimate with a human expert’s estimate. Where there is disagreement, err on the side of the human expert and adjust the Use Case Point factors accordingly.
  • The Productivity Factor can only be obtained over time. Track the time spent designing and implementing the use cases and adjust the Productivity Factor accordingly.

Conclusion

Use Case Points have the potential to produce reliable results because its estimates are produced from the actual business processes – the use cases - of a software application. Additionally, in many traditional estimation methods, influential technical and environmental factors are often not adequately given enough consideration. Use Case Points includes and abstracts these subjective factors into an equation. When tweaked, over time, Use Case Points can provide estimates that are very reliable.

Wednesday, January 31, 2007

Interview - General

What is the 1st strength and 1st weakness related to job?

U need not really disclose u'r weakness which wud be a big obstacle in fetching u this job,just for the heck of answering u'r interviewer.

U may state some thing that would sound like u'r weakness but cud be u'r strength-I'm lil emotional and loose some patience when the job is not performed right. However I don't loose much patience/temper but I think i need to keep more cool and I 'm working towards it and it's really showing good result now.

What would you say are areas needing improvement?

I always aim at perfection but i suppose i need to work a little hard to accept the principle of bounded rationality and work with a realistic scenario. But I would still continue to aim at best possible solution.

Do you prefer working alone or in groups?

I'm an individual contributor as well as group contributor. How ever I would prefer to work with a group as it would give more views/solutions/alternatives to a single situation/problem and there is a lot of scope to learn new and quick ways of doing the things. It peps up the challenging spirit in you and you thrive to perform better and better as your efforts get larger visability.Last but not the least it's fun to work in a group/share/learn/argue and finally get associated with the success as contributed by the group/team efforts.

What kind of people do you find it most difficult to work with? Why?

The people who gives more importance to their personal attributes than the work.....lasy about work....and non- co-operative, it is quit difficult to work with such kind of people...it affects work.

Why are you leaving your present job? (or, Why did you leave your last job?)

Be positive regardless of the circumstances. Never refer to a major problem with management and never speak ill of supervisors, co-workers or the organization. If you do, you will be the one looking bad. Keep smiling and talk about leaving for a positive reason such as an opportunity, a chance to do something special or other forward-looking reasons.

What is important to you in a company? What things do you look for in an organization?

My goals and capabilities should gel with the same of the company. I look forward to an organisation with which i'm able to step forward towards my goals but at the same time add a respectable portion to the company's basket also

I look for professional environment/cooperative colleagues-lots of learning and sharing/continuous learning/opportunities to enhance my skills/visibility/recognition to my efforts/last but not the least fun at work :)

Where do you see yourself after 10 years?

I like to see myself at a position where i can use my creativity to the best. For those who really don’t know much about technical fields and the branches much this answer will do or another reply would be like itll be up to u (the interviewer)to place me at a position where my talent is most tapped.

What is your long-term employment or career objective?

I made my self both short term and long term goal in career

my short term goal is to learn new technology and make my self techincally strong as well as in people management skill which will make sure me ,to acheive my long term goal as soon as possible

What might make you leave this job?

Never give negative responses for a question like this . Complaining abt d last employer is never advisable. Always focus on what you have learnt from your last organization and emphasis on your willingness to learn and grow and seek better opportunity . Put yourself always in the psitive frame of mind of the interviewer. Never complain abt your last job or organization.

What kind of job do you see yourself holding five years from now?

I would like to see my self contributing positively to the organization i would be working for. I would develope new skills and ability and would like more responsibilities becoz i think thats the result of your personal growth and development.

Why might you be successful in such a job?

I would make a good employee with _____________ because I sincerely believe that I'm the best person for the job. I bring a strong quality that makes me the very best person for the job--my attitude for excellence. I am a team player, humble, keep promises, polite, I willing to pay the price to achieve realistic goals, willing to go beyond the call of duty, generous, conscientious, having honesty and integrity, flexible, hard working, positive thinking, not waiting for things to happen instead I am proactive in life.
As part of the fastest growing segment of the exciting entertainment industry, TooSpoiled will benefit from my attitude.

What things give you the greatest satisfaction at work?

A day in which I am able to help atleast one person either technically, or just in general by motivating him / her to achieve his / her desired goal. A smile in the face of people at work is something I crave for. It really makes the environment lively and eases the stress at work. For my kind of work I desire to work with people who r 'cool like cucumber'

What is the difference between a programmer and the developer?

A programmer job is to code as per given design. A developer developes the software/module from understanding the requirement, then design the solution,code it and then test the same.

"programmers" (people that specialize in writing code)"developers" (people who will contribute in multiple ways to make the product successful).

How would you describe yourself as a person?

i am basically a simple , adjusting and funloving person, whom others consider as sincere and friendly too.But they also consider me as modest, and i dont know whether i am all this.

I would describe myself as a very ambitious , hardworking and sincere girl.I am enthusiastic about taking up new challenges in life.Friendly and joyful is what my friends would describe me as.

I consider my self as a hardworking and apitious person . Programming is a major part of my life , and so I spend most of the day Reding and searching and downloading ready code .. At my free time , I like solely walks , eating Ice cream , and listening to Music .

can describe myself as " Strength is life but Weakness is death."

What kind of things do you feel most confident in doing?

I'd like to do things that r interesting AND THAT WILL ALWAYS HAVE SOME MYSTERY in it.I'd like to do creative things.

i feel most confident in doing the things that require a fair amount of intellectual thinking,introspectionand creativity, in general, anything that captures my interest.

I prefer to work hard for a task which gives me ample creative space because:

Hard work + Creativity + Confident = Positive Payoffs

What things frustrate you the most? How do you usually cope with them?

The most frustrating thing of all is not doing your work when supposed to do and instead just taking things easily.And to cope up with it i try to complete at least my work asassigned or else if i am not able to do it on time ,i at least give it a sincere try.

UML Interview Questions

What is ageeregation & Composistion ?

Aggregation ---It means for example one Colleage is build up of Depatments and again departements contains classes right here school is aggregation of departements and again departement is aggregation of classes,here u can perfect aggregation of things if u delete the main object called school all associated departements and classes will get delete.

Compostion--It means how objects are composed of means in other words it is tightly bound aggregation here even u will not have access to delete child objects which are nested in parent objects.

Data Modeling Interview Questions

What is the difference between star flake and snow flake schema?

Star Schema:

Well in star schema you just enter your desired facts and all the primary keys of your dimensional tables in Fact table. And fact tables primary is the union of its all dimension table key. In star schema dimensional tables are usually not in BCNF form.

SnowFlake:

Its almost like starschema but in this our dimension tables are in 3rd NF, so more dimensions tables. And these dimension tables are linked by primary, foreign key relation.

What is data sparsity and how it effect on aggregation?

Data sparsity is term used for how much data we have for a particular dimension/entity of the model.

It affects aggregation depending on how deep the combination of members of the sparse dimension make up. If the combination is a lot and those combinations do not have any factual data then creating space to store those aggregations will be a waste as a result, the database will become huge.

What is the difference between hashed file stage and sequential file stage in relates to DataStage Server?

In datastage server jobs,can we use sequential filestage for a lookup instead of hashed filestage.If yes ,then whats the advantage of a Hashed File stage over sequential filestage

search is faster in hash files as you can directly get the address of record directly by hash algorithm as records are stored like that but in case of sequential file u must compare all the records.

When should you consider denormalization?

Denormalization is used when there is a lot of tables involved in retreiving data.Denormalization is done in dimentional modelling used to construct a data ware house.This is not usually done for data bases of transactional systems.

What is ERD?

ERD - Entity Relationship Diagram

ERD is a modeling technique that represents a logical design of a particular business process. Each entity has attributes and different entities are connected through primary key/foreign key relationships.

Data models are tools used in analysis to describe the data requirements and assumptions in the system from a top-down perspective. They also set the stage for the design of databases later on in the SDLC.

There are three basic elements in ER models:
Entities are the "things" about which we seek information.
Attributes are the data we collect about the entities.
Relationships provide the structure needed to draw information from multiple entities.

Every statement written above is correct regarding ER Diagrams except that they fall under conceptual design phase and not under logical.

A relational database design goes through 3 phases:

1. Conceptual ( ER Diagrams)

2. Logical ( Relational Schema)

3. Physical ( Physical Database objects)

Why are recursive relationships are bad? How do you resolve them?

Recursive relationships are an interesting and more complex concept than the relationships you have seen in the previous chapters, such as a one-to-one, one-to-many, and many-to-many. A recursive relationship occurs when there is a relationship between an entity and itself. For example, a one-to-many recursive relationship occurs when an employee is the manager of other employeess. The employee entity is related to itself, and there is a one-to-many relationship between one employee (the manager) and many other employees (the people who report to the manager). Because of the more complex nature of these relationships, we will need slightly more complex methods of mapping them to a schema and displaying them in a stylesheet.

What is an artificial (derived) primary key? When should it be used?

Using a name as the primary key violates the principle of stability. The social security number might be a valid choice, but a foreign employee might not have a social security number. This is a case where a derived, rather than a natural, primary key is appropriate. A derived key is an artificial key that you create. A natural key is one that is already part of the database.

Whether artificial primary key is equvalent to the row_id of the table or it is the the combination of the previous primary key field and the new field which creates the importance of it.

Some Technical points

What is the main difference between "portability" & "Platform independent"?

Portability focuses on adaptation of software in various OS, by recompiling the source to make the binary compatible with the target OS and not necessarily modifying the source. If the source code strictly follows POSIX standard less likely one end up modifying it.

Platform independence focuses on ability of software to run on VIRTUAL hardware that inturn interfaces with the PHYSICAL hardware. Examples of cross-platform or platform independent languages are Python, JavaScript, Java etc.

Hope it helps. Let me know.

What is the difference between collision domain and broad cast domain?

A collision domain is a logical area in a computer network where data packets can "collide" with one another, in particular in the Ethernet networking protocol. The more collisions in a network the less efficient it is.

A broadcast domain is a logical area in a computer network where any computer connected to the computer network can directly transmit to any other in the domain without having to go through a routing device.

What is data modelling?

Designing a normalized schema is known as data modeling

Data Modelling is designing of the data content and structure of the database.

The data model documents the structure of and interrelationships between the data - it is presented as a combination of simple diagrams and written definitions and is independent of any DBMS software or hardware considerations.

Designing a de- normalized schema is known as dimension modeling

What is virtual Memory under Linux?

Linux supports virtual memory, that is, using a disk as an extension of RAM so that the effective size of usable memory grows correspondingly. The kernel will write the contents of a currently unused block of memory to the hard disk so that the memory can be used for another purpose. When the original contents are needed again, they are read back into memory. This is all made completely transparent to the user; programs running under Linux only see the larger amount of memory available and don't notice that parts of them reside on the disk from time to time. Of course, reading and writing the hard disk is slower (on the order of a thousand times slower) than using real memory, so the programs don't run as fast. The part of the hard disk that is used as virtual memory is called the swap space

Can we execute any simple program without installing any Operating system?

Why not? We can execute programes without operation system 'cause many machines like automatic washing machines, microwave and many other device do not have operating system but they execute program 'cause programs are implemented in there chip.

Business Analyst Interview Questions.

What is the carreer path for a Business Analyst?

A Business Analyst in the IT field has many varied directions among which to choose a career path. The most direct would lead to a Lead Business Analyst position and then Project Manager whereby the incumbent manages projects through the entire lifecycle from inception to post-implementation including the management of business analysts, system analysts, quality assurance analysts and most likely development project managers or team leads. That path would then lead to Program Management, perhaps PMO management or Product Manager and on to Directorship.In addition, a good Business Analyst may find they are heading toward a Customer Relationship Manager position whereby they become the primary IT interface to a given Business Unit (BU). This role most often leads to a position within the BU as a Manager of Applications or a Process Management role. Process Management opens many jobs including process re-engineering, quality program development, and large scale or enterprise process management programs such as ITIL or Six Sigma initiatives. These roles will continue to proliferate as companies realize the benefits of having a SME in process and quality.And still many Business Analysts find their understanding of business process entirely portable into purely system related positions in the business side that are only peripherally related to IT. These of course may lead to quantitative roles, manager roles or operational roles such as supply chain, logistics et cetera.Of central importance to a successful Business Analyst is the interest in speaking to people. Face to face verbal communication is paramount to support other tools such as surveys and diagrams. Incumbents must be interested in understanding not only the pieces that comprise a system, but the people that comprise it and the realities that embrace the system. Briefly, the Business Analyst must understand and not judge the "what should be" and the "what is".

How do you resolve issues?

Its really simple as you have to check out the folowing:

(1) who(who made this issue),what(what was the actual cause of the issue?),when(when did this issue occur?),where ( where did this happen),why(why did this happen),how( how did this happen)?

and last but not the least you have to use your brain and common sense.

Take for and Example Like:

If an issue comes up saying that people are not doing their work properly in an office and in the end of the month the outcome of performance is not upto the expectations of the standards of the company. then we must look out for the following like helding up Meetings and pointing out people whose standards are not upto the mark and try to help in motivating them, and try to improve their faults, in making efforts to improve their performance standards and and then if things are not going as expected then actions should be taken against them which in Rare cases may result in Termination/suspension/or demotion of the specific employee. this is how most of the issues can be resolved....

How would you transform business requirements to functional requirements?

imple, if I am understanding your question right; Which is the most easiest way to find function requirements: USE CASES make use case for each function of system

What problems did you run into while gathering requirements?

Problems faced while gathering Customer Requirements.
Communication problem.
Inconsistent or contradictory statements which leads to delay.
Difference in Industry Knowledge.
Note: Above mentioned factors can be controled if same process is followed by the vendor as well as the Client.

Project Manager Interview Questions

How do we make Function Point Analysis.

Functional point analysis is a concept of finding out estimates in terms of points. It is one of the best practice of finding out estimates irrespective of any technology dependency.
FPA is divided into 4 attributes. All these 4 Attributes are nothing but functional key ares of transcation.
For Example:
1. Input
2. OutPut
3. Input External Data
4. Output Internal Data

*Query data is not considered as FPA points.

What are the main objects of a project manager?

Project Manager main objective are as follows:

1. Plays every important role as stakeholder and with Stakeholder.
2. He has to drive the show in terms of Technical, Financial, Risk Mitigation, & never the less the delivers.
3. Main moto is to ensure every area of assurance of compliance in terms of delivery.
4. He has to be people's person with pleasent personality.
5. Softskill is another key area of his expertise.
6. Time, Material, Cost, Technology/Performance & Resource is his area of play

Thursday, January 11, 2007

Why every business needs a website

If you are operating a business, any business, you must have a website.

Why?

The answer is simple; a website has the functionality to work for your business. Websites serve to attract new customers and inform current customers. The website is very similar to a salesperson or company rep and is adding to your sales force. A website has the potential to be your best employee and serve as an image for your company.

The main reason is that a website can attract new customers. A website is open 24 hours per day providing valuable information to potential customers. Not only is it important for web traffic, but customers notice when your business card does not have a website address on it. A website is one of the most powerful sales tools that a business could purchase. That is why every business would benefit form a professional website.

Websites serve as a great customer service tool. From simple F.A.Q. sections to complex repair guides, a website can deliver great customer service and reduce the number of needless service calls. A well built website will make it easy for customers to find solutions. The customer service aspect of a website makes it very smart for every business to have one.

A website can provide many of the same services that a sales rep. is capable of, however the website does not take a break, need a vacation, overtime, health insurance or a parking space. A website can never be late, need maternity leave, sick leave or even be stolen by the competition. A website is a sales person that you, the business owner, have complete control of, it is a great asset.

Finally, a website can serve as a company image. Do you know the difference between a large corporation and a small business online? That is because there is not one. The smallest one person company can have a website that is equal to or surpassing that of a large corporation. It is just a matter of seeing that fact and pursuing a great website.

I hope that by this point it is clear that every business does in fact need a website. If you do not have one, make sure you contact a web designer today. You known your competition will be!