Javascript Menu by Deluxe-Menu.com
AddThis Social Bookmark Button
transparentAllFreelanceWork Icons Top All Freelance Work Free Creative Portfolios CareerBuds - AllFreelanceWork.com's Social Networking Site for Freelancers and Career Professionals All Freelance Work - Freelance Jobs All Freelance Work Articles for Freelancers and Self Employed Professionals Mail Your Portfolios to Employers for Free Career Questions and Answers for Freelancers & Self Employed Career Professionals All Freelance Work - Forums and Chat for Freelancers and Self Employed Career Professionals Tag and Bookmark Your Favorite Freelance and Career Sites Search and Find Images and Art


Home > Articles > Freelance Developers >Does a Freelancer need Software Engineering?

Does a Freelancer need Software Engineering?

Tarek Negm

There is no right or wrong answer to the question above, this may sound strange a bit but I say that the answer for that question mainly depends on another two questions:

  • How big is the project the freelancer is working on?
  • Is he working alone?

If the freelancer is working on a small project, maybe taking a week or two max, then he definitely doesn't need software engineering in this case. He probably will waste more time documenting the project than doing the actual implementation. But here I am talking about really small projects, like for example developing a small calculator. Moving to large projects, the developer cannot just go on programming the project. Normally, he will have to break the project into different phases, where each phase will represent a milestone for the client to see. Then to ensure efficient implementation he will gather the client requirements, document it and then present it again to the client to approve it. After approving the requirements the developer will have in his mind the technical specifications of the project (this part is not put on paper by developers usually). Then he will start implementing the project. Actually, by doing this, the developer has gone through some software engineering methods, like requirement gathering and analysis, then preparing the software specifications document, which is the information he has in his head.

Another important thing is whether the developer is working alone or not. If the developer is working with a team then software engineering is a must. I am not saying working alone makes it unneeded, but as I explained above, if the developer is working alone, he may not need software engineering. Instead, working in a team with out having the project correctly managed using software engineering techniques will impose more overheads on the developers. These overheads will be imposed due to lack of fruitful communication between developers; they will probably be engaged in very long conversations that may end up with no result or a result that would have reached in a very little time if they were somewhat more organized. Also, the lack of a common and agreed upon guide for developing the project will be a big problem, to give you an example of this case, consider two developers working on one project and they are developing two inter-dependant modules. If they don't have a prior design to the project, they are most likely to develop conflicting interfaces, as we said before each module uses the other one, so how would anyone of them know what does the other need as an output from his module or what functionality he may want from his module. So they will probably implement two modules that won't work together. Then they will have to revise their code, re-implement it, sit together to agree upon what each one needs from the other (communication overhead).

So to answer the question that is the title of the article I can say that, excluding the very small projects like the small calculator, a freelancer needs software engineering. He needs to ensure that his requirements comply with that of the client. He needs it to organize the project into phases. He needs it break the project down to components. And he needs it for avoiding the overheads described too. Moreover, he needs it to document the project. Documentation is now a primary issue in software industry. Before, people didn't really bother about documentation, but now, it is an important deliverable in the project with the code. This is due to the rapid technological advances that occur each day now, which makes a client making a software worry about how to upgrade it or add to it advanced features in the future.

Software engineering to a freelancer is important because a freelancer is involved in all project phases. He is not only a developer that gets some requirements and codes it; he is also the project manager and the business analyst. Being familiar with software engineering techniques is a virtue to a freelancer. Clients dealing with professional freelancers aware of such techniques will definitely look for them again if they have other projects.

In this article and the following articles I will present a case study of a product I was involved in developing it in a team of 4 members. The product is a News-Ticker program running on the user's machine, displaying news headline from user defined sites. And the user has the ability to launch-from the program- the browser to view the news he wants. The project may sound simple, but as we go into the details you will see how simple requirements like the one above turn to make a big project, with many user features. I will begin by presenting the project requirements in the beginning as we got it initially from the user, then move to the requirements gathering phase in the project, then our analysis to these requirements, then how we put the software requirements specification document, then implementation. In each part I will be explaining the phase I am in, in software engineering and what should I do in it, and what we actually did.

