Open Source Software – an Educator’s Overview

I have always been keen on taking advantage of free offers. Given the choice between a fast food meal with a freebie or one without, I’ll plump for the mystery envelope every time. It’s human nature, and marketers know it well.

Even in 1979, when I bought my first home computer, there were user groups who supplied type-in listings for a nominal charge. When I bought the first of a series of Atari ST computers in the ’80s and ’90s, I was a regular customer and contributor to a public domain (PD) software library. Fast forward to the end of the ’90s and I was distributing the source code to a number of simple educational flash games to other teachers over the internet.

So that’s my credentials. Like many others, however, I have received much more from open source software than I have ever put in. For the uninitiated, it is worth explaining a few definitions here:

Shareware Software: is free to try, but there is a moral obligation to register your software with its creator and receive upgrades and support in return for a fee. The evaluation period may last for a reasonable length of time after which some features of the software may become unusable.

The Public Domain: if the creator of a work relinquishes all his rights to his intellectual property, it enters the public domain and can be used by others to create derivative works or profit from it without payment of any fees or need for some form of license.

License: many creators who wish to share their intellectual property with others will give away limited rights that allow the user to do a range of things – but still maintain overall control of the way their work is used. Many open source software developers will use the GNU Public License (GPL) as a framework for stating how their work can be used.

Open source software does not have to be synonymous with poorly written undocumented utilities that nobody else wants. Here are a few of my favourites:

Open Office: a fully-fledged office suite, word-processor, spreadsheet, presentation software and graphics package. The fact that these programs will export both PDF format to be read by Adobe Acrobat reader and SWF flash files for use on the web makes them incredibly useful to me. They are the main application software that I use on my laptop.

The GIMP: an image processing package with enough features to rival Photoshop. For younger artists, my daughters love Tux Paint with its variety of stamps and special features.

Moodle: an open source content management system specifically designed for educators. There are plenty of other open source CMS packages available for blogging or running your own web portal.

Hire the Very Best Developers and Programmers in Offshore Software Development

Hiring is one of the most profitable and booming market today with the emergence of globalization. With this fact in mind, stakeholders start to hire people who are globally competitive and skilled. But the hiring process is bit complicated. Let’s look at the classy ways to hire the very best personnel.

The hottest question today in the field of offshore software development is how to hire software programmers or a web developer. On one side hiring is about probability and on the other side it’s a booming business strategy.

Language, government support, infrastructure, educational system, costs, cultural compatibility, and data /IP security are the variables which benchmark the value of the offshore programmers.

Every country has its uniqueness. Considering the variables overall, Indians shine in offshore outsourcing. Apart from poor infrastructure, India show excellence on government support, man power and overall development costs.

Hire well trained staff who are taught about the culture, HR policy, technology and business domain. Hire experience personnel who think differently rather than working in the same old style and speed. Hire dedicated developers who are committed to success. Hire people who have better managerial and project organizing skills.

To choose the best country, best consulting and good coders for hiring, one must undergo a thorough study into offshore software development and hiring procedures.

Our experience, project specifications and requirements, investment limit, time-to-market, data security, sales and delivery are the determining factors to guess whom do we hire for our project. In short, hire the very best developers and programmers.

The Software Testing Engineer – An Essential Part of the Software Development Team

Software testing is one of the most important milestones in the software development life cycle (SDLC); this also is the most difficult part in it’s development. The testing is carried out from the start of development of the product until the product is ready for shipping to market or the customer. Different testing methods are used during this period until the product is released. The software testing engineer must be a qualified professional having sufficient knowledge of the code details to enable him to make the code work and find any existing problems before market release. The intelligence and experience of these engineers are mainly responsible for having such a large amount of quality software in the market.

They are normally connected with the testing of code and is a part of the quality assurance team. QA Engineers may test software , but are not always expert test engineers. They test the software for performance, functionality, usability, portability, efficiency, compatibility, scalability, resource usage, security etc.

Black box and white box testing are two of the most important testing types. The black box testing requires no knowledge of internal logic or code structure and is mainly focused on the testing for requirements and functionality of the application. In this the tester is not concerned with the internal operations which make the data do what it does. The white box testing deals with the internal logic and structure of the code. Both these tests are performed by the software testing engineer and are equally important. However, they serve different purposes.

During the various stages of the software development life cycle (SDLC), a number of testsare conducted at different stages of code development. The testing is carried out starting with the smallest module and increasing to complex integrated modules in the later stages of testing. The process includes unit testing, integration testing, system testing, system integration testing, alpha testing, beta testing, functional testing, regression testing, security testing and acceptance testing. The testing may be done manually or it may be done using automated software. In some cases it may be tested both ways. It is the responsibility of the software testing engineers to ensure that these technical tests are completed properly before the product is released to the end market.

Anyone interested in taking up the career path of a software testing engineer should possess requisite educational qualification and training. Some of the engineers go to schools where Computer science degree is awarded. It is not necessary that the testers should have computer science degree. There are many accredited institutes such as American Society for Quality (ASQ), Quality assurance International, and International institute for software testing training courses and award certificates for completed training. Some schools are also conducting online courses for this.

A number of companies recruit persons who do not have adequate qualifications for testing positions for entry level jobs in the computer department; these persons can come up from ranks to qualify for the position. Alternately they may get assistance from the company for getting training and becoming certified. The greater the experience of the software testing engineer, the more will be his efficiency in testing. He will also be able to set up simple tests right up to writing the test codes and doing the white box testing. This profession offers challenges for people having knowledge and aptitude for problem solving and compensates them well.