Tuesday, August 20, 2013

Software Development process and business inquiries

Software travels into everything and changes anything it strikes upon. Software developers are working hard to keep going and develop better applications. Software Development is the process of developing software in a step by step and organized way. Here are the finest procedures that turn any software development process & business into a successful one.

  • A thorough Market research - This helps us to pinpoint & study market needs and to find out what people want/need.
  • Be choosy on Clients - When you are selective on your clients, you can do better business and get more profits.
  • Gather detailed requirements - It is indeed important to interact with the client and get all three types of requirements (functional, environmental and performance requirements). While gathering requirements focus on user point of view rather than your point of view.
  • Create Scope (range of the project) Document - Investigate scope of the development and create scope document. This will help you and your client to understand precisely the expectations from both sides to be encountered during the course of the project.
  • Think as a user and not programmer - This thought process helps the programmer to develop user-friendly applications.
  • Coding standard - Set up an ideal coding standard. You can even enhance the system by automating the coding standard.
  • Simple Coding - At times Complex codes make the programmers to discard the existing code and write a new one. Hence every developer should focus on simplifying the code they produce (by using advanced technologies). This greatly reduces tons of complexities to be faced in future and increases the maintainability of the code
  • Document everything -  This allows us to uphold the history of the project at various cycles which can be used in future by the maintenance people.
  • Improve the software process by analyzing and measuring the complexities.
  • Flexible Software architecture - Software architects with deep knowledge of the entire system should be assigned to create the architecture of the application. He/She should focus on the flexibility of the architecture and should be designed in a way to accommodate any upcoming changes.
  • Reusable components - The team should likely opt for Component based software. The programmers should develop more general and reusable components so that many other programs can use them.
  • Developer testing - The developers are the best white box testers for their own code.  Hence the application needs to be tested by the developer itself before passing to the Quality Assurance team.
  • Customer testing - This kind of testing is very important as it provides feedback on how the real users are using the system and to make the correct decisions after testing.
  • Eventually make the software release process to be simple and reliable.

Piece of Software History

Years back the Computer Hardware companies offered software at free of cost bundled with their hardware. This has been changed in the 1960s as a solution for the dispute between the companies ADR and IBM. In 1965 ADR developed the first licensed software product and patented their software in 1968. ADR was competing against a free software provided by IBM. ADR accused that IBM was "retarding the growth of the independent software industry". In 1969 the US Department of Justice charged IBM with ruining businesses by bundling free software with IBM hardware. Hence IBM unbundled its software. And then software became independent from hardware product. This is a milestone behind today's multibillion dollar software industry.