Initial Requirements: When we first met the client his requirements were simple and straight forward; he said: "I want a news-ticker, something professional I can sell, the news-ticker allows me to enter the news sites I want news from, and it displays the headlines of all these sites, and if I want to see a certain piece of news, I want to be able to click on it and open the browser on the its page"

Very simple as we can see in the beginning, but usually the client's requirements are not that straight forward. The client -usually not involved in computer stuff- usually has contradicting requirements. In the above description there is no contradiction, but are these the final requirements? Of course not. The more you talk to the client, the more he adds requirements. This is because the client has an image of his product in his head, but he doesn't express it completely from the first time, any human does this, he may forget some things or adds new things he finds that he needs. That is why a professional freelancer asks the client questions and engages with him in a conversation about the project. He tries to get the most out of him. He doesn't sit with the client only one time to get the requirements, he sits with him as many times as he sees appropriate. When he feels that the product he has in mind is what the client wants, he should start working. The thing here is that the freelancer should not waste the client time with too many meetings, he tries to make his meetings as minimum as possible, by asking direct questions and useful ones. A professional freelancer also should be intelligent enough that when he finds that an additional requirement to the project that the client did not require but he knows that it will satisfy the client and he can easily do it, he should suggest it.

Giving examples of the questions we asked to the client:

1- Do you want the news-ticker as a stand-alone application or you want it in web page?

He replied: no stand alone, this will allow me to view headline without having to open a browser each time.

2- How many news sites do you have in mind as input for the program?

(this may sound strange, but look what you get from the answer) he replied: no limit, I want to be able to add a news site dynamically, each time I want, and I want to be able to categorize these sites (new requirement) so that I have, financial sites alone, sports sites alone ..etc.

3- How do you like the news headlines to be displayed?

He replies: I would love to have two options, scrolling vertically or horizontally (new requirement). I also want to be able to change the font and color of the text by which the headlines are wrote (new requirement).

These were sample of the questions a freelancer should ask. The client usually doesn't have any technical background and he assumes that some things he has in his head will be present in his program by default! So a freelancer must get these things out of his head and put it on paper. The questions should be non-technical at all, just normal questions as the ones above. Simple questions that are made intelligently will definitely get the most out of the client.

After this very first meeting with the client, a freelancer should come out with a general idea of what the project he will be working on will look like. He knows the initial requirements of the client, but all in his head. At this point, the freelancer should go back home, and open the notes he just taken from the client and begins analyzing his requirements and drafting the first use-case model for the project. A use-case model is simply a user-oriented approach to system analysis, where the freelancer will identify the users of the system and the tasks they perform with the system. Also this includes information about each task so he can identify which is most important and should be implemented first.

At this point the project started to the freelancer. So what does he have to do now? The very first thing is to identify which phase is he in and to plan his next three or four iterations.

Last paragraph was very vague, I know, that is why I am going to explain now the important concepts in software engineering that I used in the last paragraph, the first one is "iterations". Every project should be divided into four main phases:

  • Inception phase
  • Elaboration phase
  • Construction phase
  • Transition phase

Each phase of the previous phases can have as much iteration as needed. The number of these iterations differ depending on the size of the project. But by the end of each iteration, the freelancer should have a working version of the product he is working on. The iteration is a complete cycle including requirement gathering, analysis, design, and implementation and testing of the product. The goal at the end of each iteration is to have a working version of the product that the freelancer can add more functionalities to; such that, by the end of the all iterations the freelancer will have his product having all the required specifications.

Getting back to phases; in the inception phase you stress on gathering requirements mostly, you try to -as the title of the phase says- start the iteration by identifying what you want to do in it. In the beginning of the project, usually the first two or three iterations involve the client, to get more requirements from him or to ask him for clarification about a requirement, these first three iterations are usually in the inception phase. The inception phase doesn't mean you will not implement or design anything. But the case in this phase is that the freelancer should have a very simple version of the application running with very basic requirements. The iterations in the inception phase usually have very little progress in the implementation of the project. This is of course because the freelancer is still getting everything in his head.

In the elaboration phase there is less stress on requirements gathering and you start analyzing these requirements. You start looking and getting a feel of the project, now you know what you want to do. So how can I plan doing it and what do I need to do it?. These are the kind of questions you will ask your self at this phase. This phase also includes the design of the project. As a result of analyzing and planning the project, you begin the design.

the construction phase, you complete the design of the project and you start implementation. At this phase, programming gets the upper hand. Normally when you reach this phase, you should have passed several iterations in the beginning, in them you finish implementing the basic functionalities. So in the construction phase, you begin implementing the complex functionalities, which is why the stress in this phase is upon implementation. Needless to say that implementation includes programming and testing.

In the transition phases, you should have finished implementation and you are about to produce the final version to the client. In this phase, the implementation is still involved for bug fixing; in case you found a bug before handing in the project. This phase is the one in which you finalize the product before production.

Now, moving back to the case study we are doing here. After returning from the first meeting I mentioned above, we held a meeting to begin work. And this I will discuss in my next article, in which I will apply the above concepts of phases and iterations to the news-ticker program, and show how we divided the project into phases and iterations.

Please, if you have any questions, don't hesitate to send me a mail on the address below.

Tarek Negm
teenegm@yahoo.com


HOW TO SET YOUR FREELANCE RATES - A GUIDE FOR FREELANCERS & CONSULTANTSThere are many factors which business owners must consider on a daily basis as it relates to the running of their business. Things such as how to find good help, where to acquire supplies and how much to pay one’s employees are all pertinent matters which must be addressed. There are a few ways to go about figuring out your rates when it comes to how much to charge the customers.

Apr 01

BlinkList | del.icio.us | Digg it | Furl | Netscape | Onlywire | RawSugar | reddit | Spurl | StumbleUpon | Yahoo MyWeb

 

SPOTLIGHT CONSULTANTS FROM OUR FREELANCE COMMUNITY

  Freelancer Portfolio Images 2 Freelancer Portfolio Images 3 Freelancer Portfolio Images 8733 Freelancer Portfolio Images 6
  Freelancer Portfolio Images 6 Freelancer Portfolio Images 6 Freelancer Portfolio Images 66268 Freelancer Portfolio Images 162007

MARKETING PLANS : A Collection of Articles for How to Outline and Write a Marketing Plan for Freelancers Starting a Home Business or a Small BusinessA solid, well-prepared marketing strategy is the foundation of success in business. The freelancer or any type of business owner must become informed on the development of an effective marketing plan. The following links will focus on marketing plan articles for the freelancer to have a successful business.

Mar 20

BlinkList | del.icio.us | Digg it | Furl | Netscape | Onlywire | RawSugar | reddit | Spurl | StumbleUpon | Yahoo MyWeb

Category: Getting Started - Self Promotion - Marketing | Trackback | No Comments »

BUSINESS PLANS: Business Plan Examples, Samples, Templates, Software and ToolsIn any type of the business including those people that perform freelance work, the proper tools are necessary to become a success. The following links consist of selected online tools for the freelancer to develop an effective business plan.

Mar 18

BlinkList | del.icio.us | Digg it | Furl | Netscape | Onlywire | RawSugar | reddit | Spurl | StumbleUpon | Yahoo MyWeb

Category: Getting Started - Freelancing & Self Employment - Lists - Freelance Resources | Trackback | No Comments »

MAR 03

FREELANCING AND FINDING WORK AT HOME JOBSThe difficulty lies not in the fact that there aren’t plenty of work at home jobs available but rather in the fact that genuine, quality, money-earning work at home jobs are all mixed up with work at home scams. This makes finding a work at home job that’s legitimate a not-so-easy task for people who are just breaking in to the freelancing business. But don’t worry; once you learn the lingo and know the basics, finding a work at home job gets a lot easier!

BlinkList | del.icio.us | Digg it | Furl | Netscape | Onlywire | RawSugar | reddit | Spurl | StumbleUpon | Yahoo MyWeb

Mar 16

BUSINESS PLANS : A Collection of Articles for How to Outline and Write a Business Plan for Freelancers Starting a Small Business

