Showing posts with label application platforms. Show all posts
Showing posts with label application platforms. Show all posts

Friday, February 3, 2012

Dealing With Effectiveness Roadblocks in Software Change Management



In our previous review of major concerns in the practice of software change management, we focused on communication issues and analysis and identification problems. Other problems areas identified in both academic research and the literature of practitioners include effectiveness roadblocks, decision-making challenges, traceability issues and problems with tools. We have already established that third-generation languages (3GL) such as Java, RPG, COBOL and the various C-languages (C, C#, C++) all have characteristics that contribute negatively to the ability of an organization to achieve best results in the practice of software change management.

At this time, I would like to engage in a high-level overview of effectiveness roadblocksin software development and software change management. Software development managers should consider how inadequate testing, poor tool support, hardware and infrastructure inconsistencies and the inherent constraints of direct source code maintenance contribute to developer sluggishness and overall software development ineffectiveness.

Concurrent or parallel development rears its head again as a source of development challenges. It should be cear that no one is suggesting that parallel or concurrent development approaches must be avoided in order for software to be effective. Although, many developers utilizing more advanced tools will suggest that a one person development teamcan accomplish more than teams working in parallel.
Obviously, concurrent development necessitates greater and more frequent communication between developers, business analysts, stakeholders and users. Communication is, of course, a vital and necessary aspect of any development project as previously discussed. Nevertheless, communication is a source of errors, or more to the point mistakes in communication lead to errors. But effectiveness issues also contribute to the problematic nature of parallel efforts. 

Application platforms help deal with effectiveness issues in software change management and software development. A metadata-driven application platform provides software “applistructure” that helps avoid many concurrent development issues. By virtualizing the hardware environment, these platforms leverage metadata to reduce the programming effort. 

Higher level approaches that avoid line-by-line coding are not prone to experience the problems introduced by code optimization. And even if an optimizer is used, readability is unaffected. The pre-compiled and tested capabilities of a platform are essentially pre-optimized.

Expectations for high availability rather than inducing high costs and practical limitations that prevent responsive software change management are better met with an application platform approach which introduces a higher potential for stability, scalability and robustness in finished applications. Application platforms are “maintenance friendly” because software changes introduce less risk. Ironically, change avoidance can ultimately put previously stable software at risk as changes in application environments introduce new unknowns as changes in operating systems, database and other systems inevitably creep in. Those concerned with software change management must pay careful attention to the future-proof nature of application platforms versus 3GLs. A metadata-driven application platform with a repository-based approach will go a long way towards providing the assurance that whatever underlying changes are introduced, the platform vendor will be able to provide a way forward that protects your investment in your applications and allows you to maintain your applications with a minimum of effort..

In parallel efforts, integration architecture is necessarily incomplete in the early phases of a project. Testing errors occur because it is impossible or difficult to in a 3GL to anticipate testing oversights. A more advanced application development platform may be a solution in particular because of the repository based aspects of some application platforms. Also, underlying architecture is part of the platform and not the development effort and so de rigueur testing has already been accomplished by the platform provider.
Other aspects of the project architecture, up to and including hardware  requirements aremore likely  incomplete at the beginning of a 3GL project, which leads to requirement changes on software created by subsequent architectural changes not anticipated in the beginning stages of the lower level efforts.

Source code optimization also relates to effectiveness problems impacting software change management and software development overall. For one thing, optimized source code is difficult to understand. Changes are more difficult because it takes extra time to figure out what is going on with the optimized code. It’s also difficult to pinpoint issues in testing to separate problems in the optimized code. 

Application platforms help deal with effectiveness issues in software change management and software development. A metadata-driven application platform provides software “applistructure” that helps avoid many concurrent development issues. By virtualizing the hardware environment, these platforms leverage metadata to reduce the programming effort.

Higher level approaches that avoid line-by-line coding are not prone to experience the problems introduced by code optimization. And even if an optimizer is used, readability is unaffected. The pre-compiled and tested capabilities of a platform are essentially pre-optimized..

Expectations for high availability rather than inducing high costs and practical limitations that prevent responsive software change management are better met with an application platform approach which introduces a higher potential for stability, scalability and robustness in finished applications. Application platforms are “maintenance friendly” because software changes introduce less risk. Ironically, change avoidance can ultimately put previously stable software at risk as changes in application environments introduce new unknowns as changes in operating systems, database and other systems inevitably creep in. Those concerned with software change management must pay careful attention to the future-proof nature of application platforms versus 3GLs. A metadata-driven application platform with a repository-based approach will go a long way towards providing the assurance that whatever underlying changes are introduced, the platform vendor will be able to provide a way forward that protects your investment in your applications and allows you to maintain your applications with a minimum of effort..





Thursday, July 30, 2009

Wisdom from Michael Singer: Cross-Browser Compatibility for SaaS Solutions


The following contribution to the Magic of uniPaaS was written by Michael Singer, Application Development Manager for Magic Software Enterprises Americas

When creating a SaaS solution that runs under a browser, cross-browser compatibility is a must. In today’s world of multiple browsers and plug-ins, a good SaaS solution will have to be tested on every existing browser (including older versions of browsers). Furthermore, new features implemented in the solution would require additional cross browser testing as well. Vendors of web based, business applications have been calling for a standard in the “mad” world of browsers for a long time, but with the recent launches of Google Chrome and IE 8, it seems, the diversity and differences between the browsers is growing with every passing day.

To achieve cross-browser compatibility, a developer would have to try and limit to a minimum the amount client side validations, use of cookies and processing. All these actions should be done on the server side. This would create fewer cross browser issues on one hand, but might hamper performance on the other. Another good practice would be to create a thin layer on the server side that interfaces with the client side; this would streamline the different data that comes from the diverse browsers and make a single data structure going into the server side. In case browser errors still plague the application, custom error messages that explain the source of the problem, and recommend a type and version of a browser, could be created.

A little kid once said "There is no spoon." (The Matrix, 1999)


So let’s think out of the box. A good SaaS solution does not have to run under a browser. Rich internet applications (RIA) are "web applications that have most of the characteristics of desktop applications, typically delivered by way of standards based web browser plug-ins or independently via sandboxes or virtual machines. Examples of RIA frameworks include Curl, Adobe Flash/Adobe Flex/AIR, Java/JavaFX, uniPaaS and Microsoft Silverlight.” (Wikipedia)

In laymen’s terms, a RIA uses the internet as a communication layer, works on port 80 just like the browser (for compatibility with firewalls), has a very thin client (for compatibility with the IT department) and yet it does not run under a browser, but rather as a desktop application, providing all the capabilities and user experience you would expect from a desktop application.

There are a few solutions out there, but in most cases the architecture is similar. Most tools have a client that renders XML pages, and a server that generates them. Requests from the client are sent to the application server which returns XML documents back. These files are then rendered again to the screen using various technologies. Most platforms have a way of managing sessions or contexts, therefore allowing some kind of persistence in the user experience, and providing a solution for offline work. The clients tend to have a zero footprint on the workstation, therefore making it easy for users to log on virtually anywhere. Browsers, by the way, do the same thing. The difference is browsers know how to render HTML and not XML, and quite frankly, were not designed to be the foundation for a business application but rather should have been used for, well, browsing.

RIAs come in multiple different flavors. From the amazing graphics of Adobe Air, to the amazing productivity of Magic uniPaaS (which actually includes a SaaS platform as part of the product), depending on any project’s requirements, developers could probably find a good tool out there to create any type of SaaS application that would be user friendly, provide rich functionality, secure access and would not require any cross browser compatibility, simply, because it’s not running under a browser.

So as Morpheus said “I'm trying to free your mind, Neo. But I can only show you the door. You're the one that has to walk through it.” (The Matrix, 1999)


Good Luck.
Michael Singer
July 18th 2009


Thanks Michael, great stuff.

Friday, July 10, 2009

Do ISVs Need An Application Platform that Supports the Ambient Enterprise?

As the owner or CEO of any independent software vendor can tell you, the status quo is not an option. Very early in my career in the software industry I heard people talking about how "you either grow or die."

This is brought on by rapid changes in the competitive landscape – everything from new entrants, to new features, to new adjacent categories – all of which provide alternatives to customers. Add to this the fact that business models employed by software companies are also changing and you find a business environment where people talk about terms like "survival" and "killing the competition."

The paradigm shifts have less to do with the underlying business processes addressed by the software solutions offered and more to do with the way the functionality is delivered to the business organization. The Web, Web 2.0, Web 3.0 shift is taking business use of the Internet from broadcasting to ad hoc interaction to what I call the ambient enterprise. The difference between the ambient enterprise and a business that simply tolerates Web 2.0 is in the degree to which the company embraces online interactivity through both a culture shift and a corresponding technical shift that incorporates the evolving semantic web and integration technologies.

The culture shift is all about embracing the ad hoc interaction of social networking, business networking, and all the myriad activities that are a part of the changing business culture: from web meetings and conferences to socially-driven searchable content and messaging to the myriad of social networking and media options.

Supporting this culture shift from an R&D perspective means mastering new technologies. An Independent Software Vendor needs to be able to make their software offerings relevant in light of this culture shift and the needs of their customers IT departments to embrace the ambient enterprise philosophy and integrate it with existing applications and business processes.

The application platforms that are emerging from this need will have built-in capabilities for multi-tenancy and provisioning, wide Internet accessibility, rich media types and cross-platform server support. These application platforms will be deployment agnostic in that the core business logic will be able to be served across a wide variety of ever changing deployment modes. This requires a metadata driven approach to development that abstracts the underlying technology from the business logic itself. And while this adequately describes the forward tensioning of the market, it doesn't acknowledge the current situation of the typical independent software vendor – they have client server and web-based applications and they need to continue to support existing users and deployment modes. The idea of introducing new languages for the emerging RIA client programming and simultaneously maintain server-side business logic with different languages – all the while having to manually program much of the communication between client and server is quite problematic. By reducing the number of required skillsets, value can be experienced in terms of time-to-market and cost savings. But an ISV doesn't have the option of throwing away existing application logic, application compositing must be supported by whatever application platform is selected so that ISVs have a way to forward migrate their core business logic. In these scenarios, service oriented architecture (SOA) and event-driven architecture will make sense. At the same time, the applications created must be fully scalable from a single desktop user to thousands of client-server or RIA users all the while providing management, monitoring and security.

Similarly, the demand for remote and mobile user support while maintaining a high degree of business interactivity and support for the ambient enterprise is putting strains on the old ways of developing and deploying business software. Obviously, I see the uniPaaS application platform from Magic Software as the first major application platform to step up to these requirements. I believe independent software vendors and corporate developers can address the needs of the ambient enterprise for agile development, RIA development, versatile deployment and secure, scalable applications through this application platform.

For additional information, please download our FREE! White Paper! entitled "The 5 New Essentials of Building Business Applications."