I was on the road half to two-thirds time for for about 25 years, nearly always visiting or working with software teams.
I’ve worked with teams as small as 2 and as large as 500. I’ve worked in the US, much of Europe, and even a bit of China. The orgs involved might be centered around software, product or service companies, or they might be IT departments, embedded in far larger organizations.
The kind of software? Oh, every kind. Embedded stuff, including hard realtime. Desktop apps. Browser apps. Batch processing apps. Process control. Workflow monitoring. Live data analysis.
The subjects of the work? Yes, both literal and metaphorical rocket science, accounting, of course, tons and tons of it puts the database on its browser skin or it gets the hose again, marketing, some security, not much. About the only hole: large-scale gaming.
I tell you all this to lend a little weight to what I’m about to say here in a sec.
See, I get irritated when people tell me that their ten years with one org and one team and one product and one environment have shown them everything that can (and should) be done in s/w, and everything that can’t (and shouldn’t).
And this is the thing I want to use whatever weight I just garnered to say:
I guarantee you that neither you nor I nor anyone has seen every way to write software that gets software written.