Business plans are necessary in all types of businesses … and this also includes freelancers. Writing an effective business plan will help you plan out the success of your future business. Factors such as customer base, profit potential, as well as many other factors will be placed in this document. The business plan will help you, the freelancer, think through every aspect of your future successful business. We found the following business plan articles to be very helpful and we hope that you will find them to be useful too.

BlinkList | del.icio.us | Digg it | Furl | Netscape | Onlywire | RawSugar | reddit | Spurl | StumbleUpon | Yahoo MyWeb |

Category: Getting Started - Lists | Trackback | No Comments »

FEB 25

HOW FREELANCER WRITERS CAN DEFEAT WRITER'S BLOCKHelpful hints and tips to overcome the dreaded White Page Syndrome - There is probably nothing more dreadful and problematic for a writer than not being able to get going, being stuck on a menacingly white page. Read on for more ideas on how freelance writers can overcome Writer's Block.

BlinkList | del.icio.us | Digg it | Furl | Netscape | Onlywire | RawSugar | reddit | Spurl | StumbleUpon | Yahoo MyWeb

FEB 19

WAYS TO GET MORE CUSTOMER REFERRALS FOR YOUR FREELANCE BUSINESSThe amount of customer referrals will often determine how successful one’s freelance business can really be. As word spreads quickly, having customers refer others to you and your services is a wonderful way of gaining new freelance business and making more money. There are a few distinct ways to get more client referrals for your business.

BlinkList | del.icio.us | Digg it | Furl | Netscape | Onlywire | RawSugar | reddit | Spurl | StumbleUpon | Yahoo MyWeb

FEB 18

FREELANCE HOME OFFICE DISTRACTIONS VS DISTRACTIONS WHEN WORKING IN AN OFFICEOf course, distractions are different depending on whether you are freelancing from home or working in an office. Both kinds have their pros and cons so let’s take a look at some of the basic ones so that you can start getting a grasp on good vs. bad distraction behaviors for freelancers.

BlinkList | del.icio.us | Digg it | Furl | Netscape | Onlywire | RawSugar | reddit | Spurl | StumbleUpon | Yahoo MyWeb

FEB 08

WORKING FULL TIME WHILE RUNNING YOUR FREELANCE BUSINESSThe key to being able to make the transition to full time freelancing is in setting goals that allow you to focus on moving away from working full time for someone else and towards putting more hours in to your freelance business.

BlinkList | del.icio.us | Digg it | Furl | Netscape | Onlywire | RawSugar | reddit | Spurl | StumbleUpon | Yahoo MyWeb

FEB 06

20 WAYS TO PROMOTE YOUR FREELANCE SERVICES USING ONLINE FORUMSThere are a few distinct ways in which freelancers can market their services through forum marketing techniques.

BlinkList | del.icio.us | Digg it | Furl | Netscape | Onlywire | RawSugar | reddit | Spurl | StumbleUpon | Yahoo MyWeb

JAN 24

60+ UNIQUE LOCAL & OFFLINE MARKETING IDEAS FOR YOUR CONSULTING BUSINESS Although online promotion is important for your freelance business, it’s crucial to remember to go back to your basics and do offline promoting as well locally, nationwide, and worldwide depending on who you are marketing to. Here are over 60 ideas to market your consulting services locally. Let Freelance work find you.

BlinkList | del.icio.us | Digg it | Furl | Netscape | Onlywire | RawSugar | reddit | Spurl | StumbleUpon | Yahoo MyWeb

JAN 22

WHAT TO DO WHEN YOUR CUSTOMERS ARE GOOGLING INFORMATION ON YOUThis can be an issue for freelancers whose customers google them and try to find out information relating to them and their business. The following is a list of what to do when your customers are googling information on you.

BlinkList | del.icio.us | Digg it | Furl | Netscape | Onlywire | RawSugar | reddit | Spurl | StumbleUpon | Yahoo MyWeb

JAN 19

26 THINGS TO DO WHEN BUSINESS IS SLOW AND IN DOWNTIME MODESome freelancers are anxious to work day in and day out which may present a problem for them when business is slow. However, there are many things which freelancers can do to bide their time while waiting for new freelance work to come in. Here are 26 ideas for staying productive during your consulting business downtime.

