Creating software people love!
Developing Smarter Overview

Frequently Asked Questions

Read our frequently asked questions for fast answers. These are general sales and company questions. For support and product technical questions, please refer to our Technical Support Forum.

General

Not at all. Accelerator is our core offering and central to much of what we do, and is actually a collection of many tools that Surround has built to further advance our Accelerated Software Development Strategy.

But, depending on your particular needs and unique situations, Surround may recommend other solution add-ons, partner solutions, open source tools, and/or consulting services. No matter where you have to start or where you want to be, we cater to accelerating the entire software development life cycle. From concept to production to long term maintenance and enhancement, with Surround, you will always know the way forward, no matter how complex the business requirements.

There are so many! Through several surveys, polls and interviews, we identified the top 10 reasons Accelerator and Accelerated Software Development are used:

  1. Reduce software release times
  2. Improve response times to change requests
  3. Decrease project backlog and improve delivery capacity
  4. Fast ongoing ROI and lower software TCO
  5. No limitations and no proprietary lock-ins
  6. Minimal risk and business disruption
  7. Simplify the reuse of your existing legacy systems
  8. Quickly adapt to changing technologies
  9. Increase software adoption and user productivity
  10. Embedded Application Management, Monitoring and Control

Read more about the Top 10 Reasons.

Also, here are some additional items you may find helpful:

    • Streamline the entire software development life-cycle
      • ~37%+ reduction in overall software development life cycle depending on the size and type.
      • ~20% reduction in planning
      • ~20% reduction in requirements and definition
      • ~50% reduction in development
      • ~30% reduction in testing and validation
      • ~50% reduction in effort to transition to the new software
      • ~40% reduction in project changes (scope creep)
      • ~40% reduction in ongoing enhancement, maintenance and support (not in chart)

    • Maximize your development productivity
      • ~52%+ reduction in overall software development project depending on the size and type.
      • ~80%+ reduction in pilot deliverable time
      • ~90% reduction in application architecture development
      • ~80% reduction in plumbing, Non-business related development
      • ~80% reduction in base CRUD (read, create, update, delete) development (includes data access layer through to web service to user interface)
      • ~20% reduction in standard business functionality development
      • ~10% reduction in complex business functionality development
      • ~20% reduction in advanced application customization
      • ~80% reduction in code refactoring
      • ~50% reduction in development scope creep
      • ~50% reduction in bug fixes and remediation

    • Reduce and eliminate technical debt
      • ...

    • Maximize your end users productivity
      • ...

  • Maximize control of your current and future software needs
    • No limitations
    • No lock-in
    • ...

Please have a look at the Accelerator Product Page for more details about the solution.

Many developers certainly can, and do, build systems from scratch. They have been doing it for years. We are confident many teams could even build all of a complete architecture like that within Accelerator. But the central decision point in the build vs. buy question is … "does a solution meet all (or enough) of our requirements at a cost that is less than what we would incur by building it?"

Why start from scratch when you can start with a complete foundation, set of frameworks and all the underlying architecture and plumbing? Accelerator provides mature, well-tested, best practice architecture with generation tools to jump start all the rest. Unleash your genius and creativity on the stuff the business and users really care about rather than all the stuff under the covers. When is the last time one of your users complimented you on your great software architecture?

And that is just to get the initial solution created, which, for most software projects, is a small part of the cost of the development over the life of the solution. This is where you will see even greater return on your investment and choice to use Accelerator. All developers work in a consistent, repeatable methodology saving their unique creative problem solving for where it matters, the business requirements. Since approximately 60 to 80% of most software solutions is the underlying non-business related architecture with multiple ways of building, think about how creative a group of developers might be and how often the same exact functionality may be created and recreated.

Accelerator is millions of dollars worth of investment in research, development, trials and errors that you don’t have to make. And there is no way even a fraction of it can be recreated for the price we are offering.

With Accelerator, you save the years, the risks, the mistakes and the headaches … all at a fraction of the cost. Building software is about your business and the end users, not about if you can build it or not. The right question to ask is why do you want to and does Accelerator meet those reasons?

