Wednesday, September 23, 2009

Deliberate Practice in Software Development

Peak-performing software developers typically have 10 years of consistent practice before achieving “virtuoso” status in their craft. In those ten years, they engage in what is known as “deliberate practice.”

One of the frequently cited advantages of the uniPaaS application platform is the ability to instantly generate new iterations and prototypes of the software for immediate feedback. As Art Pennington states in his book Profit: Discover the Gold Mine in Your IT Department,
Rapid repetitive prototyping provides the opportunity to test different scenarios and actually see which ones work best in live operation. Success with one technique might generate additional ideas for the next developmental increment of the system. Many times, when you can see something clearly at one level, the next logical improvement becomes apparent. That improvement would never have been visualized without the existence of the prior working model to provide the creative insight.


Mary Poppendieck’s presentation at Agile 2009 on “Deliberate Practice in Software Development” is well worth the time. Available on the InfoQ website.

Monday, September 21, 2009

Custom Software Development Benefits from An Application Platform that Gives Choices



Custom Software Development: 5 Things to Ask A Custom Application Development Firm Before You Turn Over the Keys to Your Requirements

Business owners and Line of Business managers with a vision of proprietary business value and defensible competitive advantages often articulate the needs for custom software that leads an IT department to seek help in custom application development. Too often, IT managers rush out to seek the best software development company when instead they should be seeking the best software development platform first, and then ask who is the best firm to deliver development services for this platform.

Business users seek increasingly usable and functional custom software applications to satisfy end-users and improve customer service. In many organizations IT is severely challenged to deliver custom software solutions to satisfy business requirements and extend legacy applications to incorporate new mobile and rich Internet interfaces. Owners and managers have in many cases turned to outsourcing to address the problem of custom software design and development with the attendant bottom line impact and delayed delivery cycle. Fortunately there are alternative approaches coming to the market which make use of "Metadata-driven application platforms" that enable the development and deployment of secure Internet and mobile applications to extend existing application functionality and shorten the application delivery cycle.

