Skip to main content

Marxist programming

 





I plan to write on technology and culture in this series of blog posts. This is the start of the discussion of the cultural parts of programming. The idea started with a joke during afternoon coffee at work, and then I made a speech on the matter at an internal conference, also as a joke. When I think about it, it deserves to be more than a joke, so I will dig into the subject.

I was into politics when I was younger, which made me read some Marxist theory. I am not a Marxist by ideology, but I find his way of analysing society interesting. I usually present my political view as a Marxist Liberal, half to provoke, as liberals don't like Marxism and Marxists don't like liberals, but also halfway true: I share a lot of liberal values and don't like the autocratic ways of the Marxist countries. On the other hand, I think liberalism is naive in many ways, as the economic forces make a lot of people unfree. Freedom for the individuals is what I want. Freedom to live even in a conservative manner.

This blog is not about politics, so I will not elaborate on that. This series of blog posts will, however, provide an amateur Marxist analysis of programming and technology, focusing on how technological advancements influence societal structures. It applies dialectical materialism to examine the interplay between technological 'base' (infrastructure and labour) and 'superstructure' (social norms and laws). The discussion extends to technological determinism, highlighting contradictions like increased connectivity versus privacy concerns.

Key themes include the role of software development tools as the "means of production" in the digital age, class struggle within the tech industry, and the commodification of software. The concept of alienation among programmers and the balance between technological determinism and the social shaping of technology are also explored.
Finally, the series addresses the digital divide, technological inequality and the impact of globalization and outsourcing on labour distribution. This analysis aims to provide insights into the complex relationship between technology, programming, and social dynamics from a Marxist perspective.

Comments

Popular posts from this blog

Balancing Present Needs and Future Growth

In software development, traditional project planning often emphasizes immediate needs and short-term goals. However, Bentoism, which stands for "Beyond Near-Term Orientation," provides a multidimensional framework that can improve software project planning. It advocates for a balance between short-term achievements and long-term sustainability, considering both individual and collective impacts. Technical debt and architectural debt are inevitable challenges that teams must navigate. If managed properly, these debts can help long-term sustainability and growth. Bentoism, with its forward-looking and holistic perspective, offers a nuanced framework for handling these challenges while promoting continuous improvement.  Understanding Bentoism  Bentoism, inspired by the structure of a bento box that contains a variety of foods in separate compartments, encourages a broader perspective in decision-making. It promotes consideration of 'Now Me' (current self-interests), ...

Digital Dialectics: A Marxist Exploration of Technology and Class in the Software Industry

In this blog series, we discussed various aspects of programming and technology from a Marxist perspective. Here's a summary: Marxist Analysis of Programming and Technology: We explored several critical aspects of Marxist theory applied to programming and technology, including the means of production in software development, class struggle and labour relations, the commodification of software, alienation in the tech industry, and the digital divide and technological inequality. Dialectical Materialism and Base and Superstructure: We delved into applying Marx's dialectical materialism to technology development, analyzing how technological advancements lead to societal changes. We also discussed the base and superstructure model in the context of the digital age, focusing on the technical infrastructure and the evolving social and cultural norms. Class Struggle in the Software Industry: We examined the dynamics between different groups in the tech industry, including tech compa...

Software Projects as an Orchard

This blog is named The Sourcerers Orchard. The title is intended as a pun about source code and the orchard as an analogy between software development and handling an orchard. Creating a new orchard is an endeavour that blends the art of gardening with science. The same could be true for software development. We often talk about software as an industry, and this mindset harms our work. We are not an industry; we do not repetitively produce the same unit at an assembly line. We grow new things in a partly unpredictable world. Systems like SAFe are born in industrial thinking, like modern mercantilism, focused on numbers, not growth. We need a new way of thinking, to make high quality software instead of failing production lines. Planning Your Orchard Embarking on creating a new software project is akin to cultivating a thriving orchard from the ground up. It’s a journey that requires patience, dedication, and a strategic approach to nurturing growth and overcoming challenges. Let’s expl...