More Than Just Writing Code

Every google search you do on the term “Software Development”, you’ll see a trillion other results popping up and defining it. But, what does it really mean? Is it just sitting for hours and programming? Is it creating a software like Adobe Photoshop by yourself? How does it work?

Don’t worry, I’ll define it for you in an easy-to-understand format :)

Textbook Definition

Software development is a process of writing and maintaining the source code, but in a broader sense, it includes all that is involved between the conception of the desired software through to the final manifestation of the software, sometimes in a planned and structured process.”

That is a very well defined description but could we simplify and add more to this? YES TOTALLY!

Simplified Definition

Think of it as being the lifecycle of a product from birth (code, planning) to being mature or finalized (finished product). For example, let’s take…Software A. First the development team plans the product, then analyzes (user interviews etc.), then designs, and then finally implements (programming) Software A. After implementation and testing the team finally deploys or establishes the software to the users. Like we said earlier we have to take care of the baby! So developers continue to maintain the code and always work around to simplify it (e.g. make it shorter). This is what we call as Software Development Life Cycle or SDLC.

As this article is not specific to SDLC, we won’t go into that here but hopefully that cleared some doubts in your mind!

Now that I’ve explained the gist, you might be thinking that it’s all about writing programs and a LOT of cool but hard to understand terminology. Fear no more as here comes the cool part.

My Definition

What I’m trying to say is that IT IS MORE THAN JUST WRITING CODE!

It is communication. It is planning. It is interacting. It is visualizing a solution.

Although it can be done individually, it is crucial to note that it is a TEAM EFFORT. Systems design, source control, testing, analysis are all VERY important tasks that requires a strong team. In fact, practical implementation of code with a group of supportive and enthusiastic individuals can teach you more than maybe an online course or even school!

I think this is a great time to shed light on my time as a Software Developer Intern.

Before my internship, I simply thought Software Development was writing one Java or Python program that ran all the important parts of a given software. For example, one program that had a password detection engine, facial recognition software etc.

Well, let’s just say that I was VERY wrong.

The internship introduced me to all the technical elements such as Python, geospatial libraries, source control, GPS signal handling, REST APIs, Django and more cool concepts/technologies, BUT that wasn’t the best part of the internship at all!

The best part was the ability to cooperate as a team, bounce ideas, see what fits and what doesn't, think of how we could aim to improve our current methods and ultimately solving the PAIN of our users.

What I’m coming at is that Software Development is more than just writing code. It’s critical thinking, teamwork, collaboration, analysis, design, support and LOADS of communication.

Conclusion

I want to finally end off by providing some useful links for current and aspiring Software Developers. Please use this to give you a head-start and DO NOT simply rely on these links.

Software Engineer and Blogger! Contact me at: barathvelmu@gmail.com.