Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The only field german software could compete.

[ ] Digital Bureaucracy

[ ] All of the above

[ ] None of the above

My little pet theory is that the old "Do as you told" buisness-culture is to blame for germanys inability to produce great software. Software needs developers with agency, who refuse "idiotic" tasks and fight back to improve the product.

Know an israeli who complained about "endless arguing" in israeli software projects, while not recognicing the strength of that.

If its not fought over, all things are developed, all things become meh, teams exaust themselves doing all the things and the product fails, internally unoppossed, but externally years to late, bloated and mediocre to the core.

Still happy that SAP exists.



> My little pet theory is that the old "Do as you told" buisness-culture is to blame for germanys inability to produce great software. Software needs developers with agency, who refuse "idiotic" tasks and fight back to improve the product.

This I have experienced first hand where this junior product manager who wrote some ticket whose requirements when got challenged says "it's mentioned here so you have to do it and you don't have to challenge it". I lost it and I said, "everything needs to be challenged, we are not just going to follow it like a machine". I did apologize to him for my tone. But it bothered me so much.


Its really tough to change that mindset though, once it takes hold, its so deeply ingrained. ("Ober sticht unter").

Basically the whole education system needs to push discussions more, were you have to argue a point, proof you are right and stick to your guns. Something regarding this is going right in some education systems and cultures, and fails utterly in others. Its a education to lead, instead of education to be led.


On the other hand you could argue too many people that stick to their guns are wrong and this too would be a failure of the education system. The scientific method is what we all need to learn and appreciate: form theories, find evidence for but also against that theory to test your thesis. Improve and refine on this basis or drop a disproved thesis.


>"Ober sticht unter"

As a Skat player, this is only true in Null, the game you actively try to "lose". Fitting, I guess?


Complacency, top heavy companies with aged decision makers and the immense difficulties and bureaucracy and risk to personal assets that come with founding a company in Germany are largely to blame.

Software is seen as a necessary evil in Germany, not as the main focus for profit. You can directly see this in most medium to large companies which sell ERP or management software (like Scheer) pay their sales reps a lot more than their developers, even though the latter produce their value.


it's a pretty good field to compete in when the rest of your economy is large or middle scale industry. There's no point for Germany to built "great consumer software tm" in an economy that isn't consumer centric (or so small to largely compete in foreign markets from the beginning).

I worked for a software company in Aachen for a while that supplied software for local manufacturing and this is necessarily "meh" and largely consists of doing as your told and building to specification because that's what industry-adjacent work is like. Doesn't mean it's not good software.


But thats the point. Doing as you are told, often includes reimplementation after remimplementation in germany, not improving upon pre existing software. Not resisting useless usecases, you already know are doomed by experience, but are specified anyway. 5 versions of the same object, collected on a usb and even copied back down (remote) from customer machines.

Exampletime:

A thousand versions of a cylinder valve controller software for a plc floating around a machine builder.

Instead of writting one for each version of statefullness and interfaces to encapsulate the different usecases. (Can be done with TC3) shared by all collagues via Git.

IOpenCloseable {} and that then can be used for example for a drive home routine

DrivePointHome() {

  foreach (IOpenCloseable cylinder in allElementsInHomestateInOpeningOrder)

  {

    cylinder.open()

    wait(cylinder.isOpen())

  }
}

And there you have it. Configuration instead of programming. Reusability instead of Recreating. Testability (https://tcunit.org/).

It could all be done. It is done, good, elsewhere on the planet, daily.

In my last career we fought this mentality, to exaustion.

Now im out of it, im just waiting for someone with the mindset to swoop in, disrupt and clean that space out with the effectiveness of good software. There really is no reason to employ half a million electricians to program subpar software when you can have it better for cheap.


Salesforce says hello :-)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: