Software re-engineering
Application / Software Re-Engineering Services
Business Problem
- your company is experiencing a need to significantly improve and re-tool your business critical ‘legacy’ software, or
- the design/architecture/platform of your product is no longer appropriate or meeting your business needs,
- you need to resolve this while keeping your customers happy, well-supported and your operations reliable
This is a difficult problem to solve, not unlike changing an engine of a plane in flight without disturbing the passengers…
This is what Zoral Labs knows how to do
If the above is the case, your business issues may include:
- High maintenance costs,
- A maintenance process that is too slow to react to your business needs,
- Lack of reliability and maintenance or enhancements process that does not improve reliability,
- Lack of scalability – your business or your clients’ business is now larger and more complex than existing software can comfortably handle,
- Lack of critical functionality or capabilities that in turn limit your company’s growth
- System design issues prevent or make it too risky and cost prohibitive to add new functionality easily or quickly,
- Any combination of the above.
There are consequences to the above. You are likely looking for ways to reduce maintenance costs to acceptable levels, improve reliability and eliminate the limitations these issues impose on your business.
However, as mentioned above, you will need to resolve while keeping your business critical software and applications working.
To achieve this you will need a high-end software engineering company that can provide a complete software re-engineering service, which includes the following:
- Software Maintenance Development: incrementally improving the existing software system and processes, while at the same time making sure the system is fully operational. Using the above analogy: “keeping your plane flying…” by:
- Reverse-engineering requirements – when requirements are out of date or missing;
- Reverse-engineering system architecture and design – when architecture and design artifacts are out of date or missing;
- Reviewing existing SDLC practices and processes for maintaining the current system and implementing improvements whenever practical;
- Fixing defects and errors;
- Improving code covered by tests (this over time improves system reliability)
- Implementing and utilizing the requirements traceability matrix to understand risks and impacts of system changes to the overall stability of the production system
- Adding new or enhancing existing functionality – architecture and existing design permitting;
- Improving non-functional characteristics such as performance, reliability, scalability, security;
- Eliminating potential sources of future defects and errors;
The above effectively prolong the life and usefulness of your system or software product while it is being re-engineered.
- Software Re-Engineering: full software development lifecycle to develop a new and improved software system that:
- is free from the issues that exist in the current software system;
- replaces the current software system, gradually or in one go (depending on risks and complexity), but in both cases with no visible interruption to the business.
The complete Software Re-Engineering lifecycle includes:
- Product Management: Risks analysis, root cause analysis, business analysis, requirements elicitation and management, product planning and scoping, competitive analysis
- Research and Innovation: Definition of a problem, data gathering and analysis, identifying a solution and developing best-of-breed or innovative algorithms, verification of quality for data and results, patent preparation
- Product Development: Technology analysis and selection, software architecture and design, data architecture, deployment architecture, prototyping and production code development, comprehensive software testing, data quality testing, and product packaging and deployment preparation
- Product Delivery and Support: Hardware/Platform analysis and selection, deployment and release procedures definition, installations and upgrades, tracking support issues, organizing maintenance releases.
- Project Management: Brings efficiency and productivity to your software re-engineering project by utilizing modern, practical software project management, software quality assurance, data quality assurance, and advanced risk management techniques.
Zoral Labs Software Maintenance and Re-Engineering Service – is tailored to turn your re-engineering vision into reality
Your initial motivation to start a software re-engineering project can include a high level outline of ‘unjustified’ cost overheads, basic statistics on delays or limitations or missed opportunities that the current software solution causes your business, as well as a simple list of improvements and advantages you would like to achieve for your business as a result of re-engineering the current system. This is enough for Zoral Labs to create a full-blown ROI case, Re-Engineering Vision Statement, Recommended Re-Engineering Implementation Strategy and a Road Map to review and solidify.
Zoral Labs Approach
Based on your business goals and constraints, Zoral Labs can apply one of two major strategies to solve this business problem:
- Maintain the existing production system and gradually improve it, or
- Develop a new software system and replace the existing system in stages or in one go, and then maintain the new system.
It is not always readily apparent which strategy would be the fastest, less risky and less costly. The selection of the strategy that is most efficient for your business is key part of the process. Thus, it is achieved as the result of a careful, multi-perspective analysis as described below.
Zoral Labs approach is logically split into four, major phases, each focusing on a specific set of objectives:
- Inception – an initial multi-perspective analysis, selection of strategy and development of a high-level plan to solve the business problem
- Elaboration – a detailed multi-perspective analysis and development of a detailed plan and a set of related artifacts to solve the business problem
- Construction – implementation of the planned set of software development or improvement tasks
- Transition – business delivery and deployment of implemented and extensively tested work and pro-active monitoring of software upgrades and new releases in production.
To accelerate delivery of the software re-engineering results to the business, some of the above sequenced phases can partially overlap, when results of a preceding phase are ready or ‘good enough’, we often start working on the next phase and improve results of the previous phase simultaneously.
It is important to accommodate real-world business conditions which constantly and frequently change. Also, there are typically pressures to address high level of detailed requirements uncertainty. To deal with this, the project can be executed iteratively by repeating the above sequence of phases rapidly, multiple times. This allows the development team to focus on small but most important subsets of objectives rather than trying to comprehend the whole system and its complexity before all detailed requirements are flushed out and documented. In other words, to accelerate re-engineering development, we often employ selective “divide and conquer” strategies.
When working on each of the above phases we focus on the following key, phase-specific questions:
- Goals: What re-engineering objective should be achieved in this phase?
- Major Risks to Address: What major risks / issues will be addressed in this phase?
- Inputs: What is required to start this phase?
- Outputs: What will be available when this phase finishes?
- Team: Who will be working on this phase?
- Duration: What is the timeline for this phase?
- Customer Involvement: What are the expectations for communication between Zoral Labs and a customer during this phase?
- Strategy to Execute: What principles, best practice and guidelines Zoral Labs will apply to achieve the objectives of this phase and produce the outputs?
- Tactics to Apply: What specific methods and tools Zoral Labs will apply to achieve the objectives of this phase and produce the outputs?
Zoral Labs Software Maintenance and Re-Engineering project phases are described in more detail below.
Inception Phase
Goals:
- Understand and document the business context, constraints and the overall business problem;
- Leveraging Zoral Labs software re-engineering expertise, devise an optimal strategy and a roadmap that would address and solve the business problem.
Major Risks to Address:
- Team efforts for improvementcan be applied in wrong directions: there can be uncertainty, even after a number of problems are discoveredas to their individual severity / impact or ‘weight’ on the overall business problem;
- Efforts for improvement can be inefficient: at the beginning, there is uncertainty on what strategy and specific methods will help resolve the business problem best and what strategy and specific methods will be of less help;
- The business may not always be able to fully support the needed efforts for improvements: there is some uncertainty regarding how the re-engineering effort will be coordinated and prioritized with the business over a period of time.
Input:
- Your materials or verbal presentation about the business problem that you want to solve and the advantages that you want to achieve;
- Any links or references to external materials about the subject that you may have or know;
- Any existing documentation or information that may be related to the business problem:
- Marketing or product management documents, clients and users feedback;
- Competitive examples that you would like to emulate, avoid or surpass
- Technical documentationfor the current application;
- Documentation and information on current IT processes: processes description, diagrams, and defects tracking data and statistics.
Output:
- A high-level plan outlining:
- Which strategy is recommended to address the business problem (software maintenance, software re-engineering or a combination of both);
- Schedule, resources, roadmap, high-level project plan to implement the strategy selected and risks identified.
- Supplementary artifacts:
- Detailing the analysis performed and points taken into account in support of recommended strategy and plan. Depending on the re-engineering project this may include:
- Results of initial technical and business interviews – key findings
- Results of initial technical reviews of the existing software system or application, including its current architecture and deployment architecture, design, test infrastructure, release management procedures and implementation – key findings;
- Results of the initial review of the existing software maintenance process, including issues and root caused identified;
- Detailed risks and root cause analysis and suggested mitigation strategy;
- Results of technical options available / preferable based on client team technical skill set and experience;
- Results and detailed recommendations based on initial business analysis and requirements analysis;
- Details about the plan itself which, depending on a project, may include:
- A prioritized list of recommended improvements or enhancements in the software system or its maintenance processes targeted at solving the business problem, which may include estimation of the positive effect or impact that the improvement / enhancement is expected to produce (we try to find and give high priority to all ‘low hanging fruit’);
- A high-level target software architecture, either for the improved current system or for the re-engineered new system;
- A road map for further analysis and product development.
Team:
- A small team of experts lead by a highly technical, Project Manager from Zoral Project Management Office, Research and Development Department
Duration:
- Depending on the project size and complexity, the Inception phase may take from a few days to two months. Typically, you should plan for 4 weeks for the Inception phase of your Software Maintenance and Re-Engineering project
Customer Involvement:
- In the beginning: A kick-off meeting is scheduled where the business problem, its context and objectives are reviewed and discussed. Business users present their expectations and priorities, internal resources available and time-lines / milestones are discussed
- In the middle: Zoral Labs team will perform and document a first draft of multi-perspective analysis. During this analysis,we will have questions regarding:
- Business processes and related risks and issues;
- Existing software architecture, design, implementation and ideas to improve them or re-engineer;
- Existing software maintenance processes or ideas to improve them;
- Preferences in the approaches to resolution of various technical/business issues.
Typically, these questions will be sent in the form of a “Stakeholder Request” document, which includes questions with possible or recommended answers, and all that will be needed is to selectone of the answers to document your point of view.
These questions will need a timely response so that the Inception phase achieves its objectives – to provide a detailed way forward. Thus your business, management and IT staff will need to be available to provide feedback to these questions.
- In the end: A structured review and feedback on the provided recommendations, plans and supplementary artifacts is needed. The strategy and the supporting implementation plan for the re-engineering project is agreed once client feedback is discussed and incorporated.
Strategy to Execute:
1. Review the business problem and risks, its context and the objectives the business needs to achieve. Understand the key objectives and business drivers of the project;
2. Perform an initial root cause analysis to identify potential causes of the business problem, cost overheads, delays, poor quality, limitations to business operations and growth, customer / partner potential issues;
3. Perform a more detailed review and analysis in the related processes and technology areas to confirm which causes contribute disproportionally to the business problem;
4. Perform analysis and research to identify all possible options that may help eliminate the causes or minimize their contribution to the business problem.
This includes considering options:
- To improve the existing functionality or non-functional characteristics, or add new functionality;
- To refactor or re-design various parts or layers of the system;
- To re-architect the deployment and data architecture in order to improve scalability, for example;
- To improve the existing software maintenance processes and tools;
- To improve the existing communication of the IT department with other departments of your business or with the clients of your business;
5. Perform analysis to select the re-engineering options that,when combined and correctly sequenced, will address the business problem best. This will result in defining one or more potential strategies to attack the business problem;
6. Assess the strategies identified from the perspective of meeting the objectives, priorities, resources and timelines identified by the business to select the most efficient and effective strategy given business constraints (note: all strategies as alternatives will be presented and explained why they were not selected to give business users a chance to reconsider constraints);
7. Prepare a road map, a plan and supplementing materials (see the Inception phase Outputs defined above), for the recommended strategy, which is aligned with the expectations of the business regarding objectives, priorities, deliverables, milestones, quality, resources and timelines. This comprehensive set of artifacts will serve as the basis to discuss and formally review findings and recommended approach with the goal to approve the documented strategy and plans with the business.
8. Formally approve the reviewed and recommended strategy and plan (including the subsequent Elaboration phase) with the business.
Tactics to Apply:
- PMBOK Project Management Processes Framework - Initiating Process Group, including Project Charter and Preliminary Project Scope Statement;
- Volere Requirements Management process;
- Qualitative and quantitative risks analysis;
- Cause-and-effect analysis, cause-and-effect diagrams;
- Flow charts;
- Pareto analysis, Pareto diagrams. Histograms;
- Statistical and metrics analysis. Control and run charts;
- Competitive analysis;
- Technical architecture, design and implementation review;
- Technical architecture, design and implementation best practices and patterns;
- Data Architecture and Data Management best practices review;
- Software modeling techniques for software architecture identification: Enterprise, cloud, web, rich user interface, embedded, mobile, data;
- Software maintenance, quality assurance and quality control processes review;
- Proven software development and maintenance methodologies, methods and tools: classical project management, Rational Unified Process, Agile methodologies, Feature Driven Development (FDD), CMMI (ref. to agile methodologies, methods and tools).
Leverage Zoral Labs extensive expertise to provide initial succinct and ‘to-the-point’ feedback on the best re-engineering approach. Identify and provide additional insight on more ‘innovative’ parts of the re-engineering project that can potentially provide a big ‘win’ for the business if implemented.
Elaboration
Goals:
- Agree on the project’s boundaries, scope, milestones and timeline;
- Agree on the processes and methods for implementing the re-engineering project: project management, software engineering and supporting processes. Focus on specific approaches and processes to improve and/ or re-design the software system while keeping the current software operational;
- Provide detailed:
- Functional and non-functional requirements;
- Future state technical architecture, design and a milestone based transition roadmap from current to future state;
- Future state project infrastructure;
- Project planning artifacts, including scope, priorities, schedule, resources, risks and risk mitigation strategy, test strategy.
Major Risks to Address:
- The scope, priorities and quality delivered by the improvements effort and the delivery dates may not meet the expectation of the business:
- uncertainty on what exactly needs to be delivered and in what order to solve the business problem, in terms of new or improved functionality, improved non-functional characteristics;
- uncertainty on what exactly needs to be done to deliver what is needed, in terms of the project management, engineering and supporting activities;
- uncertainty about how the efforts will be coordinated inside the project, and with participants outside the project;
- uncertainty as to what kinds of management, engineering and supporting process issues may appear during the execution of the project.
Input:
- The documents package from the Inception phase;
- Further adjustments and clarifications from the client.
Output:
Both the Maintenance Development and the Re-Engineering parts of the project will be provided with the following outputs:
- Detailed Software Maintenance Development Plan or Software Re-Engineering Plan, describing:
- Scope, priorities, milestones, schedule, resources and team structure, and risks for the project;
- Project management, engineering and supporting processes.
- Instantiation of Zoral Labs - Software Maintenance and Development Services, which provide the re-engineering project team with the required components of the processes, including source code control, issues tracking, knowledge base and file storage, continuous integration, and other systems and infrastructure services that may be needed for the project;
- Detailed Software Requirements Specification defining in detail functional behavior and non-functional characteristics that will need to be delivered in the software system that is to be maintained and/ or re-engineered.
Note: for large, complex systems and long term projects it may not be feasible to analyze and document all the detailed requirements in one iteration – a more efficient approach, especially for the iterative project execution (see “Zoral Labs Approach to Solve Your Business Problem”), may be to analyze and document detailed requirements for the initial milestones, and create a plan for further requirements development.
- Detailed Software Architecture Document, outlining the future state architecture of the system that is to be maintained or re-engineered - from different points of view: Use case, logical, process, deployment, implementation, data, size and performance, quality, security;
- Test Strategy and/or Master Test Plan, defining the approach that will be used to ensure the required quality level of the software or application to be maintained or re-engineered;
- Data Quality Management Plan, defining the approach that will be used to ensure the required data quality level in the application;
- Data and Software Security Plan, outlining the approach to maintain code and data security in the software system;
- Research Definition Document, outlining initial results of research and specifying further research plans;
- Prototypes of the product itself and/or of the critical areas of the product, user interface, systems interactions, innovative algorithms.
Team:
- Zoral Labs Project Manager, to manage the execution and organize the deliverables of this project phase;
- Typically a team of 3-7 senior software engineers (including product management and quality assurance), to perform detailed analysis, research and planning in project management, engineering and supporting areas of the project and deliver the phase outputs;
Duration:
- Depending on the project size and complexity, the Elaboration phase may take from a few weeks to a few months. Typically, you should plan 6 - 8 weeks for the phase.
Customer Involvement:
- At the beginning: It is recommended to have an initial, kick-off meeting where the customer meets with the team to confirm their common understanding of the phase objectives, schedule, constraints and timelines;
- Weekly: Review project status, provide feedback on various questions in the management, engineering and supporting areas of the project;
- In the end: A review and feedback is needed on the Elaboration phase results deliveredby Zoral Labs. Optimize and agree on the re-engineering plan going forward.
Strategy to Execute:
1. Based on the results of the Inception phase, perform:
- A more detailed root cause analysis and risks analysis to get detailson which parts of the software system need improving or replacing;
- A detailed requirements analysis to:
- Identify specific enhancements or improvements that need to be done in the existing application;
- Identify complete functional and non-functional requirements for the re-engineered system;
- Technical research and prototyping to identify and confirm architecture and design options that best meet the requirements;
- A detailed quality assurance planning to identify the required level of quality;
- Based on results from steps above and keeping in mind that the existing system needs to remain fully operational, define:
- Future state technical architecture and design;
- Project scope, priorities, schedule and resources needed;
- Major project management, engineering and supporting processes;
- Testing Strategy and the Master Tests Plan;
- Data Quality Management Plan and Data and Software Security Plan.
2. Review and approve the requirements, architecture and design, and the Software Maintenance / Re-Engineering Plans with the client;
3. Establish the management procedures and the technical infrastructure for the project.
4. Establish Project Management Office (PMO) and Project Governance with key stakeholders
Tactics to Apply:
- Many of the tactics used in the Inception phase, plus:
Analysis and Requirements:
- Requirements reverse engineering techniques:
- By reviewing existing documentation e.g. marketing, sales;
- By watching actual work done using the current system;
- By exploring the current system on the end-user level;
- By reviewing the current system on the architecture, design and implementation level;
- By reviewing the current engineering artifacts, including features lists, test cases etc.
- Proven methods for documenting functional and non-functional requirements: Use Cases, User Stories;
Engineering:
- Leveraging Zoral Labs deep knowledge in fundamental and advanced software engineering disciplines, including:
- Creation of reliable, high throughput, high performance, scalable, extensible and secure technical / enterprise architectures and designs for business processes, transactions processing, decision support automation, utilizing proven design patterns and best practices;
- Creation of application deployment strategies for a breadth of hardware platforms and operating system, including various cloud, grid, distributed, client-server, workstation and mobile platforms;
- Utilization of a breadth of software development and execution platforms, third-party middleware, analytics and frameworks;
- Utilization of BPM/BPEL for flexible workflow integration into re-engineered systems
- Utilization of modern component models;
- Optimized utilization of Networking;
- Utilization of Transactional, analytical or mixed use, distributed, highly scalable databases, low-latency STP, ETL/EAI/CEP and pub/sub information bus architectures;
- Utilization of structured and unstructured data analysis, data mining methods and algorithms;
- Utilization of scalable machine learning, artificial intelligence methods and algorithms;
- Unified Modeling Language (UML), including Use Case Diagrams, Analysis Diagrams, Class Diagrams, Component Diagrams, Sequence Diagrams, Collaboration Diagrams, Deployment Diagrams, State Diagrams and Activity Diagrams. Entity-Relationship Diagrams, Traceability Matrix;
- Low fidelity prototyping and High fidelity prototyping methods and tools, to prototype user interface, key business and / or transactions processing logic, critically important infrastructure parts of the system;
Project management:
- PMBOK Project Management Processes Framework - Planning Process Group;
- CMMI;
- Zoral Labs extensive knowledge and experience in proven project planning methods provided by mature software methodologies such as Rational Unified Process, Agile (Scrum, Feature Driven Development) for:
- Scope planning and definition;
- Schedule development;
- Risks identification, analysis and planning;
- Communication planning;
- Human resources planning, localand distributed project team(s) management and development;
Quality Assurance and Testing:
- PMBOK Project Management Processes Framework – Project Quality Planning;
- Zoral Labs proven knowledge and methods in quality assurance and testing activities:
- Quality planning: quality objectives definition, quality metrics (e.g. defects count and density by severity type, tests coverage etc), quality baseline, six-sigma-based test metrics monitoring;
- Tests planning strategies: analytical testing strategies, including requirements-based strategy and risks-based strategy, model-based testing, methodical and process-based testing strategy, automated regressiontesting strategies;
- Tests planning tactics:
- Static testing: reviews, walkthroughs, inspections of project artifacts;
- Black box testing basic and advanced methods;
- White box testing and advanced methods;
- Various types of testing:
- From software characteristics perspective, including but not limited to:
- Functional testing;
- Load, performance, stress, reliability, capacity, volume,scalability testing;
- Installation and de-installation, maintainability testing;
- Usability, internationalization and localization testing;
- Data quality testing;
- Security testing;
- Fault tolerance and disaster recovery testing;
- From the software lifecycle perspective:
- Testing to support software system development and maintenance;
- Integration testing;
- Testing to ensure the required software quality level;
- Staging system (pre-production) testing, acceptance testing;
- Production system testing;
- Tools utilized to deliver these artifacts include: MS Word, MS Excel, MS Project, MS PowerPoint, MS Visio or their equivalent e.g. Google Docs or StarOffice, etc.
- From software characteristics perspective, including but not limited to:
Construction
Goals:
- Execute the detailed project plan, performing management, engineering and supporting activities planned and assuring timely, milestone-based deliverables with the required levels of quality;
- Continuously ensure client’s awareness of project progress, risks and risk mitigation strategies;
- Ensure that client’s feedback is timely and the project plan is kept current and optimized as needed.
Major Risks to Address:
- The scope, priorities and quality delivered by the project team and the delivery dates may not meet the expectation of the business:
- Some of the initial assumptions made during the Inception and the Elaboration phases may no longer be true;
- The initially foreseen and unforeseen management, engineering and supporting process issues may take place during the project execution;
- The business context of the project or understanding of the project objectives by the business may change;
- Good system improvement opportunities usually discovered over the course of the re-engineering project may be missed.
Input:
- The artifacts from the Elaboration phase;
- Regular feedback from the client on the project progress and risks;
- Change requests from the client regarding scope, requirements, priorities, schedule, resources, quality level;
Output:
As defined in the Elaboration phase, this typically includes the following artifacts for the maintained and/or re-engineered application:
- Software:
- Source code and supporting technical documentation;
- Built and packaged software to be deployed in the testing or demo environments;
- The software or application deployed in testing or demo environments;
- Documentation:
- Updated requirements documentation;
- Technical documentation including updates to the technical architecture and design;
- Testing:
- Testing artifacts including updates to tests design. Tests implementation and tests execution reports;
- Project management:
- Regular status report on the project execution: progress, change control, risks and opportunities;
- Project technical infrastructure:
- Development, testing, demo environments, deployment environments.
Team:
As defined in the Elaboration phase, the team typically includes the following:
- A Zoral Program Manager: provides overall focus and leadership for a large-scale, multi-team project(s). Responsible for overall supervision, audit, communication, process definition, coordination of efforts, and issues escalation and resolution;
- A Zoral Project Manager (PM): for a small-scale or a mid-scale project, more than one PM for a large-scale project - for project execution, risk management, requirements management, requirements traceability management, process management, communications management, project monitoring, reporting and control;
- One or more software development teams, consisting of software team leads / architects, software engineers to perform the major engineering activities: technical research, technical architecture and design, implementation, testing, packaging and deployment;
- A supporting team that may consist of a product manager, quality assurance manager, data quality assurance manager, knowledge manager, linguists, security engineer, delivery manager, business analysts, data and information architect, risk manager, quantitative analyst, technical analyst, system engineer, usability engineer, UI designer, technical writer (the exact roles, number of resources, and their utilization depends on a project).
Duration:
As defined in the Elaboration phase. At Zoral Labs we typically classify re-engineering projects using the following scale:
- Short-term projects: less than 1 year;
- Mid-term projects: from 1 to 3 years;
- Long-term project: more than 3 years.
Customer Involvement:
As defined in the Elaboration phase (in the Communication Plan which is a part of the Software Maintenance Development or Re-Engineering Plan), this usually includes:
- Weekly: Management coordination, project status and risks / opportunities review. Adjustments to the short-term project plan(if needed);
- Every 2-3 weeks: Development coordination, demonstration to the client, collecting and analyzing client feedback. Adjustments to the mid-term project plan(if needed);
- Every 1-2 months: Research coordination, demonstration of research results to the client;
- Every 3 - 4 months: Software release coordination and delivery. Adjustments to the long-term project plan (if needed);
- On demand: Email/Skype/Face-to-face meetings for routine questions, issues and escalations.
Strategy to Execute:
1. Project Managers control and monitor project execution according to the project plan agreed, with the main focus on:
- Managing and monitoring executionof planned activities, collecting team performance metrics, adjusting and tuning processes as needed;
- Monitoring and addressing project risks in a timely manner;
- Looking out for new improvement opportunities within the re-engineering project and communicating such opportunities to the client. Opportunities for improvement not previously anticipated often come from research and development teams, as well as from the product management and business analysts team;
- Regularly communicating and demonstrating project progress and achievements to the client, providing full visibility and traceability for the re-engineering project;
- Adjusting the re-engineering project plan by change requests from the client;
2. Product Management / Business Analysts communicate updated and detailed software requirements to the development and test teams;
3. Research engineers perform data, technology, methods and algorithms analysis and communicate results to the other participants of the project;
4. Development teams deliver planned software improvements with the required quality level, which includes:
- Source code modification;
- Software testing.
5. Quality Assurance Managementcontrols and monitors the execution of the quality assurance and testing processes starting with requirements testing;
6. Data Quality Assurance Management establishes and verifies the required data quality base line and monitors / improves data quality metrics. If needed, it also certifies data quality at atomic data levels;
7. The supporting team provides required supporting services to other participants.
Tactics to Apply:
- Same tactics used in the Elaboration phase, plus:
Engineering:
- Zoral Labs knowledge and experience in efficient methods and tools for delivering commercial quality software code, including:
- Industry adopted coding standards, recommendations and best-practices;
- A breadth of design patterns;
Project Management:
- PMBOK Project Management Processes Framework – Executing Process Group, Monitoring and Controlling Process Group;
- Zoral Labs knowledge and experience in proven project execution, monitoring and controlling methods provided by proven software methodologies such as Rational Unified Process, Agile (Scrum, Feature Driven Development) for:
- Scope control;
- Schedule control;
- Risks monitoring and control;
- Performance reporting;
- Human resources planning, project team management and development;
Quality Assurance and Testing:
- PMBOK Project Management Processes Framework – Quality Assurance and Quality Control;
- Zoral Labs knowledge and experience in proven, practical methods for quality assurance:
- Quality audits of the project activities to (1) confirm that they comply with the project processes and procedures, and to (2) identify inefficient or ineffective processes and procedures;
- Cause-and-effect analysis, cause-and-effect diagrams;
- Pareto analysis, Pareto diagrams. Histograms;
- Statistical process analysis and control. Control and Run Charts;
- Reviews and walkthroughs of the major deliverables and artifacts produced by the development team: technical design and source code, tests design, implementation and execution results;
- Tests planning strategies: analytical testing strategies, including requirements-based strategy and risks-based strategy, model-based testing, methodical and process-based testing strategy, regression testing strategies;
- Zoral Labs extensive knowledge and experience in proven methods for testing:
- Tests design methods:
- Black box testing: equivalence partitioning, boundary value and domains analysis, decision tables, state transition diagrams and tables, orthogonal arrays and all-pairs testing, exploratory testing;
- White box testing: control flow testing, data flow testing, branch testing, path testing;
- Tests design methods:
- Extensive tests automation methods and tools;
- Continuous integration, regression testing to gradually improve the quality level and not allow quality to fall below the current level;
Support:
- Zoral Labs knowledge and experience in proven methods for configuration management and source control;
Tools:
- MS Word, MS Excel, MS Project, MS PowerPoint, MS Visio or their equivalent e.g. Google Docs or StarOffice, etc.
Transition
Goals:
- Deliver the improved or re-engineered software or application to business.
Major Risks to Address:
- The software operating in production may not fully satisfy the expectations of the business:
- uncertainty as to whether the software delivered really meets the initially agreed expectations. Does implementation reflect requirements, architecture and design?
- The production environment may not be built or configured properly and therefore – not fully capable of supportingthe new release of a production system;
- The software deployed in production environment may not be configured properly and therefore – not ready for execution in production mode;
- Defects may have been overlooked in the Construction phase and creep into production.
Inputs:
- Outputs from the Construction phase;
- Acceptance tests from the client (developed by the client team as part of the project);
Outputs:
As defined in the Elaboration phase, this typically includes the following artifacts for the maintained and/or re-engineered software:
- Software:
- Built and packaged software to be deployed in staging or production environments;
- The software deployed and configured in the staging or production environments;
- Documentation:
- Software deployment and upgrade procedure, describing how to build and configure production environment and deploy and configure the software;
- Release notes, describing the scope delivered in the release, known issues, and pointing out changes in the deployment procedure;
- Technical documentation.
- Testing:
- Production system testing artifacts including production system tests implementation;
- Project management:
- Regular status report on the project execution: progress, change control, risks and opportunities, post-mortem analysis;
- Project technical infrastructure:
- Staging and production environments, including staging and production hardware, system software, middleware, cloud-ware, mobile-ware and system monitoring tools.
Team:
- Part of the development team at Zoral Labs: responsible for the delivery of software, supplementing documentation and production system tests;
- The client’s IT team: responsible for the deployment of the software in the staging and production environments, and monitoring it’s operation;
- The client’s business or product team: responsible for the acceptance testing of the system deployed in the staging or production environments.
Duration:
As defined in the Elaboration phase, depending on:
- The complexity of the system in production;
- The duration of the project and number of releases and deployments done.
Typically the Transition phase spans:
- From a few weeks to a few months for the first release of a re-engineered system;
- From a few days to a few weeks for a release of the improved existing system done by Zoral Labs for the first time;
- From one to a few days for all subsequent releases.
Customer Involvement:
- At the beginning: It is recommended to have an initial kick-off meeting where the customer meets with the team to confirm their common understanding of the Transition phase plan and schedule;
- In the middle:
- Discuss and agree with the development team the configuration of the staging and production environments;
- Acquire, build and configure the staging and production environments;
- Discuss and agree with the development team the software deployment procedure;
- Develop and review acceptance tests;
- In the end:
- Deploy the delivered software system and production testing artifacts in the staging and production environments;
- Start the deployed, re-engineered system;
- Perform acceptance testing against the re-engineered, deployed system in the staging or production environment;
- Monitor the re-engineered system in production based on the expected quality and performance criteria.
Strategy to Execute:
1. Preparation:
- Zoral Labs development teams or the support team:
- Establish an automated software build process;
- Design the staging and production environment configuration, in collaboration with the client’s IT team;
- Design and implement the production system monitoring and testing system;
- Develop the software deployment and upgrade procedure;
- Develop the release notes for the upcoming release;
- Zoral Labs and the client’s IT team review and agree on the above;
- The client’s IT team acquires, builds and configures the staging and production environments;
- The client’s product or business team develops a complete set of acceptance tests, based on the documented business requirements. The tests are reviewed with Zoral Labs development and test team;
2. Deployment and testing:
- Zoral Labs development teams or the support team deliver built and packaged version of the re-engineered software system that is ready for deployment in production, along with supplementing documentation and production system tests;
- The client’s IT team deploys, configures and starts the system in the staging and production environment, based on deployment and release notes anddelivered system documentation;
- The client’s product or business team performs the acceptance tests against the system on staging or in production (note: acceptance tests can span weeks in duration):
- If all the tests pass the client team confirms that the system deployed can be turned into production
- If some of the tests fail, indicating that the current quality / performance level is not sufficient, then the issue is passed to Zoral Labs team and the client’s IT team for troubleshooting, further system optimization and resolution;
3. Turning into production mode:
a. As soon as the required quality level in production is confirmed the system is turned into production mode, allowing access to end-users;
b. The re-engineered system in production is continuously monitored for required levels of quality.
Tactics to Apply:
- Configuration Management, Release Management, Deployment Procedures and Management, Production Testing, User Acceptance Testing, Quality Monitoring based on six-sigma, SLA’s management.
If you need to re-tool and re-engineer your business applications while keeping your customers happy and your business operations undisturbed and reliable, then please contact us at: sales@zorallabs.com

