Sunday, December 18, 2011

Custom Software Development

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
Email : sanganaktechnologies@gmail.com

9 comments:

  1. DREAMZ GK INFRA REVIEW, DREAMZ GK INFRA REVIEWS BANGALORE, FLATS IN BANGALORE , LEADING BUILDERS IN BANGALORE , CONSTRUCTION COMPANY IN BANGALORE, BEST BUILDERS IN BANGALORE, 2&3 BHK FLATS IN BANGALORE, INDIA.FLATS IN BANGALORE, DREAMZ GK INFRA REVIEWS, LEADING BUILDERS IN BANGALORE, 2 & 3 BHK FLATS IN BANGALORE.

    ReplyDelete
  2. You have given the awesome tips ans usefull too...please keep experimenting with your composing and doing interesting things! I’m enjoying it.by ETH 316 Week 3 Individual Assignment provider

    ReplyDelete
  3. Thanks regarding Your excellent Post & Contain In Your web site.Really spectacular post and that i very enjoyed the insign you bring back the subject, awful stuff.Thanks and keep sharing..by MGT 311 Final Exam

    ReplyDelete
  4. Thanks for the inspiration!I was very happy to have found this site. I wanted to say thank you for this
    excellent post.Its been awesome to read and get to know latest updates of SEO services.

    by ETH 316 Week 4 Team Assignment provider

    ReplyDelete
  5. Nice Post with information regarding use! The ways you have illustrated the information is impressive. Thanks!.. ..... by MGT 230 Final Exam provider.

    ReplyDelete
  6. The first thing is that you have to plan your time. It means that you have to share your study load on all of the months of the semester. When doing so you have already acquired the required knowledge before the exam day approaches....for more information you can also go through
    MGT 498 Week 2

    ReplyDelete
  7. Great resourses.I really appreciate for posting such a great Article.it could be the better if you still have additional stuff which will be useful for the students who are eagerly looking for guides...for more information you can also go through
    MGT 498 Week 1

    ReplyDelete
  8. Thank you so much for providing this valuable information. It is very important to us. You Posted a Good Stuff... by MGT 521 Final Exam provider

    ReplyDelete
  9. CTMI, one of the leading Steam turbine manufacturers, situated in Hoskote, 25 kms from Bangalore, CTMI has, within a decade, rolled out a number of turbines up to 30 MW. across a range of industries.

    ReplyDelete