Sciology = Science + Technology

Religious Programming (Eclipse; AJAX; SOA; Mashups; XP + SCRUM).

Archive for the 'Automobile' Category


At what level do you use eclipse ?

Posted by sureshkrishna on August 7, 2007

 Eclipse the ubiquitous platform has survived another challenge by releasing the Europa and i am already seeing the # of downloads. Initially it was Java IDE then RCP Platform then Tool Building Platform and now as i know its an eco-system of major frameworks, tools, runtimes and platform which can be extended for ANYTHING an NOTHING in particular. OK, i am not going to define what eclipse does and what not. The scope of my article is to highlight the problems i am solving with eclipse platform.
I have been using eclipse right from 2003 and built tools on Automotive Domain and Ajax&SOA Domain. I have been closely following the other implementations on different verticals. Several OEMs, ISVs, Startups, Universities and individuals have adopted the eclipse “principles” and they know what they are doing soon after they use it. All the content in this article is purely my personal views from my professional experience and do not correlate to any ones opinions dead or alive ;)
What can i do with Eclipse : I would want to start with highlighting the tasks which can be accomplished with eclipse. I am hoping that we will understand the differences between using the eclipse, developing the plugins, making an IDE out of eclipse and eclipse as an integration platform.

Eclipse an IDE
: This is what many of us know about the eclipse and what can it do. Its a Java IDE and java developers can create, modify, build the java projects in eclipse. It provides different features like code refactoring (one of the gr8 feature), syntax highlighting, syntax/code checks, code completion, code suggestions, compile, debug, jarring, etc… I have used for an year with out knowing what ELSE can eclipse do. In this use-case we are primarily involved in using the eclipse IDE features as is. I am sure that you are aware of different eclipse language ides like, JDT, CDT, Cobol, PHP editors amongst the most popular ones.
Eclipse Happy User.

Eclipse does Plugins : By this time you know that eclipse can be used to develop plugins and bootstrap in eclipse. Design Plugins in Eclipse -> Develop Plugins in Eclipse -> Test in Eclipse -> Run in Eclipse. A plugin is a logical group of some functionality that in turn can be run in eclipse. If there is no UI part that is associated, it can be used as a simple jar file. In any case its pretty common that we have some UI associated with the plugin. This can be run either on a normal eclipse platform or on a RCP environment.
A simplest plugin you can think of it is a Hello World application (damn…why always HelloWorld). You basically want to contribute an action item to the toolbar of eclipse and on click of that button you want to display a dialog with Hello World Message. Thus in this plugin, you just USEd the eclipse platform to add some functionality your current eclipse runtime.
Basic Plugin Developer.

Eclipse as a Platform :All of us know about the JDT, CDT, PHP language plugins. On this level of platform usage, we as developers are building the different kind of plugins and these they will be used by target audience, who in turn develop some applications with our language kit. Its like one of my colleague had developed Cobol Language toolkit for Fujitsu customer (of course they have released it to open source after some time). In my view i think of the some of the editors like JSF Editor, XML Editors, JSP Editor, JS Editor that fall under this category.
There are many companies that are using the Eclipse as their real time application configuration platform. Its like they have the metadata and the configuration of metadata is a big deal.
Advanced Plugin Developer.

Eclipse an Integration Framework :This is the highest level of integration and complex applications that i have seen with Eclipse. Here i am talking about different usecases. One of the nice example is to be able to create the entire development life cycle of your complex engineering activities in to the eclipse. Starting from System Requirements, Software Requirements, Component Design, Function Design, Coding, Unit Testing, Integration Testing, System Testing, Delivery and finally Issue Tracking into Eclipse. Dont feel apprehensive about the possibility, i am aware of some companies who have done this. This on the ground level means, to integrate different tools [editors, compilers, debuggers, configurators] into eclipse. The integration can be done done on sharing different data models/formats primarily on the EMF models.
Many companies have integrated some AJAX and SOA kind of applications. A typical of these applications would use Platform, WTP, ATF, DTP. The final application could be a RCP application or a plugin distributed via internet/intranet.
I also knew of many Data ETL companies that have started adopting the eclipse as their integration platform of their next generation tooling platform. Many have migrated from their conventional COM/DCOM and Perl based applications to java/eclipse.
Happy Application Integrator.

In the next article i want to highlight the different usecases that are prevailing in the automobile and web 2.0 industries.
In the end you need to know that Eclipse is an ECO System.
You have almost all plugins, tools and frameworks that you want to build/integrate your applications.

Till then Happy Application Integration with Eclipse.

Posted in AJAX, Automobile, EMF, Eclipse, GEF, GMF, Java, Plug-ins, Plugin, RCP, SOA, SWT, TPTP, Web Services | No Comments »

Quality vs Process in Software Industry

Posted by sureshkrishna on December 12, 2006

I am trying to understand the difference between the Quality and Process, which we very often use in an interchangeable manner. After few years of my experience in different roles of Project Leader and Technical manager, now i am in a position to understand the REAL difference.