Take a look at our list of Accelerator Features, determine which ones are important to you and ask what it would take, not to mention how long, to build it yourself.

Not at all. Modernization is only one of the areas of software development where Accelerator shines.

Surround has great strategies, exceptional talent, well-defined processes and various tools, geared towards companies that need to modernize legacy systems on IBM i, IBM System z, and Windows. However, these are a subset of the overall software development solutions we provide. Surround views software modernization as software development with an often extensive and complex “current state” that requires additional tactical considerations.

To get a better understanding on our approach to software modernization, please check out our Accelerating Application Modernization page.

Yes, Surround provides the source code for all of Accelerator. Having the source available can help developers understand the underlying mechanisms of the core and various frameworks, debug problems in their applications and to learn by seeing how Surround develops software.

It is also a part of providing a solution with zero limitations or lock-in. You have the code to do with as you please if you so care to. To date, however, clients have found us to be extremely responsive to their needs and much more suited to working with this code.

Yes, the Accelerator user experience is highly customizable at several levels without any coding necessary, including by the end user themselves. We consider end user personalization very important to the users productivity and ability to optimize it to their particular tasks.

This enables the company to provide a single base application and customize it to fit the requirements of different users as well as allow for “user customization”, often referred to as “personalization”, in which the end user configures the software to their personal experience based on how they work most productively. This personalization is persisted via Accelerator Services and follows the user on any other device.

Understand that in order for a user to love their software, they must be able to make it as productive for them personally as possible. They may want configure it based on their particular skill level, or their particular role for that week or simply because they work better with one layout over another. They can customize it to their liking and change it as they get more experienced or take on different tasks.

We get where you are coming from! The Surround development team has used many frameworks and have seen the limitations inherit in them. They work very well for one scenario, but not so well for another. We even use some of these frameworks within our Accelerator solutions where they make sense. We are not into building something when we don’t have to!

The difference with Accelerator is that it is way more than just a single framework or a single tool. It is a collection of many frameworks and many tools.

Each system produced is made of a "Framework of Frameworks" specific to your definitions. As an example, in the initial software production process our SAM (System, Application, and Module) Wizards walk the developer through data storage selection and presentation model definition. Then, using numerous frameworks and code generators specific to those, produces fully-functioning software.

This means that, with Accelerator, there are indeed no limitations to what you can do, and since Accelerator handles all of the mundane development for you, you'll be amazed at how fast you can put your genius and creativity to work on business related requirements.

We seldom, if ever, get challenged on our architecture, but sometimes developers do have a business reason to build a different style User Experience. This is fine, most often it is quite simple to tweak the existing UX to what you need. However, it is also possible to build an entirely new user experience from scratch but still use all of the Accelerator security, meta data, and pre-built plugins. Really, we have top notch developers that despise lock-in as much as anyone. We like that. They make sure we simplify and accelerate without ever limiting. Accelerator provides software development acceleration without limitation.

There is an extensive amount of research and development that has gone into both the architecture and end user experience provided within Accelerator and we are continually improving and changing it with each release and as user expectations change. This is what we do so that you don't have to. So, when it is time to go beyond what Accelerator offers out-of-the-box, it is important to understand the business reasons for that and to maintain consistency across the development methodologies and the user experience.

Take a look at our list of Accelerator Features and see why there are no limitations.

Our software is versioned by four numbers (Major.Minor.Release.Patch). We typically produce one major version per year, at least one minor version per quarter and several releases within a quarter. Patches or hot fixes are not scheduled and are done as needed. When you install the Accelerator, you can install every release in a new folder which allows you to have many versions of the Accelerator installed. We recommend installing each "Major.Minor" version in a new folder which is the installation default. With this versioning, you can run our Re-referencing tool that allows you to upgrade your code to point to a specific version of the Accelerator. This will allow you to upgrade one .net solution without upgrading another, or to easily back out of an upgrade if needed. There are four parts to upgrading the Accelerator: 1) installing the Accelerator.msi on a developer PC, 2) publishing the new version of the Accelerator services, 3) updating the Accelerator database with the provided script and 4) transferring Accelerator Meta Data to the Accelerator database using our Export/import tool.

