Saturday, January 09, 2016

CAM Editor and Beyond

What puts someone in the top 3% of XML developers globally? The ability to conceive concepts and solutions and then execute on them utilizing the applicable tools where other people concede and are happy maintaining the status quo of existing limitations.  Add to that the ability to constantly take on-board new ideas, techniques and technologies with shocking speed and apply them accordingly.  Then the key ability to simplify the complex and create compelling and robust designs and components that fulfill the solution needs.

When we look at the example of the CAM Editor project over the past ten years we see consistently that it has scaled heights that others deemed impossible. Adapting to new technology needs and staying at the forefront of what is possible. From humble beginnings as an Eclipse editor for manipulating CAM XML templates and running the CAMV validation engine, the project has grown to have a sophisticated visual user interface that includes XSD import and export, XSLT, Saxon, HTML, Mindmaps, UML, JSON import/export, SQL generation, JDBC connections, Hibernate ORM, Component Dictionaries and Repositories, Pencil forms and now working SAIL Javascript forms generation for BPM integration.

The code base has grown similarly with one of the largest uses of XSLT with over 100,000 lines of code combined with the Java Eclipse code base.

The concept of tools that empower developers to do more quicker and simpler is one that is constantly being redefined. The evolution of CAM as the leading open source resource for XML developers validates what is possible.  Furthermore building on the sponsorship by Oracle the CAM project is now becoming a complete full stack solution delivery platform. From inception and design, information integration and persistence to execution of user interfaces and reports. With the focus now on supporting BPM tools that provide process orchestration but require integration with the middleware and frontend layers.

It is certainly exciting times to be a software developer with more and richer environments to work with compared to even five years ago, mobile and cloud particularly.  Having better tools that can exploit these quicker and with reliable and consistent results is the challenge.

Similarly in the software consulting arena, customers expect that projects that traditionally took 10 or 15 developers previously can now be delivered with much smaller agile teams, both on and off premise, and locally and regionally and internationally. Essentially today it really does not matter where your locale is, you can perform as part of a team anywhere.

Having worked at a consultant and contractor for most of my professional career this can be a very double edged sword. Sometimes you can be simply too good. I remember vividly being brought in to perform 3 to 4 weeks work, where 2 developers had failed working for 4 months, to solve 11 intractable issues in a production system.  It took me precisely 37 minutes to debug and solve all 11, and teach the 2 developers, and suggest a raft of other simple improvements they could make.  Managers meanwhile are extremely focused on billable hours and avoiding such calamities of unfulfilled time billed. Fortunately the customer in this case was ecstatic and they continued to employ the two developers.

This example is instructive however in that it shows that in most projects the coding is only 20% of the total effort. The remaining 80% being design, facilitation, validation and delivery of a sustainable solution environment.

Naturally when you work as a full stack consultant there is no shortage of work that can be performed throughout the entire delivery cycle. Again the real knowledge gained is that quality in the initial design and conceptual formalization is absolutely vital to ensuring a reliable and robust solution. Too many projects become troubled through either poor initial engineering and/or flawed initial design assumptions, particularly when performed under stressful time constraints, which is of course most of the time.

As a leading industry consultant ones needs to be positive, to see how customers can leverage their existing investments and move to a better future state without incurring traumatic costs, time and resources.  Add to this the ability to listen well, educate, articulate, teach and instruct as needed. Customers need to have full confidence in your work and honest advice and abilities to deliver. Which means knowing your own limitations and when to defer and who to defer to is vital. Having that professional ethos is what large consulting companies bring.  However what they lack is agility and flexibility as a consequence and this of course provides opportunity for independent consultants and contract experts.

Summarizing all this we see that being in the top 3% of developers is not only about raw software programming capabilities.  Being passionate about technology, able to articulate effectively, and constantly learning at an accelerated pace. Teaching, informing and dissemination of ideas that work. It requires a complete set of skills to be able to deliver what clients need most effectively and to understand what is required to build successful modern software solutions.

We hope that the CAM project continues to provide living capabilities in all these areas and touch peoples software lives in positive ways worldwide.








Sunday, July 24, 2005

Medical Banking Project Facilitation

Over six month period provide consulting services to bring together principles, establish goals, objectives, mission statements, resources and planning for the MBProject COMBAT initiative (http://www.mbproject.org). Mitigate issues between participants and develop executive overview. Formalize use cases and target community needs, along with priorization for requirements. Complete implementation envisioning and design technology solution architecture. Utilize state-of-the-art webservice and secure ebusiness infrastructure components. Position open public XML specifications and technologies to form the foundation of the project implementation. Project is now successfully launched and proceeding with funding and first phase implementation planning.

Monday, May 23, 2005

Visual Scripting of XML

Development of the VisualScript(tm) toolset from design to implementation. See http://visualscript.com for product.

Trusted Logic Voting (TLV) with EML 4.0 system design

This project is using the OASIS EML XML specifications along with innovative approaches to designing the voting process itself so that legal and process requirements are met. A considerable amount of collaborative design is also needed to create a solution that is broadly accetable and adopted. More details are available at http://trustedelections.org

Amazon webservices retail frontdoors

This project involves using Amazon webservices along with the VisualScript tool to create a simple solution that enables businesses to quickly develop website content for their affliate sites of Amazon.com

Examples of the sites developed can be found at http://readingheaven.com and http://winebin.net

Underneath the user tools a combination of XML, xhtml, xslt and javascript is used to implement the solution. The resource site for the models is http://visualscripts.net where this and more example models can be downloaded.

NIH ebXML registry-driven exchange server

This project provided review of commercial, open source and government furnished components for implementing innovative ebXML exchange server environments.

For an overview of the project see the presentation from CDC/PHIN 2005, Atlanta, GA

http://www.cdc.gov/phin/05conference/05-12-05/6F_Webber.pdf