Eclipse - an IDE for Organisational Change
The ChallengeAs the demand for software continues to grow, embedded systems rule. There are few, if any, industry domains that have not yet been "infected" by software. Pervasive computing is already here to stay. And as the internet moves from an information network to a command and control network of "things" the distinction between local and global pervasive computing blurs.
Evolving systems is essentially what we are dealing with, systems with emergent properties. And since these systems are or will control real-life situations, the behaviour of these systems better be safe, secure and reliable - to name just a few properties. Evolving critical systems is what Lero, the Irish Software Engineering Research Centre, calls what we are dealing with.
The question is: "Can we deal with these?" Conway's Law states that the properties of a product are a reflection of the properties of the organisation that developed it. And organisations are essentially defined by the processes they employ to innovate, develop, market, sell and generate revenue from their products and services.
A whole array of international and industry standards, researchers, consultants and trainers aim to address what should constitute processes consisting of "good practices" to guarantee that we get what we wanted to get. Significant progress has been achieved in various industry domains. The trend is to favour a process competence level that is harmonised across an organisation and deployed in the majority, or even better, all development situations.
Many see organisations with defined standard processes - this so-called "Level 3" according to CMMI or SPICE - as an oasis of stability, which allows predictable development and cost optimization. Given the rate of growth and change in evolving critical systems this seems understandable, but incongruous. What is necessary is a flexible response, an attitude to embrace and welcome change. Are the current models for organisations and processes suitable? How does such a flexible organisation with adaptable processes work? What is the basis of its development processes, how does the management of such an organisation function - and is there a role that the tool infrastructure could play?
A ResponseSome hypothetical responses are posed and confirmed or refuted in the posters, substantiated by an outline solution or counter-example.
Hypothesis 1Good practices need good tool infrastructure support
Many of the "process chores" of today can "disappear" into the infrastructure ensuring consistent application. This would remove part of the control need perceived by some.
Solution to 1Eclipse with EPF can provide this. EPF allows to separate tasks (the what) from methods (the how) thus facilitating more flexible adoption of technology.
Hypothesis 2Traceability can be supported by the infrastructure even in heterogeneous tool populations.
Traceability in time and space across activities and artifacts is the foundation for consistency and elimination of re-work. Forward traceability shows the customer that the requirements are addressed. Backward traceability tells management that the development contains only the things the customer paid for.
Solution to 2Eclipse with EMF can provide this. Different URIs for the same object in different presentations can be tied together. Other solutions/solution components could involve Mylyn (or TaskTop).
Hypothesis 3The most difficult distances to overcome in an organisation are vertical, not horizontal. Distributed engineering is a reality. It is often easier for, e.g. a German developer to collaborate with another developer in Brazil, than for developers to truly collaborate within their own organisation, where they have to cross boundaries set up by their managers. Trust requires transparency and tolerance - which seems easier for technical peers aided by a horizontal infrastructure. Traditionally the vertical dimension is based on "trust is fine, but control is better".
Solution to 3Eclipse could provide support here. Social software has been shown to potentially have significant impact by aiding transparency in the vertical dimension. Tolerance and trust can develop - they are interdependent with transparency. Eclipse does have the basic ingredients of social software. The vertical dimension needs explicit addressing - visibility rather than control..
SummaryEclipse has the opportunity to generate impact in the IT and embedded markets and beyond, one that commercial competitor tool infrastructures will find very difficult to address, namely to extend the meaning of "IDE" by "D" including "Development of Organisations".
Nirmal Sasidharan is a developer and software architect at itemis. His interests are in Model Driven Software Development (MDSD) based on Eclipse platform. Before joining itemis, Nirmal Sasidharan has worked 7 years with Bosch, architecting and developing tools for automotive domain. He earned a Bachelor of Technology degree in Information Technology from Cochin University of Science and Technology.