The Accelerator generates the Data Access Layer and supports the ability to supply an interpreter to the DAL to construct the SQL statements that target a specific database. We currently support and include with the product an Interpreter for DB2 and MSSQL. You have the ability to create your own interpreters as well. The UX and Business Processes work with a query object that the interpreter can use to construct the SQL statement. Because we are using ADO.net we are able to call stored procedures as well as execute any custom SQL statements supported by the database. A developer using the Accelerator can override any methods in the DAL and can code their own stored procedures and custom SQL statements. Working with Stored Procedures is currently not supported by generation, but is easily implemented afterwards.

The Typical Development process is very similar to conventional development except that it is significantly shorter:

  • Analyze, Plan, and Estimate – Accelerator’s consistent, repeatable, iterative development process makes defining project deliverables and setting expectations a snap. Accelerator eliminates technology challenges and provides comprehensive system functionality through fast out-of-the-box software generation which enables architects and developers to focus on the business deliverables. This same generation can be used to create a fully functional prototype to involve users and stakeholders early on in the project. Also, use Accelerator’s analysis tools and predictable development activities to accurately size and estimate projects, minimizing missed tasks, and unwanted surprises.
  • Generation – With Accelerator, the comprehensive base software is created for you. Accelerator Wizards walk the developers through the process of data storage selection, module relationships, and presentation definition. The wizards then use various frameworks and code generators to produce fully functioning, high quality, state-of-the-art software with open, well-formed, and documented code.
  • Enrich, Extend and Integrate – Using the fully functional generated software as the foundational basis, developers can choose to unleash their genius and creativity to enrich and extend it further. Since there are no limitations, you can take the system as far as your creativity can take you and what your business needs are. Add dashboards, productivity task panes, configurable system options, documents management, workflow wizards, advanced information visualizations, and much more. Use more Accelerator frameworks, code generators, tools, and pre-built add-ins to accelerate that process too.
  • Renew IBM i and zSeries Interfaces – With the renew option, developers can masterfully integrate refaced existing IBM i 5250 and System z 3270 host screens into new more advanced composite software, repurposing the full functionality. Screen navigation and processes are performed automatically and silently through background transactions. The business function host screens are presented in a graphically enhanced, dynamically derived version of the underlying 5250 or 3270 screen. The default dynamic refacing engine provides the graphical look for the vast majority of screens without any intervention and developers can enrich it even further to create highly customized graphical forms. Altogether, developers orchestrate and reface the host screens into encapsulated modern snap-in business functionality and get application integration that combines every system you have into one seamless user experience.
  • Test – Focus testing on your system customizations. The core architecture and base generated system functionality has been through extensive testing by us already. Implement Test Driven Development (TDD) to further automate the testing and validation process.
  • Deploy – Use Accelerator tools to simplify deployments and integrate with other tools to establish a complete continuous integration practice.
  • Monitor, Maintain and Enhance – Secure, monitor, control, and maintain your systems through the Accelerator Maintenance System (also built using Accelerator) and continue to enhance it further using various Accelerator tools.
  • Repeat – Create new modules and add them to your existing systems or create complete new systems with new modules that can be shared with the other systems as well.

Surround’s process delivers valuable productivity gains throughout the entire Software Development Life Cycle (SDLC) is significant.

While a module may be generated and regenerated multiple times when it is first being developed, once it is customized, it is not typically regenerated.

Add, change, or remove fields

The developer uses the Accelerator Code Enhancer to make module changes to existing generated code that has already been customized. The Code Enhancer compares your database and generated programs to analyze changes, identify impact, refactor code and update Accelerator Services all while retaining your code customizations. Analysis includes fields that have been added, changed and removed from the database or entities. This analysis ensures programs are fully updated with any changes made to the data store.

