Since propulsion software is not prepared for later modification and differs
between vehicles, the required changes can only be realised by or in
co-operation with the software engineers having programmed it in the first
place. Many times this turns out to be a barrier for two reasons: Usually,
software engineers who developed a particular solution are not always available.
A software engineer not familiar with the particular train software would need
too much time to understand the software in order to change it. Best chances of
finding the right person exist, if the particular vehicle series is still
produced. Since software engineers are a scarce human resource, many
manufacturers will be reluctant to put them on a task that is not considered
their core business.
The computing capacity installed on older locomotives is sometimes not
sufficient to implement additional features. Since propulsion software is a
real-time application, any modification slowing down the system too much may
lead to dysfunctionalities in propulsion.