Click here to Skip to main content
15,891,431 members
Articles / All Topics
Technical Blog

What is the Mission of a Software Developer

Rate me:
Please Sign up or sign in to vote.
5.00/5 (1 vote)
30 Mar 2015CPOL6 min read 8.2K   4   4
What is the mission of a software developer

Nowadays, there is a great demand for software development out there. The world needs software solutions just about anything. From planning and running complex business and industrial services to planning and running your day. From execution of mission critical operations to playing for fun, almost everything is backed by a software. There are millions of software developers out there and yet the global need for them is not about to be met. The world needs a lot more software developers, but seriously, why do we need them, what is the mission of a software developer that is so important to the world economy?

Let us analyse first how a software developer grows. Basically, there are two major paths one may follow to be a software developer. One is to have a formal education (be it a university degree, or a formal training program) and acquire the necessary skills to develop software, and the other is to be an autodidact and teach yourself using plenty of available resources (books, online courses, articles, tutorials, etc.) about software development.

The self learning approach is very personal and it is hard to generalize the way one teaches himself therefore it is hard to draw conclusions about what process is followed or what the outcomes may be. Also, compared to the numbers, I am sure this group is the minority, and the majority of developers come from a more formal path.

The formal path, however, has a visible indicator how one is being trained in the field of software development. We can have a look at the curricula of many universities and analyze them. We can get a subset of subjects that are covered from most universities, or so to say core subjects, and they are programming languages, databases, data security, algorithms, maths, web development, etc. (I am not focusing here on training programs as usually they tend to have a narrower focus on one technology or one aspect of it, and rarely on a complete process as universities do). Some universities offer also non computer science complementary courses such as on entrepreneurship, preparing business plans, biology, etc., but only as elective courses that are left on the will of the student if he or she wants to take it.

From the university curricula I have seen, I can draw the conclusion that most of the universities prepare the software developers as pure technical persons who are supposed to solve technical problems related to software development. But is this the reason the world needs the software developers that much? Personally, I do not agree with this, and I keep asking myself the question:

What is the mission of a software developer?

Let us try to answer this by trying to find the answer to this question: What does a software developer do after graduation? I can think of several answers to this:

  1. Industry path: He or she is employed by a company who needs software solutions for their business needs (be it a software developer company, a bank, an engineering company, a distribution business, whatever…) and he/she works there trying to create software solutions for the needs of the company.
  2. Academic path: He or she may decide to pursue further studies and be a researcher who continues to contribute to academia by teaching and to the knowledge by researching unknown solutions for existing technical, real life or business problems.
  3. Entrepreneur path: He or she creates a solution for a real life problem or a business problem, makes a business out of it, and creates an enterprise which runs a business by providing a software solution for a business problem.

Of course, it is not easy to sum up all available paths to follow, but in my opinion these three cover the major available paths to follow for a computer science graduate.

Now what can I see from these choices is that, none of them are about solving technical problems purely. What I can also conclude is that, solving a real life or business problem is what turns out to be the real reason why we need so many software developers today. From this, I can confidently say that

The mission of a software developer is to solve real life and business problems.

You may say that is something we know and it is obvious, what is the problem about this? Well, I have a lot of contacts with different developers, experienced ones and want to be ones, university trained and autodidacts. I am teaching programming courses myself on a university level and professional level for over 6 years now, and I have had the opportunity to deal with over 1000 students up to now. What I can see is that, software developers see themselves as technical persons who are there to solve technical problems and they do not care about the business world. All they are interested is that how a technology or a framework works and how they can use or advance it. That is it. They care about code quality, they care about unit testing, they care about code reuse, and lots of other technical characteristics of the software, but rarely they discuss about how usable their applications are, or how efficiently they optimize a business problem their software is addressing or what business value they have delivered with the software they have built. I am not saying that technical characteristics are unimportant, far from it, we should always strive to write the best quality code we can, according to best industry standards, using best practices, and best patterns we know. I am just stating that the most important thing is we deliver value with software. If there is no value, there is no point having unit tests, most clearly written code, or bug free code, as it will not be used.

But perhaps this is not their fault as the education system they are following is not preparing them to think in that way, and that is where our duty as computer science teachers come to a focus. It is us, everybody who teaches a computer science related subject, be it a university course, an online course, or tutorial series, we should communicate the idea that technology is there to solve real life and business problems. I do think that we should not grow technical persons who write code, but we should teach them to be problem solvers who provide value with their solutions.