Add, change or remove module relationships

The Accelerator Code Enhancer will also assist with some of the relationship changes such as adding join fields and implementing drop downs, however thanks to the loosely coupled nature of the accelerator Architecture, most module relationships are configured through the Accelerator Maintenance Console.

Add, change or remove business logic

This is performed through custom coding the same as it is for the standard enrichment process.

Hand Coding changes

Of course, you can always hand code your changes and sometimes a change is so small that is perfectly normal and easy to do. Accelerator Code is well documented and has “//TODO:” comments that provide guidance for most any kind of change you would like to make.

After you generate your code, you can unleash your genius and creativity to further enrich, extend and integrate with it within the Visual Studio IDE.

Since there are no limitations, you can take the system as far as your creativity can take you and what your business needs are. Add dashboards, productivity task panes, configurable system options, documents management, workflow wizards, advanced information visualizations, and much more. Use more Accelerator frameworks, code generators, tools, and pre-built add-ins to accelerate that process too.

You will use Visual Studio for all of your enrichment and custom coding, including ongoing maintenance.

Most Development is never "done". When you need to add new modules to your system, you can run the Accelerator wizard to generate the code and add the appropriate metadata to the Accelerator Database.

However, for ongoing module development and maintenance, the majority of your coding time will be spent in Visual Studio enhancing and maintaining your code. Have a look at the FAQ “What happens when I change the Database for modules I have already generated?” for more information including our code enhancer tool that assists you with common changes that happen during the development life cycle. The code enhancer can update code that was previous generated by the wizard and modified by a developer within visual studio. The Code Enhancer will also assist with keeping the Accelerator Database metadata updated.

Surround tests Core Accelerator functionality for and currently recommends supporting the following desktop browsers.

  • On Windows
    • Chrome
    • Firefox
    • Opera
    • IE 8+
    • Edge
  • On Mac
    • Chrome
    • Firefox
    • Opera
    • Safari 5.1+

Additional and older browsers may also be supported with some limitations. Accelerator provides the base architecture, generated code and other development techniques to support graceful degradation. Graceful degradation is the practice of building a web site or application so it provides a good level of user experience in modern browsers. However, it will degrade gracefully for those using older browsers. The system may not be as pleasant or as pretty, but the basic functionality will work on older systems.

Accelerator provides the base architecture, generated code and other development techniques to support multiple User Experiences and device support.

Native Windows Applications:

Developers can create Native Windows Applications.

Desktop, Tablet and Smart Phone Web Browser Applications:

Developers can create web browsers applications for Desktop, Tablets and Smart Phone devices. There are various application frameworks targeted at the particular business need such as line-of-business, web portal, e-commerce applications, etc. these are all responsive designs that use a single code base that is responsive to the device type and screen size.

Desktop, Tablet and Smart Phone Native App Store Applications:

Accelerator supports Native App development for Windows Devices as well as Apple and Android Devices using either Xamarin or Phone Gap depending on the business need.

Accelerator supports three configurations for the different multi-tenancy business requirements with features for controlling security, functionality, users, user roles, application theme and branding, and more.

  1. Tenants totally separate
  2. Tenants have different databases
  3. Tenants use the same system and database

Surround has put significant effort into supporting software globalization around three primary areas:

Multinational: Software can be configured to run in different places.

Localization (L10n): Software can be adapted for use in specific locals or cultures.

Internationalization (i18n): The Software is equipped to run multiple locales.

Accelerator has built-in support for software globalization in the core and the software generation. We also provide best practice advisory information for what you will need to think about and do as you implement this functionality into your solution.

Some examples of multilingual support are:

  • Full support for Unicode
  • All textual software content is externalized in Industry Standard Language libraries
  • Ex: menu items, toolbars, captions, tool tips, status bars, labels, instructions, messages, help text, etc.
  • Standard translation tools can be used for translating languages in the libraries
  • Standard Language Libraries are easily supported by 3rd party translation companies
  • Support for dual language fields such as names
  • Ex: Write it in Chinese and English so that an English speaking person will know pronunciation
  • Support for switching from one language to another while running the application

