Assertfail

Way of working and method

26 Sep 2022

How do we develop software

How do we arrive at working software? Some of the ways I’ve seen are:

Not every software shop agrees on how to test software. GUI software is usually dealt with in a different manner compared to server software.

Restrictions

Developers can be helped in their reasoning by restricting what the code and developers are allowed to do.

Social mechanisms

Common social methods (that I know of) used to restrict a solution are:

These methods are not applied in every codebase.

Mechanical restrictions

Common tools to restrict what the code is allowed to do and how it is written are:

I do mean that not all of these restrictions are applied in every development shop.

Scientific method

How does this compare to the scientific method?

Existing code

In many cases it takes many years and you have multiple people and involved. The task of keeping software working as intended then also involves knowledge sharing.

What I’m trying to say is that there are many ways that people have been going on writing software. It is not difficult to arrive at working software that no one can read. I’ve seen it happen due to too much text or written in a language/pattern people are unfamiliar with. Common reasons why that might happen can be:

Literary methods

This gets us into the question how do you write.

This is mostly my interpretation of written code. I usually try to understand the code and the context it was written in. Many words and patterns make sense if you know the background of the programmers involved.

Conclusion

The point I’m trying to give you is that there are many ways of writing working software. The common parts are related to social methods, formal methods and literary methods.

Tags


Comments

Do you want to send a comment or give me a hint about any issues with a blog post: Open up an issue on GitHub.

Do you want to fix an error or add a comment published on the blog? You can do a fork of this post and do a pull request on github.