Posts

Software development as a growing profession - Past

Image
Software development is a growing profession. In three blog posts I’ll take a glance at the past, present and future of software development. This post is on software development from past to present. Humans have made devices that can compute complex calculations from input, as far back as 100 BC, like the Antikythera mechanism . The next step, programming, has been possible since at least the 9th century . The first programmable devices that we know of were programmable musical instruments. The first programs were thus rhythms and melodies. Centuries later Ada Lovelace appeared. She theoretically programmed an algorithm in 1843. She even wrote proofs that it would work. The software was to be executed by a Charles Babbage Analytical Engine, a mechanical computer. The engine ended up not being build, only sets of plans exist. This, sadly, prevented the growth of the profession of steam(punk) developers.  The principle of modern computers was proposed by Alan Turing in 1936 . Nine y...

A Programmer's Oath - Part 04 - Another amateur's attempt at an oath

“ Programming, as a profession, is of great importance to society. Other professions with similar importance have oaths and codes of conduct to guide the professionals in their field, like M.D’s and lawyers. This has benefited their professions in many ways, like taking the lead in the creation of legislature.” ( Read my extended summary of Uncle Bob’s presentation ) Inspired by Uncle Bob I'm taking a glance at an oath for programmers. Why is it important? How can we build on the experience in other professions? What role could an oath play? After 3 other posts, here is my attempt at a Programmer’s Oath. It is an adjusted copy of the Declaration of Geneva , the most widely sworn oath. I’m quite happy with the outcome. Still, like code, any oath it should be properly reviewed. In programming the direct subjects of our work are the programs we create. An oath shouldn’t be complicated by including possible patrons (e.g. ...

A Programmer's Oath - Part 03 - My experience with oaths

“ Programming, as a profession, is of great importance to society. Other professions with similar importance have oaths and codes of conduct to guide the professionals in their field, like M.D’s and lawyers. This has benefited their professions in many ways, like taking the lead in the creation of legislature.” ( Read my extended summary of Uncle Bob’s presentation ). Inspired by Uncle Bob I'm taking a glance at an oath for programmers. Why is it important? How can we build on the experience in other professions? What role could an oath play? In a profession long ago.. In a galaxy long, long ago (2014), I worked as a licensed an in-house insurance agent. A year later I started as an independent financial advisor. While I worked in the financial sector, the lack of trust in the sector was… noticeable. And yes the sector deserves it. The global financial crisis of 2008 is just one of its sins. Some people experience the fallout even today. Jus...

A Programmer’s Oath - Part 02 - What is an oath? What is the most well known oath?

“ Programming, as a profession, is of great importance to society. Other professions with similar importance have oaths and codes of conduct to guide the professionals in their field, like M.D’s and lawyers. This has benefited their professions in many ways, like taking the lead in the creation of legislature.” ( Read my extended summary of Uncle Bob’s presentation ) Inspired by Uncle Bob I'm taking a glance at an oath for programmers. Why is it important? How can we build on the experience in other professions? What role could an oath play? An oath is a pledge to a third party. A pledge is a sincere statement of fact or a promise. The third party makes the pledge even more sincere and to be taken for truth. Possible third parties are god(s), a ruler, one’s life.  One of the most well known is the Declaration of Geneva . A declaration of a physician’s dedication to the humanitarian goals of medicine. It was intended as a modern revision of th...

A Programmer’s Oath - Part 01

Here’s a recap of a talk by Uncle Bob on a programmer’s oath: “ Programming, as a profession, is of great importance to society. Other professions with similar importance have oaths and codes of conduct to guide the professionals in their field, like M.D’s and lawyers. This has benefitted their professions in many ways, like taking the lead in the creation of legislature.” ( Read my extended summary of Uncle Bob’s presentation ). The oath Uncle Bob proposed in the talk seems to be comprised of code centric points (five out of nine literally mention code). At many points it seems to be more of an opinionated work instruction, than oath aspiring to higher goals.  In my opinion it mainly shows how unfamiliar our profession is with oaths (and probably ethics). Still, other fields have been swearing oaths for millennia. Like any good coder, we should build on the work of others. This should allow us to skip a few millennia... more on this tomorrow.

Summary: GOTO 2017 - Robert “Uncle Bob” Martin - The Scribe’s Oath

Image
In ancient times reading and writing was considered a highly specialized skill. This skill was practiced by Scribes. This allowed laws to be passed on, stock to be kept of grain stores, planning to be done of crop rotation. Today programmers are the modern scribe. Almost all our important interactions happen through software that programmers have created.  Interacting with a television, microwaves, computers, phones et c . Scribes, as a profession, had an oath, a code of conduct and ethics as a group of professionals. We as programmers do not have these yet. Since 1946 the number of programmers has been rising, Bob says to around 100 million in 2017. And he poses that this doubles every 5 years. The facts say there are only 13 million, but growing with 20% each year . This means that there is a doubling in the amount of developers each 4 years. That also means that the craft of software development gets continuousl...

Test Blogpost

This post is solely used to review scripts that should enhance the blog. Expected: below the code block a copy button is added. FROM openjdk:11-jre-slim ARG JAR_FILE=target/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"]