Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Why Do Computer Scientists Need To Understand Software Developers?

DZone's Guide to

Why Do Computer Scientists Need To Understand Software Developers?

· Java Zone
Free Resource

Microservices! They are everywhere, or at least, the term is. When should you use a microservice architecture? What factors should be considered when making that decision? Do the benefits outweigh the costs? Why is everyone so excited about them, anyway?  Brought to you in partnership with IBM.

I saw a tweet asking why do we educate computer scientists to get developers and compared this to structural engineers and stone masons.  I believe this is a good question with a flawed premise.  The flaw is in thinking that a developer’s job is as simple and limited in variations as that of a mason.  Almost every problem attacked by a developer requires that they bend their tools and materials in a new way.  This requires that everyone on a team communicate and at least on some level understand each other’s hurdles.  This is not an environment what you create a spec and throw it over the wall.  Even then, I would believe that a structural engineer needs to understand materials and how they are connected in order create new designs.

There is also the question of what do each of these titles mean?  What is the job that each really does?  Both titles have a wide range of meanings.  Computer scientists to my way of thinking are defined as theory and design driven.  How can you really understand a theory unless you understand its practical application?  Likewise I think developers create better solutions if they understand the theories that govern the environment that they leverage.

Of course all of this brings us back to traditional argument of users needing to understand software development.  It isn’t the details of each job that you need to be familiar with. You should know enough of how different team members work in order to appreciate when you are told its difficulty or relay requirements at the proper detail level.

In the end I think we all benefit from knowing how our work affects those that we work with.  Living in a bubble only leads to disaster.

Discover how the Watson team is further developing SDKs in Java, Node.js, Python, iOS, and Android to access these services and make programming easy. Brought to you in partnership with IBM.

Topics:

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}