Looking For Freelancer Software Programmer? Highly Motivated Staff? To Develop your Software Project? Please contact me at +6013-3030001 or [email protected]
Experienced in Software Project Management, PHP-MySQL/Postgresql, Visual C++-MSSQL, Open Source Project Development, Search Engine Submission & Optimization.
Project Done:
ERP System
CRM System
LMS System
Search Engine
Warehouse Management System
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?
Asia Freelancer Net > PAULSIEW.TK
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. malaysia freelancermalaysia freelancermalaysia freelancermalaysia freelancermalaysia freelancermalaysia freelancermalaysia freelancermalaysia freelancermalaysia freelancer
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. Asia Freelancer Net > PAULSIEW.TK 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. Freelancer Evilgods.NetI 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. Asia Freelancer Net > PAULSIEW.TK 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, excludingmalaysia freelancer 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, job in malaysia, Malaysia Freelancer. 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 malaysia freelancermalaysia freelancermalaysia freelancermalaysia freelancermalaysia freelancer
will present
a case study of a product I was involved in developing it
in a team of 4 members. Asia Freelancer Net > PAULSIEW.TK .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. Asia Freelancer Net > PAULSIEW.TK
Initial Requirements: Freelancer Evilgods.NetWhen 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. Asia Freelancer Net > PAULSIEW.TK. The client
-usually not involved in computer stuff- usually has contradicting
requirements. malaysia freelancermalaysia freelancermalaysia freelancermalaysia freelancermalaysia freelancermalaysia freelancermalaysia freelancerIn 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. Freelancer Evilgods.NetHe 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. Freelancer Evilgods.NetWhen 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 Asia Freelancer Net > PAULSIEW.TK
suggest it.
Giving examples of the questions we asked to the client:
1-
Do you want the Asia Freelancer Net > PAULSIEW.TK
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? Asia Freelancer Net > PAULSIEW.TK
(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).malaysia freelancermalaysia freelancermalaysia freelancer
. 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,Asia Freelancer Net > PAULSIEW.TK just normal questions as the
ones above. Simple questions that are made intelligently will
definitely get the most out of the client. paulsiew,paul siew, mylms, malaysia, malaysian, asia freelancer, malaysia freelancer, freelancer net, php freelancer, job in malaysia, job hunting, lms, paulsiew.tripod.com ,tripod.com
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.
Asia Freelancer Net > PAULSIEW.TK
Asia Freelancer Net > PAULSIEW.TK. 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. malaysia freelancermalaysia freelancermalaysia freelancermalaysia freelancermalaysia freelancermalaysia freelancermalaysia freelancermalaysia freelancermalaysia freelancermalaysia freelancer
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.Php Programmer, Malaysia Freelancer, php freelancer, asp programmer, asia freelancer
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.Freelancer Evilgods.Net Normally when you reach this phase, you should
have passed several iterations in the beginning, in them you
finish implementing the basic functionalities.Asia Freelancer Net > PAULSIEW.TK
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 Asia Freelancer Net > PAULSIEW.TK 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.