White Paper Increasing Proficiency of Business Analyst Professionals A Case for Online Agile Software Development Process Discover how a new collaborative solution with unique online software code generation capabilities can help you win software modernization projects more easily
CONTENTS BUSINESS CONTEXT 3 SOFTWARE MODERNIZATION USING CONVENTIONAL METHODS 4 OVERCOMING THE TOP THREE CHALLENGES OF SOFTWARE DEVELOPMENT 6 CHALLENGE #1: SPEED OF APPLICATION DEVELOPMENT 7 CHALLENGE #2: TEAM COMMUNICATION 9 CHALLENGE #3: INFRASTRUCTURE DEVELOPMENT 11 SOFTWARE MODERNIZATION USING A NEW ONLINE AGILE APPROACH 12 XI-FACTORY AT WORK IN THE HEALTH CARE BUSINESS SECTOR 16 conclusion 20 ABOUT AZUR GROUP 21
BUSINESS CONTEXT There may be no IT challenge more compelling for today s businesses than cloud computing. The shift to the cloud is inevitable, and most organizations will move toward a mix of private (in-house) and public (remote) clouds. To build a comprehensive cloud-based offering, organizations need to quickly develop new cloud-based software and modernize any software based on older technologies and hardware that continues to provide core services. 3 The industry is currently overflowing with millions of such applications that are reaching the end of their life cycle. Many old desktop applications, for example, are built from a variety of generic technologies, such as clientserver applications, spreadsheets, and database management systems. These legacy applications, like other intangible assets, are hard to emulate by competitors, which is why they represent key differentiators and a source of competitive advantage. Typically, a significant investment in intellectual capital has been made in legacy systems over time. Another reason for modernizing these systems stems from the fact that desktop applications are prone to growth and increasing complexity over time. An application that started as a simple low-scale prototype can grow to a critical business application that supports tens and sometime hundreds of users! To stay current with business needs, legacy applications must be quickly recycled into a modern format. Moreover, many corporations recognize the need to renew legacy mainframe applications in order to provide a Web interface and improve interconnections with customers and partners. However, new software development and software modernization projects are taking too many analysis, design, development and QA cycles. Poor time-to-market combined with prohibitive development costs are slowing down most organizations. In this rapidly changing situation, there are great opportunities for business analyst professionals who can propose efficient modernization solutions at a fraction of the initial development cost. Business analysts need to prepare themselves to adapt successfully to a rapidly changing business environment. Is there a way to greatly reduce these business pains in order to leverage the cloud s efficiencies from both an economic and operational perspective?
SOFTWARE MODERNIZATION USING CONVENTIONAL METHODS Once organizations get a feel for which legacy software needs to be modernized, they must evaluate the most cost-effective methods for doing this. Traditionally, there are three strategies for introducing distributed-object concepts into existing legacy software systems: I. Start from scratch: Redevelop the business applications. This approach frees developers from any consideration of existing systems. However, every function must be implemented and tested in a new language and a new environment, which is expensive and time consuming. II. The reengineering approach: Engineers convert the programs of existing systems to objectoriented programs, and distribute objects appropriately. This approach is promising since it is not necessary to implement functionalities that already exist. However, code conversion is not easy. 4
III. Wrap components of the existing systems and invoke them from the distributed objectoriented environment: Wrapping is a method of encapsulation that provides clients with modern interfaces for accessing server applications or components. This approach is recommended for large mainframe legacy systems; in the case of a 20-million line system, it s impossible to rewrite all the code manually without making mistakes. And even just a few mistakes can have a large effect on your organization s business operations. When all is said and done, various conventional methods and techniques can be used to renew a system, but in many cases these approaches rely on costly manual development operations. As for outsourcing IT services to lower development cost, studies show that although it looks affordable, it s not easy to have multifaceted software built thousands of miles away. Outsourcing is great when the level of service complexity is low, which is not the case for the development of complex data management software. Cost savings achieved from outsourcing software development and testing can be more than offset by the business cost of frustrated customers and users due to poor quality software and delayed projects. Nearshoring IT services, however, offers the following benefits: fewer time zone differences, geographical proximity, and more cultural/language similarities but still it s not enough because of higher service costs. 5
3 OVERCOMING THE TOP THREE CHALLENGES OF SOFTWARE DEVELOPMENT When developing software, it s necessary to take into account the basic phases of development:»» requirements gathering,»» analysis and design of possible solutions,»» development of the application,»» testing and quality assurance,»» deployment, and»» application maintenance. While these steps are a fundamental part of any software development process, organizations have come to realize that a focus on any single model (e.g., waterfall development ) can lead to a number of challenges. We ll discuss these challenges, as well as approaches to overcoming them. 6
CHALLENGE #1: SPEED OF APPLICATION DEVELOPMENT Time is crucial in a software development project, because of the continuous evolution of the way organizations do business, collaborate within other organizations and customers, and modify internal business processes. These organizations are relying more and more on network-based technologies (from local to wide-area networks), and Web-based applications have taken over traditional client-server programs due to the fact that they are easier to deploy, as well as being portable, thin, and flexible. However, developing faster and better applications is still a pain point for organizations that have not been able to speed the development process and that suffer lags between requirements and application functionality. Boosting the speed of development requires more than just adding resources to the project and distributing workloads over the team. It also requires the right methodology for providing means and tools to achieve the rapid development and quality assurance. Agile development methodologies can leverage high-quality Web applications, while achieving smaller goals quickly typically, every two or three weeks, which eases frustration among team members and shows results quicker. As an incremental development model, an agile methodology enables development of Web applications that can evolve and scale without compromising performance and execution of the project. It also provides the means to deploy incremental phases with less effort than with traditional development approaches. And as an adaptive method, an agile model also provides the means to adapt to changing conditions. Bear in mind, however, that software development projects often rely on a hybrid approach rather than adhering to a single orthodoxy. A pragmatic approach can make use of elements from both agile and waterfall models. For example, you may adopt various components of the agile model: 7
enforcing regular collaboration with stakeholders (users and project team) throughout the entire software development life cycle, adapting to changing conditions and requirements, enabling quick responses by detecting points of success and failure early, and increasing the likelihood of customer satisfaction by obtaining feedback on the software early and frequently. At the same time, you may also adopt some approaches that are characteristic of waterfall development: All team members (whether senior developers or not) have a strong, complete understanding of the requirements from the beginning of the process. This offsets some risk if the departure of some team members leads to the necessity of adding new team members. Estimations on deliverables and budgets are more precisely calculable, which provides the client with a firmer time frame and cost for their project. 8
CHALLENGE #2: TEAM COMMUNICATION Communication among team members is essential at all stages of the development process, in order to communicate objectives and requirements as well as to conduct project management and testing activities. It s vital to ensure that all team members and stakeholders have the proper tools and rules to promote communication of requirements, milestones, and achievements. This is especially important with projects that involve a large number of team members or projects that have an extensive impact over multiple business areas within the organization. This said, lack of communication is a frequent and significant pain point, and can result in project delays caused by slow transmission of objectives, misleading communication of priorities, lack of ability to maintain development process quality, failure to meet requirements, or simply outright failure to produce a product with the required functionality, features, and quality standards. 9
You can improve communication and collaboration from two different angles: I. Ensure the proper framework and methodology, which an agile development model can enhance (as opposed to different teams for each phase communicating through the documentation, modeling, etc., of the previous phase). This approach involves a. precise definition of roles and functions, b. a culture of cooperation, and c. a defined product development strategy. II. Use the proper mechanisms and tools to promote collaboration strategies: a. share information at all stages of the development process, b. encourage team interaction in real time or near real time, and c. manage user groups and development groups. Collaboration means more than chit-chat between team members. It means sharing knowledge, contributing to development, and communicating results especially testing and quality assurance as well as promoting commitment to (and agreement on) common goals. 10
CHALLENGE #3: INFRASTRUCTURE DEVELOPMENT In traditional development projects, setting the right infrastructure means creating all the necessary environments development, testing, and production to deploy the Web application. Over time, defining these platforms has proven to be challenging, followed often by failure to deploy into the right environment. This is especially true for Web application development, for which data volumes and functionality complexity can change radically and rapidly. There are a few characteristics of successful platforms for Web application development. Here s what you should look for: Scalability, to grow and expand according to new requirements Flexibility, for reconfiguration and change in the face of new operational conditions Security, to ensure that all application assets (data, software, and hardware) are free of security threats Reliability, in order to maintain performance standards as well as to deliver low or no downtime if possible Ease of maintenance, to ensure that changes in features do not represent an excessive drag of effort, time, and money Nowadays, many organizations are turning their attention toward cloud computing platforms, and exploring the possibilities for deploying Web applications on a cloud computing platform to lower infrastructure costs. Tying resources to a cloud structure enables an organization to use a third-party organization (i.e., resources are located outside the organization, in a public cloud) or business department (i.e., resources can reside inside the organization, in a private cloud) to provide them with the right type of computing service required, whether it be an application, storage space, or computing process capabilities. 11
SOFTWARE MODERNIZATION USING A NEW ONLINE AGILE APPROACH At AZUR Group, and over a ten years period, we have found that to reduce software development cost and deliver high quality software quickly; we needed to provide our business analysts with an expert online collaborative solution to support our IT services. AZUR Group is now introducing to a wider audience XI-Factory (www.xifactory.com) for business analyst professionals. XI-Factory has been designed to support an online agile process. The agile software development methodology is based on iterative and incremental development, where requirements and solutions evolve through collaboration between crossfunctional teams located anywhere in the world. This methodology is well suited for distributed software development, especially across many time zones. A new approach to software modernization thus relies on the increase efficiency of business analyst professionals using a distributed and automated Agile software development process, further strengthened by a new class of online technology innovations. The main advantage is that customer teams of subject matter and IT experts are getting involved with our teams of IT experts trough a unique collaborative process to maximise communication. Using XI-Factory, all involved teams can much better synchronize their efforts by securely designing and validating online software requirements, data models, functional models, analysis documents, prototypes, and much more 12
This approach optimizes the process of creating affordable solutions from existing systems (or new business needs), and provides the following organizational benefits: Accelerated time to market Assured software compliance and quality Increased customer satisfaction Improved visibility and alignment across the entire team Reduced project costs and risks Business analysts use XI-Factory s online collaborative processes combined with automatic software code generation capabilities to help organizations quickly develop the software solutions at a cost they can afford. With XI-Factory s major online features, business analysts can: Design software data and functionality models Write software analysis artefacts Connect worldwide with other business analysts, project stakeholders and staff Automatically generate working software prototypes business users can try online Assign software reviews of prototypes, requirements, and change requests Receive feedback in a standardized format Manage the review process with a progress dashboard Automatically generate software source code, at each construction iteration, for the development team XI-Factory thus combines the features of enterprise requirements management software with the ease of use and collaboration benefits of a web-based application. It helps business analysts write and manage software use cases, requirements, change requests, and test scenarios with test steps. 13
XI-Factory can quickly and iteratively generate 40% to 90% of the software source code (N-Tier architecture: Silverlight, WPF, or HTML5/jQuery;.NET, DBMS code, and tables), depending on the level of complexity of the software being built. And because of XI-Factory high level of productivity, we are able to compete against overseas outsourcing economics. That said, it s no secret that designing software models can be one of the most challenging parts of a new software development project. It s difficult for business stakeholders to concisely describe exactly what they want in such a way that the end product will be exactly what they envisioned. XI-Factory helps business analysts design entity-relationship models and normalized data models using hierarchical representations. It also provides a library of predefined software model templates per industry and business function, which allows business analysts to jump-start their work. Moreover, feature and data models can be copied into another solution to accelerate their work. And to bring these models alive, business analysts can use XI-Factory unique online software code generator to instantly generate working software prototypes to facilitate stakeholder s comprehension of these models by trying the envisioned applications online from anywhere. XI-Factory implements and automates a Model Driven Architecture (MDA) approach to ease the automated migration of legacy business software into new sets of modern technologies and cloud-based platforms. In our experience with numerous prior customer projects, XI-Factory can quickly and iteratively generate 40% to 90% of the software source code (N-Tier architecture: Silverlight, WPF, or HTML5/jQuery;.NET, DBMS code, and tables), depending on the level of complexity of the software being built. And because of XI-Factory high level of productivity, we are able to compete against overseas outsourcing economics. 14
Here are some of the most common development and integration scenarios for XI-Factory: New software development and desktop legacy system modernization projects. Organizations can use all the code generated by XI-Factory, with the option of using a programming language conversion tool to convert some business rules from the old system to the new one. Organizations can also use parts of the code generated by XI-Factory combined with a middleware Web service linking a modern user interface with the existing customer object-oriented framework and database. For mainframe legacy system modernization projects, organizations can adopt an incremental migration strategy based on the reengineering of the user interface using XI-Factory and the wrapping of legacy programs. A middleware Web service links the new Silverlight or HTML5 user interface to the wrapped legacy system. XI-Factory delivery process is relying on the Microsoft Windows Azure Platform to provide software releases in development, testing and production phases. XI-Factory enhances and is built on the following technologies: Visual Studio 2010, 2012 SQL Server 2005, 2008 R2, 2012, SQL Azure Windows Azure Platform.NET 4.0, 4.5 Silverlight 5.0, WPF, HTML5, JQuery Windows 8 (C#,XAML) Windows Server 2003, 2008 R2, 2012 Team Foundation Server 2010, 2012 SharePoint 2010, 2012 BizTalk 2010, 2012 15
XI-FACTORY AT WORK IN THE HEALTH CARE BUSINESS SECTOR AZUR Group, Primatabase Concept, and the McGill University Health Centre (MUHC) cardiac surgery division are proud to announce the development of a rich Internet application for the management of cardiac surgery information at the Royal Victoria Hospital (RVH). The MUHC is one of the world s foremost academic health centers. Building on the tradition of medical leadership of its founding hospitals, the MUHC provides exceptional multidisciplinary patient-centric care. The MUHC is affiliated to the Royal Victoria Hospital and several other hospitals in Montreal. Primatabase Concept Company is expert in the IT medical field and selected AZUR Group to help build a major data management software integrated with a new mobile application. In addition, a Kuwaiti partner is highly interested in the medical knowledge of the Royal Victoria Hospital Cardiac Surgery Division. All the project s stakeholders have decided to unite their efforts to modernize the current MUHC software and database in order to obtain and share the same quality indicators. At the end of the project, the final version of the software will be deployed on the RVH private cloud and on the Windows Azure public cloud to allow some Kuwait physicians to access it securely worldwide. 16
XI-Factory Design Interface for Business Analyst Professionals Working software prototype entirely generated online by XI-Factory 17
AZUR Group Efforts RVH Cardiac Surgery Software Agile Software Development Metrics Project 8 iterations (650h.) Management 65 hours (10%) Analysis 130 hours (20%) Design 32.5 hours (5%) Development 253.5 hours (39%) Deployment 32.5 hours (5%) Test 130 hours (20%) Training 6.5 hours (1%) Number of business processes 3 Number of Web applications 10 Number of screens 63 Number of fields 603 Number of actions 123 Number of relational tables 41 39 linked tables automatically generated with XI-Factory 2 tables manually added Number of stored procedures 177 Number of reports 7 Total number of lines of software code 30,254 lines (100%) Total number of lines of code automatically generated with XI-Factory 25,687 lines (85.5%) Total number of lines of code manually added 4,387 lines (14.5%) Calculation details of the number of lines of code: Presentation layer: Total number: 12,707 lines Number of C# lines of code generated: 10,908 lines (85.85%) Number of C# lines of code manually added: 1,799 lines (14.15%) Business layer: Total number: 6,656lines Number of C# lines of code generated: 4,682 lines (70.34%) Number of C# lines of code manually added: 1,974 lines (29.66%) Data access layer: Total number: 10,891 lines Number of SQL lines of code generated: 10,277 lines (94.36%) Number of SQL lines of code manually added: 614 lines (5.64%) 18
conclusion Organizational change is not optional to keep pace with business. All organizations, at one time or another, face essential modifications to some aspect of their business. Major analysts firms are stating that public and private spending in cloud computing will increase exponentially over the next few years, resulting in an available jobs boost of million positions worldwide. There is an explosion in both the use of cloud computing and the demand for people to assist in the mass migration to cloud. Business analysts can prepare themselves to adapt successfully to a more rapidly changing business environment by embracing new technology. Increase your speed. Greater opportunities come to individuals that can respond quickly. Customers value speed in providing services and delivering orders and are sometimes willing to pay extra for a quick response. Business analysts who are fast and flexible generally reduce costs by minimizing their consumed time on a project. As a business analysis professional, you need to continuously review how you can reduce the time spent on work, either in increments or in quantum leaps. Always look for breakthroughs that will allow you to get more done faster and with fewer people. With this white paper, we are proposing a new and unique way to build software for private and public clouds. We encourage business analyst professionals to try XI-Factory s Online Agile Software Development Process and see how it can greatly improve your ability to propose and win modernization projects more easily. 19
The AZUR Group mission is to offer a competitive nearshoring business model by optimizing its online agile software development process to develop secure, highperformance, robust, and affordable software for medium and large companies in North America. With over 10 years of development mandates, support and application integration, the AZUR Group has developed a cost-effective process that allows creating solutions that meet today s requirements and that grow with your business. Since 2000, we have built and deployed hundreds of web applications in a timely and cost-effective manner. We control complexity and take pride in delivering secure and reliable solutions with efficiency and accuracy. Our team of highly skilled business analysts, software engineers, designers, developers and database experts make your projects come to life using cutting edge technology and the industry s highest standards. XI-Factory incorporates the AZUR Group s knowledge and expertise acquired over 10 years in R&D efforts and customers projects. Contact us today for a free assessment of how XI-Factory can fit your business needs. Ask for a free training webinar! We look forward to hearing from you! AZUR Group Inc. 465 Saint-Jean Street Suite 400 Montreal (Quebec) H2Y 2R6 Canada T: +1 514 281-0061 contact@azurgroup.ca www.azurgroup.ca