José Martín Juárez Blog

07 November 2009

Design identity and the software engineering focus of Interligare as strategic vector of organisational change.

In the many years that I have dedicated to the design and development of software technologies and applications, I have clearly perceived the benefits and problems that are inherent to these complex systems. In my research of these types of systems, their behavioural predictability, with the socio-technical systems and the biological ecosystem have played a fundamental role as research objectives.

I nostalgically remember that at age 12 I received a personal computer which, after much insistence on my part, my mother had bought for me on instalments. She always had a special intuition and understood that it could be crucial to my development and future. She definitely wasn’t wrong. Due to various circumstances and basically due to my age, I have been a privileged spectator of the software revolution and have seen firsthand and even won the friendship of some of those pioneers. Pioneers, such as Bill Atchison, Bertrand Meyer and Grady Booch amongst other masters. I still conserve and use the ruler which I received as a gift from Booch when we brought the first ever Rational Rose Technology to Spain, the first object oriented CASE, the first ever OMG world conference (held in Boston in 1993) and where I saw the approaching revolution, the first ever Spanish electronic retail web, created by my team, and called “buying in Spain” and developed in VRML. The opportunity to have become very rich at that particular moment, when the knowledge, teams and ideas were in my hands , but not the self esteem or the conviction of being able to mislead people in the way they were deceived in the so called dot.com bubble (it created perverted young talent and lost them to the technological crash) The first national software factory project, where I was able to participate incorporating the concept and basic concepts of software reusability as a basic element when defining and developing productive code etc..


It wasn’t that long ago that software design was almost a euphemism, in many ways it still is and basically the majority of organisations continue to plan and code in a disjointed manner, though with better tools, languages and without memory, storage or runtime restriction . These last characteristic have in my opinion relaxed the process of software development and testing, which has resulted in the reduction of the robustness and the reliability has been accentuated by the pressures of a highly competitive concurrent market (much supply and demand).

When I commenced the Epistemos project, aimed at defining Intelligence as a discipline, designing and developing concepts, models and intelligence systems, the software revolution had reached its climax, was the parting point and conduit of the information society. My prolonged experience in this field and due to less noble circumstances, I understood the importance at the commencement of Interligare of releasing, a very basic IT intelligence architecture (though still the most complete and coherent on the market), called nowIS 5.1 IT System as an essential product to commercialise on the market. This architecture and the respective solution is based on the integration of consolidated technologies, on the development of connectors and additional functions, with a medium integration level, from the system administration view and the user perception.

This experience made us realise that the renowned and costly, in the most part North American technologies, lacked a functional competence, and had an alarming unpredictability with regards to their range of optimum functionality. These technologies showed shortcomings in the design approach, in the plans and plausibility and serious evolutionary horizons. From that moment I began a reflective process and authorised lines of experimentation so as to prove our capability to develop higher quality software. All this, without, an exhaustive professionalized approach at the moment of developing the software and relying on human resources with little or no experience in professional software development.
This experience culminated in the earlier part of this year and obtained surprising results. Though the quality of the development process was poor, I realised that with an innovation and serious software engineering focus and an approach based on the specifications of consistent design, the possibilities and costs of developing quality software within a reasonable time-span is much greater than in times gone by. This lead me to redefine and restructure the software development area of the company, to compose a world class elite team in the next years

We are currently creating sophisticated software to support our socio-technical intelligence systems. Software which also has many applications in the information technology market and can be treated as elements of differing business strategies in their own right. On the other hand we are in the process of creating a software design and development identity which will allow us to consolidate our position as leaders in the field, with our strategic socio-technical systems and supreme expression in the design of complex systems. This identity has its bases in the work of Alan Cooper and other forward thinkers in software design, thus basically the characteristics we pursue to incorporate in the software systems we develop are the following:

In the first place we shall sing the "mea culpa" for having contributed, like 99% of the current technological companies, to develop poor quality software. That is, software which FORGETS the information it possesses and user preferences within the same. Software that is LAX and does not support or bemoan, bad configurations, non established a priori uses, changes in support hardware and that suffers prolonged failures without warning. IRRESPONSIBLE and DANGEROUS software, that makes us doubt when a dialogue appears asking if we are sure and regardless of the circumstances transfers the inescapable responsibility for safeguarding information and if that isn’t enough it sets ejection levers in the most unlikely places, which without warning make us exit the system. Software that is STINGY/MISERLY with information, swallowing it without measure and without informing of the utility that produces such consumption and if it is or isn’t effective. Software which is AUTISTIC in its behaviour, ignoring the need to constantly communicate with the user, clearly explain what it’s thinking, what it’s working on and when the task will be completed, and finally be able to attend us properly. Software that is INFLEXIBLE and MALADJUSTED, unable to balance its behaviour, based on, other software with which it coexists, with the circumstances and priorities of the users it serves.

Secondly, we make a strong statement of intent to walk progressively toward a software that behaves in the following ways, well defined by the master Cooper and that I take the liberty to interpret in some case:


1. Software that is interested in me.

2. Software that is considerate of me.

3. Software that has initiatives.

4. Software that has common sense.

5. Software that anticipates our needs.

6. Software that responds to me.

7. Software that is reserved with its internal problems.

8. Software that is well informed.

9. Software that is perceptive and intuitive.

10. Software which trusts its own criteria.

11. Software that does not lose the focus and transmits confidence.

12. Software that gives me instant gratification and results.

13. Software that is malleable.

14. Software that can coexist with other software systems, on different platforms to which they are housed and with different types of users.

15. Software which is strong, resilient to changes and events in the environment.

etc.

Finally, in addition to the aforementioned elements we must convert the (Homological) programmers into (Homo sapiens) software designers. This means they must first think of what they must do, for whom, how to do it and then the user capabilities necessary to operate the software; they mustn’t be inversely proportional to the capabilities of designing friction-free cognitive software, that is, easy to use. In this sense, JMJLab is defining the steps necessary for the design and monitoring of development processes that result in quality software. At Interligare, our development teams are strongly committed to these concepts and the needs of continuous improvement in processes of user understanding and the software engineering processes which is perfectly integrated and in constant interaction with designers.