Sosal: Revolutionary Social Programming Methodology

4 months ago 13

Alexey Lunev

“Good code solves the problem today, great code makes the world a better place tomorrow.”

Programming world has many methodologies for writing code. Some make communications (Unix-way), flexibility (Agile), or code quality and readability (DRY, KISS) easier and better.

They all help to make your code better, but they are focusing on one programmer, not a team, and because of that I created a new, social methodology for writing code.

SOSAL (pronounced as so-sal) methodology is based on communications of many, different people in process of development. SOSAL makes codebase simpler and easier for maximum comfort and productivity of your team.

SOSAL is based on five principles:

  • Socially-Conscious Code
  • Open by Default
  • Simple Scalability
  • Agile Adaptivity
  • Learning-Driven Logic

Socially-Conscious Code principle is about the most important teamwork concept: cooperation. To make friendly codebase, every SOSAL follower needs to explore their language in detail, but in an unusual way. The main parts of language for teamwork is code style, code clarity and idiomatic approaches. They will help other team programmers to dive into codebase quicker.

Open by Default principle encourages you to make your code open (in two ways), if you don’t have contrary reasons. Not only that, this principle recommends to comment your code as if it were being read by someone who is just learning to program. Comment or not comment problem is very simple if you know this principle (if you’re good enough programmer): if solution to problem doesn’t come to you immediately (or maximum 1 minute), then it is recommended to leave a comment.

Simple Scalability principle recommends to make your code ready for scalability. But it is important to say, that premature optimizations are bad. Simplicity is not primitivity, and difficulty is not coolness.

Agile Adaptivity principle says that your code should be changed easily, even if probability of changes is low. Usually, when developing console utilities, I use library for flags and settings, because configuration tends to change rapidly during development. You need to draw a clear line between YAGNI (You Aren’t Gonna Need It) and evolution of the codebase.

Leaning-Driven Logic principle encourages you to code in a way, that teaches you and the others in process. Refactoring is not a punishment, but a possibility to apply your skills. Experiments are encouraged if you leave a “clean footprint”.

Principles of SOSAL methodology allowed me to grow personally and help people around to grow too.

In addition to original material, I want to specify that SOSAL is very general methodology, and it may work better when it is coupled with others, more specific methodologies. For example, SOSAL/GOVNO combination makes some principles more specific.

Read Entire Article