On a global perspective, the “Process Orientation” is the buzz word in the corporates. ISO 2000 certification, CMM Level2-Level5, Six Sigma, Agile Methodology and TSP/PSP are some of the well known processes in the implementation. Of course many corporates implement a subset of these processes also and might not really call with the real names.

Process is a sequence of steps to achieve a Task“, is the simplest definition i have. I strongly believe in this definition by my heart and sole :-) Now i have seen many guys who have really used Quality and Process as a single word. Some of the irritating dialogs i come across were….
#1 There is not quality in the software (They meant, Process implementation is bad)
#2 You have not implemented Process, Stop the delivery to the customer (They think, process non-conformance means LOW in quality)
#3 This month your Process Implementation index is 100% (some times this is because, there is no software delivered or developed)
#4 We produce a very high quality software (but at the customer’s site, the software bombs)
I am sure that all of us would have had a chance to hear this and then wonder, what the senior manager is talking about.

The real problem i see is the lack of awareness and education in the developers, middle managers and finally the senior managers. The people who pester us to implement the process, would have never implemented a single line of code nor the process. In my view a software practitioner is the best person to decide, which process is suitable for the project. He is the one who can say Why, When, Where, What and How. The Quality department just need to assist mainly in What and How.

We need to really distinguish between the Heavy processes and Lightweight processes. In my experience, i categorize ISO 9002, CMM as heavy weight processes; Agile Methodology and PSP/TSP as Lightweight processes. As a general convention, many Service Based Software industry follows ISO and CMM and Product Based software industry follows light weight processes (like Extreme Programming).

Coming to the Quality, i define it as the factor which determine closeness to the requirements, features and the customer/end user expectations. Of course this drills down to the different factors like
#1 How well do we understand the requirements
#2 Translation of the Customer Requirements to the System Requirements
#3 Analysis of the Market/Competition/TargetIndustry/TargetEndUsers, etc…
#4 Good Design Practices (specific to project)
#5 The right-passionate team to do the development
#6 Good coding practices
#7 Developer Documentation, End user Documentation
#8 Aesthetics of the Software (Not only limited to the UI)
#9 End user support
#10 Training

In my view Process is the one which assists to achieve a good quality software. It does not mean that Quality is not attained with out Process. This is a common conception amongst many of us. In small teams, the steps taken for a development project are pretty straight forward and simple. Get the requirements in any format you want (as long as its understood by many of us), design of the module is a very simple process (some times its in the developers brain), coding is done to meet the requirements, simple user documentation, deliver. I have seen all these phases as simple as i have written in some projects. And it works perfectly in some scenarios.

The same scenario, when transposed to a large organization with multiple projects, distributed and cross-functional teams, things gets complicated. This scenario requires a more formal way of managing the Contracts, Work Orders, Reporting Formats, Monthly Reports, Project Plans, Project Management Tools, Requirements, Design, Coding, Testing, Documentation, Delivery and User support, to mention a few. Now the challenging issue is to get all the teams to follow the same process and similar steps to achieve the goal of the organization.

Finally…. Quality is in People, The Software we write, Innovative Thinking and the Ability to Deliver the right things perceived by the customer.

Posted in Agile Methodology, Automobile, CMM, ISO 2000, Process, Quality, SEI, Six Sigma | No Comments »

Product Line Architecture in Automobile Industry

Posted by sureshkrishna on December 9, 2006

I had worked with a major Automobile Supplier in Germany from past 6 years of time. Its nice to see the way this industry is into making the “Short Product Cycles”. Initially the coencentration was on the faster innovation and the engineering team that supports it. And then the higher management has realized that there is something more than the Product Innovation and shorter “Time To Market”.

Then everyone has come across the Nokia Product Line [Manufacturing/Designing/Architecture]. If we look at it closely in terms of how fast Nokia wasable to get new models in to the Market and how fast they change the entire product lines/series, it is amazing. The base of a particular product series is almost the same. The panel changes, the software featuers changes, the memory size changes, the screen changes, etc… So some how these guys are able to get all these very quickly and then turn them into the Market.

It was more or less on the same lines that the Automobile industry gone in to this. How can i make a product Series changing rapidly and still get the maximum out of this. This phylosophy goes into almost many of the engineerning teams. e.g. body team, power train team, electronics team, software for the engine, software for the multimedia, etc…. Inshort this spreads across both the Software and Hardware of the Automobile Engineering.

In the first look the idea is to have a STABLE platform which serves as the starting point to develop or improve further. In a product series, this platform is more or less the STABLE through out and suppliers or manufacturers add some plug-ins on the top of the platform. So you can imagine something like having the Widows or Linuz kernal with you and you write some value added applications on the top of it. So, you have the same platform/kernel with you for your applications. BUT the behaviour and features of the application changes.

This looks very easy to be implemented concept. But in reality we have the 1000’s of engineers and architects working on it to really see something like this. We also understand that as the organization grows the integration and architectural implications increases. Department A does not know whats happening in the Department B in the same Organization. Some times its even hard to know what the competior is doing.

But what i have seen is that its a really COOL to something like this. This really makes the product companies “get going faster”.

Posted in Automobile, CMM, Nokia Product Line, PLA | No Comments »