Before selecting a software development company, seek these capabilities in your custom application development platform:

  • Ability to develop and to compose richly interactive and mobile applications over the Internet that can extend the functionality of existing/legacy applications.

    Despite the dissatisfaction we have with existing programs, sometimes the best parts of existing applications can be reused and integrated as components of new applications. A typical example is the modernization of AS400/iSeries/System i/IBM i applications, in a way that allows a business to continue using core applications which would otherwise require substantial investments to rewrite.

    With the uniPaaS application platform, for example, components can be called from .NET code, java objects, Web Services, RPG, COBOL, etc. Reusing core functions can save weeks or months of development effort and reduce overall project costs. Identifying custom software development companie that can delivers these solutions just makes sense.

    Would you find it productive if you and your users could see the end result of your application before you start developing?

  • Ability to develop by focusing on application metadata rather than low-level and machine level coding.

    The development platform selected should not force you into use of common “third-generation languages” or 3GLs. These older style programming languages remain the most common used today by many custom programming services, because it is easy to find programmers who, if given enough time, can develop applications. Despite the fact that as much as 70% of these programming projects developed in 3GL languages fail, corporate America and global enterprises pour billions of dollars into overly complex development methods simply because they do not know any better way. The mistake, quite frankly, is that they ask programmers for their recommendation, and of course programmers keep recommending the same-old problematic tools that they are familiar with. As long as these programmers get paid, they care little about completion dates or the final results. Attempts by business users to get timely results are met with scoffs and disdainful remarks that “you don’t know what you’re talking about” and it can’t be done.

    But if you drill-down to the truth, most programmers have never used a metadata-centered application platform like uniPaaS. Despite the fact that it drives the profitability behinds some of the worlds largest enterprises: UPS, Boeing, Fujitsu, Allstate, and others, the average programmer is unaware of what really goes on inside the world’s most productive programming teams inside these large enterprise IT departments.

    Manipulation of application metadata rather than tedious line-byline scripting, means faster prototyping that enhances interaction of developers with business users thus improving the final result and reducing the amount of rework.

    Very fast prototyping (facilitated by uniPaaS' use of Metadata) enables better understanding and proofing of requests and concepts. Also, business users often relate better to visual hands-on prototypes than to algorithms. It is easier for developers and users to share and exchange information using functional prototypes rather than looking at program code or confusing and obscure diagrams.

  • Ability to scale the application from a single on-premise user to tens of thousands of users while providing management and monitoring to support the process.

    Ask an application platform vendor about scalability and they will usually suggest that the solution is faster processors or more processors. Te truth is few application platforms are truly designed for partitioning and load balancing that enhances scalability. uniPaaS is very scalable, and its compact footprint and high performance enable its installation even on a simple laptop. Yet, it can be deployed in high performance environments supporting many thousands of users and transactions. 85% of all real estate agents in the United States, for example use uniPaaS applications for their multiple listing services representing an enormous amount of real-time data for a key industry in the United States.

    uniPaaS has been installed and fine tuned in tens of thousands of sites, successively improving and optimizing its code. As a result, it uses server resources with an efficiency that would be very difficult to match in a one-off project using traditional coding.

  • Ability to maintain application security at the highest levels.

    Application security is an enormously complex subject touching on issues ranging from user rights to encryption to application testing to denial-of-service assaults. Ask most programmers about security and they will kind of shrug and suggest that someone else worries about that. What do they do to ensure the security of their code? Most will shrug and find themselves simply unable to answer.

    The uniPaaS application platform was designed from the ground-up as a secure environment. Some of our clients have such severe security requirements that we can not even mention their names. Since the uniPaaS RIA Client is an independent application and not Browser based, it is not subjected to the security issues and attacks related to World Wide Web Browsers. Also, the message format and protocol used to communicate between the Server and Client in uniPaaS are proprietary and secured. Finally, the uniPaaS Client does not access directly any backend resources such as databases - it only communicates with the Magic Broker.

  • Ability to hire consultants and developers through the application platform vendor.

    With multiple vendors independently involved in the same project, you increase the likelihood of a blame game. The application platform vendor can claim that the tools are not being utilized properly, the software development consultants can claim that they have encountered unanticipated deficiencies in the application platform. One question I would ask of an application platform vendor, is whether they offer professional services and whether their partners can be subcontracted through the application platform vendor’s professional service department.

    Over the years, Magic software had been exposed to and participated in numerous development and deployment projects, and its professional services organization provides a broad range of consulting services, from system level issues to application design and project management. They can incorporate external partners with additional expertise, with the added advantage that by dealing with one vendor for both the application platform and the services that are built on it, you can avoid the blame game and ensure accountability and responsiveness.

    Clearly, custom software development benefits from an application platform that gives choices. If custom software development is on your agenda, be sure to include the five capabilities mentioned here on your list of questions pertaining to the application development platform. Before you turn over the keys to your next application development project, make certain that you have selected the right application platform.

    For another point of view especially focused on RIA Application Development, I recommend The Five Essentials for Building Business Applications White Paper.
  • Friday, September 18, 2009

    Enterprise IT Architecture

    Business Models, IT Architecture, and IT Engagement

    With all the hype around cloud computing (even the US government is getting into the cloud computing act) and the true maturing capabilities that surround it, enterprise IT architecture is coming under increasing scrutiny.

    What is the role of enterprise IT architecture in achieving business success?

    Enterprise IT architecture should support the business operating model and be achieved through an IT engagement model. These three elements taken together (business operating model, enterprise IT architecture, and IT engagement model), provide a foundation for business execution. Based on a clearly defined business operating model, the enterprise architecture can be developed or adapted to support the model. The key elements of an enterprise architecture are digital business processes, IT infrastructure, shared data, and customer interfaces. Assessing the current level of architectural maturity within an enterprise, will provide a basis for further recommendations to enhance architecture and infrastructure.

    This review should help to reveal any business silos or fossilized business processes engendered by current architecture. Assessment of current and planned use of technology standards will allow a further determination of architectural maturity. Critically, an assessment of the core business systems and their level of optimization will lead to a further level of understanding and recommendations for enterprise architecture. Finally, based on successful recommendations related to operations silos, standardized technology and an optimized core, recommendations for business modularity and a service-oriented architecture needs assessment can be conducted.

    With these various reviews providing a better picture of enterprise architecture and its maturity, specific projects to enhance the foundation can be recommended and executed. Magic Software's Global Services team is highly experienced in conducting enterprise architecture reviews that are relevant for organizations.

    Should your organization consider cloud computing, private clouds, hybrid clouds? Should you upgrade to the latest uniPaaS application platform for a better end user experience?

    Before even answering these questions, a review of enterprise IT architecture should take place. Who better to advise you on architecture to support business applications and cloud computing than Magic Software itself?

    Thursday, September 3, 2009

    Business Process Reengineering Requires Leadership and Automation

    When it Comes to Business Process Reengineering, Leadership and Automation Go Hand in Hand

    Business process optimization is at the center of the agenda for many businesses today. In the past, efficiency may have been code language for layoffs and cutbacks – a strategy of doing less with less until the business cycle recovered and managers could start reporting gains again that would give business leaders the confidence to expand. But this is not efficiency; this is just monitored growth and retrenchment. True efficiency is not simply a matter of doing the same things more or less, but rather of doing things differently and yielding a better result. The typical IT manager is worried about data integration. CIOs are responsible for optimal results, however, and push their managers to go beyond data integration to achieve improved business process management and optimization. In this regard, business metadata has an important role to play.
    “Business metadata emphasizes the most important aspect of IT: making computers and information technology useful to the businesspeople themselves; not indirectly, but directly. Business metadata is about clarification and meaning; it is about enhancing reports and one dimensional data to be turned into information, allowing data to be turned into information and the information to be turned into wisdom.” William Inmon, Bonnie O’Neil and Lowell Fryman, Business Metadata (Burlington, MA: Elsevier, 2008).


    As the degree of integration increases in a business and moves beyond data integration to true business process management, sustainable competitive advantage can be achieved. The notion that better use of information can lead to competitive advantage is not novel.
    “At a time when companies in many industries offer similar products and use comparable technology, high-performance business processes are among the last remaining points of differentiation. Many of the previous bases for competition are no longer available. Unique geographical advantage doesn’t matter in global competition, and protective regulation is largely gone. Proprietary technologies are rapidly copied, and break-through innovation in products or services seems increasingly difficult to achieve. What’s left as a basis for competition is to execute your business with maximum efficiency and effectiveness, and to make the smartest business decisions possible. And analytical competitors wring every last drop of value from business processes and key decisions.” Thomas Davenport and Jeanne Harris, Competing on Analytics (Boston: Harvard Business School Press, 2007).

    Top executives can not expect these improvements to happen on their own nor should they expect that they can simply demand process efficiency from their organizations. Business process optimization demands a culture shift and symbiotic relationship between the CIO and IT managers within the enterprise.
    “Leaders must also create an environment conducive to reengineering. Urging people on isn’t enough. Any rational person in a corporate environment will react warily, if not cynically, to an executive’s insistence that he or she can break the rules, defy the received wisdom, and think out of the box. So, while half the leader’s job involves urging the process owner and reengineering team to perform, the other half involves supporting them so that they can perform.” Michael Hammer and James Champy, Reengineering the Corporation (New York: Harper Collins, 2003).

    Supplying the right technology to the IT organization is another fundamental. The degree of integration possible must span data exchange, data transformation, process modeling, process simulation, workflow automation, business rules automation, process monitoring and optimization. A robust business process management solution will include all of these capabilities.

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

    On Time Application Development Project Management: From RAD to RICH

    On Time Application Development Project Management is achievable when you want RICH but need RAD.

    Rich Internet Applications (RIA) for businesses represent a growing trend from software users wanting responsive and immersive interactions from any location. As business applications begin presenting information the same way as the social web – interactive and visual – and carry the same reach, IT departments must adapt. But what is the application development manager to do? How do you manage an application development project that threatens to become a multi-headed beast? At Magic Software, we say you cut off the extra heads. Afterall, who wants to have a conversation with a beast that has multiple heads?

    uniPaaS is a multi-modal application platform.

    We classify uniPaaS as a multi-modal application platform – one that supports several modes of deployment: RIA, client server, web, desktop, batch, etc. There is a debate raging over what constitutes a RIA application? The crux of the debate is over the meaning of RICH. I decided to introduce a mnemonic to contribute to the understanding of the meaning of RICH.

    R – Real-time Interaction
    I – Integrated Backend Systems
    C – Complete Immersive Media Experience
    H – Helpful and Intuitive Interfaces


    So there it is, a Rich Internet Application must be capable of being a completelyimmersive media experience with real time interaction using helpful and intuitive interface but at the same time be integrated to backend (RIBA) meets all of the above criteria and has as its principle raison d’etre the conduct of business in one way or another.

    A good Rich Internet Business Application platform should be ready for the Cloud but also capable of deployment on premise. It has to be connected to the reality of your business, a RIBA is not a frivolous game or mere advertisement, these are the domain of the single purpose RIA solutions that are oh-so limited in true business functionality and whose available programming techniques are relegated to the lowest of low level 3GL tedium and old school line-by-line coding? Who thinks that is modern?

    To be truly agile in one’s RIBA development and deployment, the application platform needs to be changeable and customizable with little to no installation effort on the client side. With the efficiency elements of an application platform like uniPaaS, delivering on the promise of the distributed and mobile enterprise becomes a reality.
    But before you can settle comfortably with a unitary approach to development where you trust a single application development and deployment environment to manage all dimensions of client, server, communication and other technical layers, you must be comfortable with that environment’s fundamental efficiency. With uniPaaS, common and repetitive development tasks are pre-programmed into the platform. As a result development cycle times are far less than expected.

    Don't reinvent the alphabet.

    You don’t reinvent the Alphabet each time you write a new book, so why should you reprogram basic routines for each change in platform technology or operating system revision? Why should basic application functionality, the kinds of things tha all programs must do, be a blank slate and a programming challenge each time? Too many individual developers are all too content to get paid to rewrite these programs. They are recreating the wheel for kicks. Who knows, maybe the next wheel they invent will be shinier than the last. But wouldn’t you rather just use a wheel off the shelf? That’s what uniPaaS delivers: off-the-shelf programming power.
    When developers are consumed by the tedium of low-level programming for the vast variety of technology protocols in use today, then they simply are not focused on your business needs. uniPaaS pre-compiled engine contains every technological component needed to build your unique application via metadata driven specifications. This means your IT team has the Power of Choice to focus on the business logic in your applications rather than time-consuming and fragile technologies.

    We don’t achieve that productivity by narrowing your choices and telling you which environments you have to run on. uniPaaS offers “the power of choice” in the breadth of its certified database and operating systems as well as other components of your infrastructure.

    When evaluating the uniPaaS application platform, look for these high level efficiency drivers:

  • Task oriented
  • Event driven
  • Inheritance
  • Reusability (high level in your application and low level built into the application platform)
  • Pre-compiled functionality
  • Open environment
  • Internal debugger
  • Team ready.

    The development and implementation of new business applications is becoming increasingly complex and with the ordinary and usual suspects, requires increasingly varied skills and extensive multi-loop, multi-cycle testing, driving costs up. Yet, reduced IT budgets and fast moving business realities constrain cycle time putting a pressure to reduce innovation with traditional tools. A solution worth exploring is to move gradually to one of the new application platforms which promote application integration and composite application capabilities, and reduce the development challenge by encoding business functionality as metadata. Existing developers can quickly become familiar with such platforms thanks to their abstraction of technology, and platform vendors such as Magic Software and our partners can accelerate delivery and reduce uncertainty with skilled on-demand resources.

    Rapid Application Development Techniques: Prototyping, Incrementing, Timeboxing.

    With uniPaaS, it is easy to apply rapid application development methodologies. – uniPaaS supports Prototyping. By creating a prototype, you can create an early result as a “proof-of-concept” or as a mini-functional version of the desired application. When you are after a demonstrable result early, prototyping with uniPaaS is a great option. With feedback from the users to show that progress is on track, you gain confidence for subsequent efforts that flesh out the application in full. This allows you to work closely with your end users and incorporate desired changes not anticipated in the initial scope of the project through change orders. The advantage being that you get the change orders in early enough in the process to prevent huge amounts of rework. By prototyping at the right time in the project, you get feedback from users to the development team at the point where it can influence the shape of the application before it is too late and costly to rework what you have created or too early to really give the users a clear idea of where the application is headed.

    With uniPaaS, iteration is encouraged. You can develop incrementally and refine your application over time. Since there are no complex compile and link processes, it is easy to see results of programming efforts immediately and debug them using excellent internal debugging tools. You create a feedback loop between your prototypes and their various iterations that results in a well managed and on budget application development project.

    With this RAD approach, you can impose timeboxing on your development team. Timeboxing is an artificial constraint – a fixed period of time set aside to a particular phase, set of tasks or for the next iteration and prototype. With a timebox, you can change the scope, but you are setting an expectation that delivery will occur within that timebox despite the scope changes. The timebox is built with the expectation that there will be some change orders. When the firm boundary of the timebox is adhered to, application development project management on budget and on time is assured. So with uniPaaS, RAD development becomes reasonable and possible as opposed to just being an inconvenient theory. But introduce a deviated development approach to RAD methodology, by deviated, I mean separate languages for RIA clients and server side business applications, then you can throw RAD, agile, extreme and all sorts of other and efficiency oriented development paradigms out the window.


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

    Application Development Managers Know: Less is More



    Application Development Managers Know that Sometimes Less is More

    Is the development team working on your RIA client different from the team working on your core business application logic? Do you ever have bottlenecks in development caused by lack of the right people with the right skills? Have you ever felt overly dependent on skill specialists?

    Experienced application development managers know that sometimes less is more. Unfortunately, with the most well-known RIA solutions, a condition known as “deviated development” occurs. A team of RIA programmers is writing code in a completely different line-by-line scripting language that the back-end team. Would you intentionally invent this scenario? Of course not. When it comes to programming language diversity, less is definitely more. But some enterprises just feel trapped, bogged down by risk-prone strategies that have evolved over time.

    With the uniPaaS application platform, organizations do not need to invest in multiple specialized skill sets in order to develop modern RIA applications as well as traditional client-server applications. They just need to describe the functionality of the application and request it's execution as needed - RIA or Client-Server. This reduces the cost and requirements of development resources.



    A good analogy is the universal remote control - you use the same on/off, channel or volume buttons on the remote regardless of which equipment you operate.
    In uniPaaS, the main Metadata elements are: Business Logic, Data View Definition, and Basic Operations: Update, Call (internal), Invoke (External), Raise Event, Evaluate, Verify, Form (Input or Output), Expressions (uniPaaS programs can access around 400 built-in functions as well as custom functions created by your developers) . uniPaaS is declarative programming at its best. The programmer states what he wants to do without coding the minutiae of how it is to be done. The uniPaaS application platform knows how to do that – across multiple platforms and databases. Metadata Isolates the physical environment (hardware, operating system, database, communication layers, etc.) from the business logic of your application.

    In uniPaaS applications, there are many common application features, such as security, data access, user interaction, that can be 'invoked' rather than 'developed' each time. A distinctive example is the 'Recompute' feature of uniPaaS. This works a little bit like a spreadsheet - it maintains dependencies that only need to be defined once, throughout the entire application.

    Maintenance of those pre-programmed components is assured. When trying to do the same in Java with acquired classes, the furture maintenance of those opaque pieces becomes a serious hurdle.

    Take the example of an inventory item and a Sales form. In traditional programming, the developer would have to program the incrementation or decrementation of the quantity in stock for each edit of the sales form line (create the line, delete the line, modify the line). In uniPaaS, all the developer has to do is to write a rule that defines how the sales quantity relates to the quantity in stock (typically "sales quantity decrements stock quantity"), and uniPaaS will automatically handle all the individual cases. Other typical examples can be found in the handling of the User Interface or Data Access.

    In today's dynamic business environment, application development team leaders are looking for simplicity - they are interested in reducing the diversity level in their team, eliminating repetitive or mechanical tasks, saving time and resources, and attempting to work with the platforms that provide solutions for both client and server sides of the same business application.

    In addition considering the fact that good programmers are scarce, there is a need to work with one platform that will cater to all flavors and business requirements such as Web Services, XML, team development, mobile development, Web programming and more.

    uniPaaS and, if needed, Magic Software's professional services team can answer all the requirements through the use of one consolidated environment for development and deployment, combined with expert level consulting, support and hand-holding services.

    Why stack up a bunch of old remote controls on your desk along with soon-to-be archaic RIA programming skill sets. Focus on a unitary application development approach that is metadata driven and flexible across multiple environments.

    For a FREE! White Paper, please see Business Applications: Building a User Interface to Deliver Optimal User Experience

    Tuesday, September 1, 2009

    Is it Time to Look at uniPaaS as a SaaS Enabled Application Platform?


    According to Evans Data Research, more than half of developers started the year with plans to develop some sort of SaaS application. That’s pretty remarkable when you consider that almost no one owns SaaS Enabled Application Platforms and development tools.

    The implication is that all this SaaS programming is being done the same way enterprise application programming was done 40 years ago – by brute force. In fact, Gartner has stated that cloud computing architecture will need seven years to mature. In a recent press release, Gartner wrote:

    "SEAPs are the foundation on which software-as-a-service solutions are built," said Mark Driver, research vice president at Gartner. "As SEAP technologies mature during the next several years, Gartner foresees three distinct, but slightly overlapping, phases of evolution. The first phase, through 2011, will be that of the pioneers and trailblazers; the second, running from 2010 through 2013, will be all about market consolidation; while the third phase, from 2012 through 2015, will see mainstream critical mass and commoditization."

    As Gartner says:
    As software as a service (SaaS) and cloud computing move toward the mainstream, platform technology emerges that is designed specifically for the requirements of that use pattern. A SaaS/cloud-enabled application platform (SEAP) is an application platform designed for multitenancy and elasticity — the critical characteristics of cloud computing that are absent in the now-prevailing platforms. When a SEAP is deployed "in the cloud" and offered as a service, it acts as an application platform as a service.
    Since uniPaaS offers a multinenancy management system and is highly elastic, it would seemingly deserve a place amongst the early leaders in any future SEAP quadrants and waves by leading analyst groups like Gartner and Forrester. But whether the analysts comment or not is far less germane than whether programmers adopt uniPaaS.

    Consider just three of the advantages that uniPaaS can offer a developer of a SaaS application:

    1. A unitary development and deployment platform. No need for multiple languages, scripting tools and the like. You have one consistent solution for developing the client or user interface layer, the business logic or core application layer, and the multi-tenant architecture or database layer. It’s all their pre-built, ready for you to access.

    2. Metadata driven development. For generations, programmers have been dreaming of a metadata driven approach to application development that allowed them to create programs without rewriting basic functionality and building out the same software architectures over and over and over again. With uniPaaS, you leverage the building blocks of an application rather than write the building blocks. Low-level functionality is embedded in the application platform and managed through metadata by the developer. That can save literally years, even decades, of programming effort because metadata platforms give you the ability to modernize underlying technology while preserving and enhancing core-business logic. Furthermore, metadata enhances developer interaction with business users thus shortening application delivery cycle (e.g. prototyping and POC).

    3. True forward migration. There is no way to prove the capability of a platform for forward migration because it begs the question, “forward migration to what?” I can not predict the future. But I can document the past. And the surveys we have conducted of uniPaaS users are extremely clear. Without exception, uniPaaS developers point to forward migration of core business application logic as a great benefit of the uniPaaS platform. This is not their speculation or belief about what might happen, this is a retrospective judgment that “it was good” – that uniPaaS in all of its prior lives has provided a consistent forward migration.

    So if half of the 500,000+ computer programmers in the US are working on SaaS this year, what tools are they using? The same old cumbersome Java and .NET development tools, I suppose. I am sure that Magic Software would welcome an OEM SEAP conversation with a platform vendor in search of a real, ready-to-go SEAP that is marketable today. Together we could reach those hundreds of thousands of developers. In the meantime, if you want to save a few years or decades and reduce your time-to-market of your SaaS application by an order of magnitude, feel free to contact us one-by-one.
    For additional information, please download our FREE! White Paper! entitled "The 5 New Essentials of Building Business Applications."