BlinkList | del.icio.us | Digg it | Furl | Netscape | Onlywire | RawSugar | reddit | Spurl | StumbleUpon | Yahoo MyWeb

JAN 15

ONLINE CUSTOMER SERVICE TIPS FOR FREELANCERS & THE SELF EMPLOYEDThere is a casual attitude about communication that takes place online and that creates an environment in which customers sometimes don’t take your work seriously, leading to problems with projects and payments. In order to avoid those problems, you need to make sure that you are conducting all of your online work in as professional a manner as possible. Here are some tips on how to do that.

BlinkList | del.icio.us | Digg it | Furl | Netscape | Onlywire | RawSugar | reddit | Spurl | StumbleUpon | Yahoo MyWeb

JAN 02

TOP 150 PLACES TO TRAVEL WITH YOUR FAMILY WHEN YOU STILL NEED TO GET WORK DONEWhen you are self-employed, there is no vacation time to save up, and there is no one to cover for you when you’re away. For many that mean giving up on vacations altogether, and this is what I have been doing for awhile. Most of These All-Inclusive Family Resorts Have Kids Clubs in Which Your Child can enjoy supervised and fun activities while you and your spouse can have fun or get freelance work done. Take a look below and enjoy!

BlinkList | del.icio.us | Digg it | Furl | Netscape | Onlywire | RawSugar | reddit | Spurl | StumbleUpon | Yahoo MyWeb

DEC 30

LIST OF ARTICLE SITES, BLOGS, AND INFORMATION DIRECTORIES FOR FREELANCERS, CONSULTANTS, AND THE SELF EMPLOYED Do you ever get frustrated when you can't find the information that you need about freelancing? Well, I've just compiled a list of the best article sites, blogs, and directories for freelancers, consultants, and the self employed.

BlinkList | del.icio.us | Digg it | Furl | Netscape | Onlywire | RawSugar | reddit | Spurl | StumbleUpon | Yahoo MyWeb

DEC 30

DECIDING WHETHER OR NOT TO FREELANCE OFFSITE OR ONSITE Deciding to work onsite or offsite sounds like a relatively simple decision, but it’s actually one which isn’t easy to make. Sure, when you’re lying in bed just after the alarm has gone off and you see that it’s raining outside and all you wish was that you could go back to bed for ten minutes and then do your freelance work from home, working offsite sounds ideal. But there are as many cons to the offsite work job as there are pros and you need to weigh them carefully when making the decision about whether to work onsite or offsite.

BlinkList | del.icio.us | Digg it | Furl | Netscape | Onlywire | RawSugar | reddit | Spurl | StumbleUpon | Yahoo MyWeb

DEC 21

IS FREELANCING RIGHT FOR YOU? Freelancing, a term introduced by Sir Walter Scott (1771-1832), is when you work without being committed to an employer. With development of internet and communication technology, there has been a dramatic rise in the number of people going their own way and leaving behind the cubicles. You are reading this book, so you must be contemplating becoming a freelancer, but before you make your move there are a few things to consider.

BlinkList | del.icio.us | Digg it | Furl | Netscape | Onlywire | RawSugar | reddit | Spurl | StumbleUpon | Yahoo MyWeb

DEC 20

FREELANCER'S GUIDE TO TIME MANAGEMENT The most common problem that freelancers face is figuring out the balance between work and the rest of life. While there are a few freelancers out there who don’t work as much as they need to in order to pay their bills and improve their business, most freelancers have the opposite problem – they work ALL the time. And that’s why there are a great number of freelancers who “burn out” after a short (or if they’re lucky, a long) time. In order to make sure that you aren’t one of those people who “used to freelance but got burned out”, you need to set limits on how much you work. Then you need to stick to those limits.

BlinkList | del.icio.us | Digg it | Furl | Netscape | Onlywire | RawSugar | reddit | Spurl | StumbleUpon | Yahoo MyWeb

DEC 16

SHOULD I TURN DOWN FREELANCE PROJECTS? As freelancers, we often feel as if we have to say ‘Yes’ to every single job out there. However, we as freelancers are in a position where we can choose to say ‘No’ if we want to. Believe it or not, there are certain projects that you probably shouldn’t accept. Turning down work is probably the hardest decision you will need to make when running your business, but sometimes turning down a gig is necessary. In this article I will explain to you the details that you need to consider when you aren’t sure which route to take. Consider the following:

