Inventory Accounting Billing Payroll HR CRM ERP Software Development Delhi India
Software Development Overview Processes
& Tips:
Software development is the process
of producing or creating a software. There could be several aims of developing
a piece of software:
Usually the aim is to satisfy the
specific needs of a client.
Secondly, to meet the needs of the
potential users.
For personal use to meet the need of
a scientist.
Mainly, it refers to the activities
or processes of writing and maintaining the source code. Broadly, it includes
the involvement of the conception of the desired software and the manifestation
of the product. Software development may include research, new development,
modification, reuse, re-engineering, maintenance, or any other activities that
result in software products. Usually, it involves the inputs of the several
departments like marketing, research and development, engineering and general
management.
Most methodologies share some
combination of the following stages of software development:
Market research
Gathering requirements for the
proposed business solution
Analyzing the problem
Devising a plan or design for the
software-based solution
Implementation (coding) of the
software
Testing the software
Development
Maintenance and bug fixing
These stages are often referred to
collectively as the software development lifecycle, or SDLC. Different
approaches to software development may carry out these stages in different
orders, or devote more or less time to different stages. The level of detail of
the documentation produced at each stage of software development may also vary.
These stages may also be carried out in turn (a ?waterfall? based approach), or
they may be repeated over various cycles or iterations (a more
"extreme" approach). The more extreme approach usually involves less
time spent on planning and documentation, and more time spent on coding and
development of automated tests. More ?extreme? approaches also promote
continuous testing throughout the development lifecycle, as well as having a
working (or bug-free) product at all times. More structured or ?waterfall?
based approaches attempt to assess the majority of risks and develop a detailed
plan for the software before implementation (coding) begins, and avoid
significant design changes and re-coding in later stages of the software
development lifecycle.
Planning
The important task in creating a
software product is extracting the requirements or requirements
analysis.Customers typically have an abstract idea of what they want as an end
result, but not what software should do. Incomplete, ambiguous, or even
contradictory requirements are recognized by skilled and experienced software
engineers at this point. Frequently demonstrating live code may help reduce the
risk that the requirements are incorrect.
Once the general requirements are
gathered from the client, an analysis of the scope of the development should be
determined and clearly stated. This is often called a scope document.
Certain functionality may be out of
scope of the project as a function of cost or as a result of unclear
requirements at the start of development. If the development is done
externally, this document can be considered a legal document so that if there
are ever disputes, any ambiguity of what was promised to the client can be
clarified.
Implementation, testing and documenting:
Implementation is the part of
the process where software engineers actually program the
code for the project.
Software testing is an integral
and important part of the software development process. This part of the
process ensures that defects are recognized as early as possible.
Documenting the internal design
of software for the purpose of future maintenance and enhancement is done
throughout development. This may also include the authoring of an API, be
it external or internal.
Deployment and maintenance:
Deployment starts after the code
is appropriately tested, is approved for release and sold or
otherwise distributed into a production environment.
Software Training and Support is
important and a lot of developers fail to realize that. It would not matter how
much time and planning a development team puts into creating software if nobody
in an organization ends up using it. People are often resistant to change and
avoid venturing into an unfamiliar area, so as a part of the deployment phase,
it is very important to have training classes for new clients of your software.
Maintaining and enhancing
software to cope with newly discovered problems or new requirements
can take far more time than the initial development of the software. It may be
necessary to add code that does not fit the original design to correct an
unforeseen problem or it may be that a customer is requesting more
functionality and code can be added to accommodate their requests. If the labor
cost of the maintenance phase exceeds 25% of the prior-phases' labor cost, then
it is likely that the overall quality of at least one prior phase is poor. In
that case, management should consider the option of rebuilding the system (or
portions) before maintenance cost is out of control.
Bug Tracking System tools are
often deployed at this stage of the process to allow development teams to
interface with customer/field teams testing the software to identify any real
or perceived issues. These software tools, both open source and commercially licensed,
provide a customizable process to acquire, review, acknowledge, and respond to
reported issues.
Anil Bhat Cell : +91 - 9911720780 Url : http://sanganak-technologies.blogspot.com
Email : sanganaktechnologies@gmail.com
Post Your Ad Here
Comments