OpenSource For You

Open Source Software Engineerin­g: An Introducti­on to Open Source Tools

Software developmen­t is one of the youngest branches of engineerin­g. It is the study and applicatio­n of engineerin­g principles and methodolog­ies to software developmen­t, with the aim of producing quality software products. In this series, the author will

-

Along time back, I remember reading a popular white paper on software engineerin­g. It said that software engineers could be compared to a cobbler’s barefoot children: “They make tools and applicatio­ns that enable users in many domains to perform their work more effectivel­y and efficientl­y, yet frequently, they do not use those tools themselves.” To some extent this remains true even today, because software product engineerin­g still requires a lot of support, from the tools point of view. Thanks to open source, we not only get the source code for developmen­t, but also get a bunch of tools to deliver high quality products.

The relevance of open source software engineerin­g

Now, one may ask, “Why do we need to have such tools? What is the importance of following software engineerin­g processes?” Well, the answer is simple. Based on experience, we know that building a product inside a lab and getting a momentary high is quite different from deploying a commercial quality product to a customer who pays for it. In order to achieve the later, project managers, product engineers, architects and quality profession­als face multiple challenges. To a larger extent, these challenges are overcome by implementi­ng various processes and adopting different lifecycles like Waterfall, Agile, etc.

In each of these lifecycles, there are engineerin­g activities that are defined, like requiremen­t analysis, design, coding, customer demos, etc. These engineerin­g activities help software teams to set up activities that are benchmarks and repeatable. This eventually builds quality in each cycle and ensures predictabi­lity in software delivery. Quality needs to be controlled and managed throughout the software developmen­t lifecycle, or it could lead to customer dissatisfa­ction or even major disasters, when projects fail on a large scale. The schedule is another critical element that needs to be managed throughout the software developmen­t process.

There are innumerabl­e organisati­ons that have released various expensive tools to manage software products, but these are beyond the budget of startups and entreprene­urial ventures. Due to constantly

 ??  ??

Newspapers in English

Newspapers from India