What do you think? Leave a comment and let’s discuss about it. If you agree with my opinion and think this is a valuable point, please share it so it reaches a broader audience.

The post What is the mission of a software developer appeared first on arian-celina.com.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Architect
Albania Albania
I am a Software Architect, a web developer, and a Computer Science lecturer. I enjoy solving business problems by providing software solutions to them. My favorite technologies and fields of interest include ASP.NET, C# programming language, Java programming language, Javascript, jQuery, AngularJS, Web Services, REST, and mobile application development

Comments and Discussions

 
QuestionSome English corrections, and some comments. Pin
KP Lee31-Mar-15 15:47
KP Lee31-Mar-15 15:47 
I put the original followed by the suggested change.

...solutions just about anything... -> ...solutions for just about anything...
...everything is backed by a software... -> ...everything is backed by software...
...Now what can I see from these choices is that, none of them are about solving technical problems purely... -> ...What I can see from these choices is that none of them are purely about solving technical problems...
...What I can also conclude is that, solving a real life or business problem is what turns out to be the real reason why we need so many software developers today... -> ...I also conclude that the real reason why we need so many software developers today is to solve a real life or business problem... (That has always been true from the point at which business realized software wasn't just a toy, but it actually could do that. All real life problems have a business aspect to them, someone has to invest resources to build the solution and they either do it for pay, the possibility of being paid, or for themselves and there is reward in each path, therefore a business path.) In effect most real life problems don't get fixed until business is willing to pay to get it fixed or a programmer is willing to build the business to solve the problem. By the way, you can't research unknown solutions, you can research the particulars of a problem and build the parameters of an as yet unknown solution around those particulars.
...The mission of a software developer is to solve real life and business problems... -> ...The mission of a software developer is to solve problems... A business problem is a real life problem that business wants to solve, a real life problem has a business solution waiting to be found.
...All they are interested is that how a technology or a framework works and how they can use or advance it... -> ...All they are interested in is how a technology or a framework works and how they can use or advance it... IE "is that how" > "is how"
...but rarely they discuss... -> ...but they rarely discuss...

"I am sure this group is the minority", I'm not so sure. I am in an age group where learning computer languages was rare. I had to get into a major university before I could get near a computer and that was: type out commands on cards, make sure they weren't bent, mistyped, out of order, fix them, and turn them in and the next day you can see if your code compiled. (Returned by techs allowed to get near the actual computers in the refrigerated room the computer took up.) And that was just play time on irrelevant classes in computers that I took. (Absolutely no computer science classes because that term hadn't been invented, nor was business that interested in trained computer people.) The education system has changed a lot. You were expected to study on your own time and come to class prepared to answer questions on the assigned portions of the book(s). The teacher would guide you when you started down the wrong path, would teach things not in the book but otherwise expected you to keep up.

One time, three of us were assigned to deliver a major project in three months. This was on an OS none of us had used before, had to use new form commands to build forms, the forms editor wasn't advanced like we were used to, so the code had to do the error checking, and had to use a programming language none of us had used before. It was basically a cross between Fortran and Cobol, so that wasn't so bad. We split times for the one text book on the language, and the tasks into five, two of us took two of them and then we split our time correcting the errors of the village idiot on the last fifth. When I took refresher courses a decade ago, I realized training had substantially changed because I was studying 4 chapters a day for 6 hours alone, so when I came to class, I knew how the program worked and for the most part how to code in it. While he was teaching the class how to hardcode a colored rectangle on the screen, I was passing data to a graphing chart that used the size and values passed to determine the scale and anointing outside of the chart with values that changed based on the data passed.

I do like to build efficient solutions, but that doesn't seem too important to a business unless the customer is leaving because their response is 20 seconds when the competitor is doing it in a half second. The overnight job that took 8 hours to run, now runs in 30 seconds. "Oh, that's nice." The overnight job that is interfering with customers during the day has to be fixed "RIGHT NOW". I can see the point of view, but it is frustrating that is is important that I know how to do things efficiently so only when something that impacts the bottom dollar can be fixed. I can understand how business drives the requirements, but it is sometimes irritating when they do.

QuestionGood university teachers teach this. Pin
Vternal331-Mar-15 6:46
Vternal331-Mar-15 6:46 
AnswerRe: Good university teachers teach this. Pin
Arian Celina31-Mar-15 10:06
Arian Celina31-Mar-15 10:06 
GeneralRe: Good university teachers teach this. Pin
Member 1095214431-Mar-15 21:49
Member 1095214431-Mar-15 21:49 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.