DEV Community πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’»

DEV Community πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’» is a community of 963,503 amazing developers

We're a place where coders share, stay up-to-date and grow their careers.

Create account Log in
Cover image for What Do Software Developers Actually Do?
raddevus
raddevus

Posted on

What Do Software Developers Actually Do?

What Do Software Developers Do?

To get started with designing Software Solutions, I believe we need a simple, single line definition of what software developers do.

This definition will serve as a foundation we will continually return to in this book to determine where we are at.

First Tenet of Software Development

Software developers write code to turn manual processes into automated processes.

That’s really all we do.

Does That Seem Too Simple?

You may think that is too simple to cover all software.
However, if you consider any software, even a game, from an abstract viewpoint, you’ll find that it is really just a manual process that has been turned into an automated process.

Image description

Pac-Man As A Manual Process

Take a look at the Pac-Man video game. Originally, Pac-Man could’ve been a board game where players roll dice to move Pac-Man and the ghosts. The player could decide the direction for Pac-Man and you could spin a spinner to get the direction for each ghost movement. As you move the Pac-Man along the path on the board you would simply tally up how many dots he eats with each roll of the die.

Next, you’d roll the dice for each ghost and spin the spinner to indicate movement direction. Each turn the ghosts could possibly land where the Pac-Man token is and destroy him.

Of course, the object would be to get your Pac-Man to eat all of the dots before he is eaten by the ghosts. (See https://en.wikipedia.org/wiki/Pac-Man^ for more on the Pac-Man video game.)

Now that we know the manual details of how Pac-Man should work, it would be far easier to write the video game.

The video game simply automates this process. The code is β€œrolling the dice” and β€œspinning the spinner” to move the ghosts behind the scenes. It’s also updating the location of the ghosts each time making it seem as if they are moving. You see? It all really is just automation.

However, you’ve learned another important axiom related to software development. We'll take a look at that second important axiom tomorrow.

What Do You Think?

Do you agree that Software Development is just Office Automation?

Top comments (4)

Collapse
 
jonrandy profile image
Jon Randy • Edited on

Software developers write code to turn manual processes into automated processes.

Totally disagree.

Back in the day, I wrote a display driver for a specific graphics mode that the language I was using did not support... how was that automating a manual process? How are the creators of demoscene demos automating a manual process? How are developers working on a new video compression codec automating a manual process? The list goes on and on.

Sure, you could tenuously link any software development to a manual process - even to a fictional one created to support your point, like you have above - but it would be a stretch in a lot of cases. The fact that you even have to make up a case to support your assertion points to its weakness.

A lot of developers simply write code... for fun. Your program does not have to be useful at all, let alone automate a manual process. It's not even necessary to have a goal in mind when you sit down and start making something. I will very often sit down with some random ideas in my head, and just start noodling around with code - no plan, no goal, just play. Something interesting might come out of it, or it might not. Software development for one's own amusement IS a thing.

The original statement sounds exceptionally dated, like it could be lifted from a software development textbook from the 70s (and yes, I'm old enough to have seen some). The capabilities and uses of computers/devices have moved on and diversified greatly over the last fifty years or more - way beyond simple 'manual process automation'.

Collapse
 
codingchili profile image
Robin Duda (they/them)

It's not all software developers do, but a substantial portion of it is. So for a simple single line definition its alright but limited. How would you define it in a single line so that non-devs would understand?

Collapse
 
raddevus profile image
raddevus Author

I would put it like this:
"We write code to turn manual processes into automated processes." πŸ€“
What else do we do? What's your list?
Remember, I'm talking about what we do when we write code for 99% of businesses.

Collapse
 
jonrandy profile image
Jon Randy

"Software developers write code that tells computers how to do stuff"

🌚 Life is too short to browse without dark mode