How Software Engineering is different from Coding: Part-I

Arvind Kiwelekar
SE 101 : Software Engineering
4 min readOct 2, 2022

--

Photo by Ilya Pavlov on Unsplash

It is challenging for a significant number of undergrads and newly hired software engineers to appreciate the differences between computer programming and software engineering. A common misconception among them is that Software Engineering is simply an extended form of programming.

This one-dimensional and too simplified vision of software engineering, which is dominated by only computer programming, is a barrier to recognising the distinctions between computer programming and software engineering. This imprecise assumption must be overcome before you can launch a successful career in the software industry.

In order to succeed in their new roles as professional software engineers in the industry, graduating students must have a firm grasp of the differences between software engineering and programming. Grad students who are aware of these distinctions have a much easier time making the transition from student to a professional engineer. A graduate student’s transfer from campus to the corporate world can be facilitated by the acquisition of new information and abilities.

Photo by Brooke Cagle on Unsplash

Software engineering happens in an organizational context

The majority of software development takes place within organizations, with programming activities serving as the primary focus, supported by testing and deployment. Writing computer programs when you are an undergrad student is often an individual activity, with a few exceptions of a team or term project. Furthermore, programming done in an academic setting has the goals of acquiring certain skills, such as learning a new language or demonstrating a proof of concept through activities such as developing a web application and developing a team spirit.

Software engineers typically work for major companies. Producing computer code is the main component of their organizational responsibility. But the nature of computer programming is different. In an organizational setting, computer programming is a collaborative activity. The goal is to build software that is both completely functional and fully operational. This software may be used to handle complex tasks such as financial transactions, airline or train reservations, or other similar tasks. When computer programming is done in an organizational setting, the goal is to apply programming language skills demonstrating an ability to work in a team to enhance the productivity of the team and organization.

Photo by Sonja Langford on Unsplash

Software Engineering is programming integrated with time
.

It is possible for the lifespan of software to range anywhere from hours to decades. When software is built by developers working in an organisation, the lifespan ranges over decades or is unbounded.

The duration of the piece of software that was created by a student could range from hours to months. For example, the programming assignments that you are required to complete as a part of your courses have a limited duration of a few months, whereas software such as streaming videos on YouTube, operating systems such as Linux, and web servers such as Apache have an unbounded time, and we have been using this software for decades.

The temporal dimension is one way of differentiating software engineering and computer programming from one another. When computer programs are designed to run for longer periods of time, other activities, in addition to coding, become significant and time-consuming. A greater amount of time is spent on activities such as rigorous testing, operational efficiency, and adapting to changes in technologies or underlying hardware.
Because of this, many people think of software engineering as simply computer programming that takes into account the passage of time.

Photo by Steve Johnson on Unsplash

Software engineering is the multi-person development of multi-version programs

As we’ve seen before, software engineering is a group activity that involves participation from more than one individual when this activity takes place within an organisation. While this is true, it is also the case that new software versions need to be made available on a consistent basis in order to accommodate ongoing developments in both underlying software and hardware. Upgrades to a student’s program in response to a newly released version of an operating system or database are extremely uncommon. Combining these two aspects, one way of looking at software engineering is the collaborative production of multiple program versions by multiple people.

Takeaways

1. Software engineering happens in an organizational context.

2. Software Engineering is programming integrated with time.

3. Software engineering is the multi-person development of multi-version programs.

References

  1. Software Engineering at Google

--

--

Arvind Kiwelekar
SE 101 : Software Engineering

Arvind is a Professor of Computer Engineering in Dr. Babasaheb Ambedkar Technological University Lonere India.