Some of the things considered for L10n and i18n are:

  • Language
    • Alphabets
    • Numeral Systems
    • Writing direction (Right to Left, Left to Right, Top to Bottom)
    • Singular and Plural Forms
  • Culture
    • Currency
    • Images and Color
    • Names and Titles (Addressing, mailing, …)
    • Government assigned numbers (e.g. SSN, NIN, DL)
    • Telephone Numbers and Dialing
    • Addressing and postal codes
    • Weights and measures
    • Paper sizes
  • Conventions
    • Date/Time Format plus different calendars
    • Time Zones
    • Formatting numbers
    • Textual Symbol Usage
  • Regulatory
    • Tax requirements
    • Fiscal reporting
    • Fiscal Invoicing (Facturas)
    • Local data privacy and security requirements
    • Mapping

Microsoft's Visual Studio Integrated Development Environment, IDE, is one of the most powerful in the industry and the .NET development technologies are the best in the industry, especially for developing for multiple interfaces and devices. They are extremely flexible and powerful. However, it does not force or guide development standards or best practices. That is up to the developer to decide what is best for them. Surround's Accelerator is based on industry best practices and provides the majority of the more complex development needs including the software architecture itself. It's generation tools facilitate the establishment and adherence to your standards while generating the bulk of your code. Code that you can review and learn from. The streamlined Accelerator-based development process provides guidance and productivity for developers of any skill level.

Absolutely not. Accelerator ships with several different UIs to choose from, but you are not forced to use them at all. You are welcome to change the interface for branding or any other purpose you see fit. Accelerator is built to make this flexibility easy to implement.

Accelerator is 100% .NET. Therefor all the pieces required for deployment will package up along with the rest of your application as you would with any system you developed. No additional work is required.

Glad you asked.

IBM i and IBM z Systems

Communicating with the IBM i system from .NET can be done in various ways depending on the costs, tactical and strategic objectives and various other business needs.

Direct Access to the DB using IBM i .NET Data Provider:

There are several tools and technologies for directly accessing the Database Tables on the IBM i. Surround evaluated most of them and selected the .NET Data Provider for Accelerator solutions. IBM provides the .NET data provider to connect to the IBM i at no cost. For more information on this have a look at the following links:

http://www-03.ibm.com/systems/power/software/i/access/windows/dotnet.html

http://codeissue.com/articles/a04f1f6f95b5b75/connecting-ibm-i-series-using-net-dataprovider

Program access using Stored Procedures:

The IBM i .NET Provider also offers the ability to call Stored Procedures. While not commonly used in legacy systems, stored procedures are often pivotal components of a modern database design. They can be defined to work with different types of parameters. They can be written to perform varied SQL and work with multiple database objects simultaneously.

IBM i Developers can write the database logic in RPG, COBOL or C with embedded SQL, wrap it in a stored procedure, return the data in a result-set, and call that procedure from .NET. This method puts all the database "heavy lifting" in the database where it belongs, and the UX just displays the results in a rich and productive way.

For more information on stored procedures on the IBM i, have a look at http://www.ibm.com/developerworks/data/library/techarticle/dm-1104storedproceduresnet/index.html

Reusing 5250 sessions

Accelerator-based solutions can also access the IBM i through reused and refaced 5250 terminal sessions seamlessly embedded and integrated into the full solution. The session can be a physical part of the UX, or can work with the session in the background.

Other informational areas:

http://www.ibm.com/developerworks/forums/forum.jspa?forumID=467

http://www.ibm.com/developerworks/data/zones/vstudio/

There are a few ways to call RPG programs from .NET and to pass information back and forth. Our suggested method, which is also used in the framework, is Stored Procedures. Using stored procedures, .NET applications can readily call existing RPG, RPGLE, CL, CLLE, COBOL, COBOL LE, C and CLE programs on the IBM i.

Refer to the FAQ for "How do I access the data on My IBM i using .NET" for more information on this.