BlinkList | del.icio.us | Digg it | Furl | Netscape | Onlywire | RawSugar | reddit | Spurl | StumbleUpon | Yahoo MyWeb

DEC 12

COOL IDEAS FOR YOUR BUSINESS CARDS As freelancers, we need to promote ourselves with business cards. How about putting yourself ahead of the rest of them by designing and printing completely unique business cards? You are about to take a look at the coolest and most innovative business cards that you have ever seen.

BlinkList | del.icio.us | Digg it | Furl | Netscape | Onlywire | RawSugar | reddit | Spurl | StumbleUpon | Yahoo MyWeb

DEC 10

LIST OF FREELANCE FORUMS & MESSAGE BOARDS Looking to get together with other freelancers? Want to network? Want to ask questions about freelancing that you can’t find the answer to anywhere else? Look no further than the freelance forums that we have listed below. Feel free to let us know about forums that we have missed.

BlinkList | del.icio.us | Digg it | Furl | Netscape | Onlywire | RawSugar | reddit | Spurl | StumbleUpon | Yahoo MyWeb

Read More Articles from the ALL FREELANCE BLOG & SELF EMPLOYMENT BLOG

SitePoint Web Design Business Kit for Freelancers
SitePoint Web Design Business Kit for Freelancers SitePoint's Web Design Business Kit 2.0

The followup to Brendan Sinclairs successful Web Design Business kit is a comprehensive look at all the business aspects of working as a web designer. It's thorough and has some excellent advice in it.

Search for schools and classes
Billing Orchard Invoicing and Billing for Freelancers
Billing Orchard - Billing and Invoicing Software for Freelancers Billing Orchard's Invoicing for Freelancers

A complete, secure, online billing application that maintains hourly service billing, flat fee billing and recurring charges. Integration with Authorize.Net and other leading payment gateways provides hands-free recurring billing with a sophisticated CRM system.

Read more
Free Trade Magazines
TradePub - Free Trade Publications for Freelancers Free Trade Publications & Magazines

Browse through our extensive list of free Business, Computer, Engineering and Trade magazines, white papers, downloads and podcasts to find the titles that best match your skills and interests; topics include management, marketing, operations, sales, and technology. Simply complete the application form and submit it. All are absolutely free to freelance professionals who qualify.

Read more
Recent Graphic Design Forum Topics
Recent Graphic Design Forum Topics Blog for Freelancers and the Self-Employed
Blog for Freelancers and the Self-Employed: Tips and Advice for Freelancers & Self Employed.

How to Qualify Prospective Clients for Your Freelance Business
Keep Your Customers Around with Better Customer Service for Your Freelance Bu...
Marketing Your Freelance Business with Postcards
The Technology That Every Freelancer Needs in Their Home Office
Getting Started Freelancing While Keeping Full Time Work Position
Fax Services : Huge List of Online Fax Services
Freelance Writing Jobs & Job Sites for Freelance Writers : Contract Projects ...
Career Networking Sites - List of Business Networking & Social Networking Sit...
Home Based Medical Transcriptionist Opportunities for Work at Home Job Seekers
Search More Than 100 Freelance Job Sites from One Site


[CaRP] XML error: syntax error at line 1 -

All Graphic Design & Graphics News
Graphic design articles to quench your thirst for graphic design and web design topics.

Do You Need to Know How to Draw or Sketch to be a Graphic Designer?
Best Paying Cities for Graphic Designers
Why You Should Consider Graphic Design Contests
Can Graphic Design Schools Teach You to Be Creative?
Smart Design, Even Smarter PR
Corel is on a Quest for the Best
5 Things To Consider When Choosing A Design School
Positive Posters Design Contest
London Science Museum: A Great Logo, Decoded
Three Off-the-beaten Path Graphic Design Careers


[CaRP] XML error: syntax error at line 1 -


[CaRP] XML error: syntax error at line 1 -


Find Freelancers