When I hear about a process, a procedure, a tool, a method, an idea, and even an anti-process like #NoEstimates, I first ask in what domain is this applicable? And when the answer comes back, software I suspect the speaker hasn't considered much outside his own domain.
Here's some domains I work in that are Software Intensive Systems (SIS).
A software-intensive system is any system where software contributes essential influences to the design, construction, deployment, and evolution of the system as a whole. [IEEE-Std-1471-2000]
It is observed in EU-NSF-SIS 2004 and Peter Freeman and David Hart. A science of design for software intensive systems. Commun. ACM, 47(8):19-21, 2004 (Dr. Freeman was a professor at UC Irvine, when I was a grad student in Physics, when we had to take classes outside out major).
Software has become a key feature of a rapidly growing range of products and services from all sectors of economic activity. Software-intensive systems include:
- large-scale heterogeneous systems,
- embedded systems for automotive applications,
- telecommunications,
- wireless ad hoc systems,
- business applications with an emphasis on web services etc.
Our daily lives depend on complex software-intensive systems, from banking to communications to transportation to medicine.
Some Application Domains for SIS
- Automotive
- Characteristics
- Hard real-time
- Severe resource constraints (high cost pressure)
- Highly interconnected
- High reliability and safety requirements
- User interface critical
- Extreme increase in complexity (can be observed and is further expected)
- Trends:
- Drive-by-wire
- Model-driven development
- Test automation
- Software architecture (AUTOSAR)
- Safety analysis
- Transportation
- Characteristics
- Hard real-time
- Some resource constraints
- Large-scale systems
- Heterogeneous systems
- Very high safety requirements
- Observation:
- Safety standards important (CENELEC, EN 50128)
- Very long-winded certification procedures (even for small components)
- Very conservative approach common
And more for these domains.
- Avionics - my personal favorite
- Space missions - my second personal favorite
- Medicine technique - know a little about this
- Industrial automation - not a lot about process control systems
- Telecommunication - don't know much about this
So when we hear about the next big thing that is going to revolutionize the world of software development, in what domain is that actually going to happen, does the speaker have any experience in that world, is there any evidence that this next big thinghas been applied in that world with success, and where can we read about it?