Creating software people love!
;
Developing Smarter Overview

Development Efficiency Rapid Application Development, RAD, and the development process

In software development getting it done fast is important, but results are what really matter. Success is measured by how well you deliver the right quality and functional software to the right people when they need it.

You and your developers have the same goal when developing – to make the best applications possible. Unfortunately you are seldom provided the time or the budget to deliver it. This compromise means that your company may not be getting everything it needs from your software.

Software development has typically been focused on the speed of delivery. In traditional development that speed generally comes at the price of inflexible software design, reduced functionality, poor code documentation, scattered code practices, and a lack of application monitoring and performance tuning. Essentially, your control, quality and functionality are sacrificed for speed.

That’s why productivity solutions for software engineers are such a good idea and why Rapid Application Development, or RAD, tools have been around for decades. However, these solutions are usually restrictive or incomplete. The results you often get are underwhelming and you spend additional time overcoming limitations, dead ends, and brick walls. Frequently, you spend precious time and energy learning proprietary technologies with limited value to the developer’s career. You may also have limited access to external support, knowledge, and resources besides the tool's vendor themselves.

To get true Accelerated Software Development, you must be able to speed up development while delivering high-quality, robust software without sacrificing any of the necessary functionality.

How you get it.

Once you have the User Experience and the core software and architecture all figured out as well as the development standards defined, then you need to find ways to develop quickly and effectively with them.

Base Code

The bulk of this effort is in building the base Create, Read, Update and Delete (CRUD) functionality. To do this, some developers will create templates in which they can “copy and paste” the code and then “find and replace” sections based on what they are trying to accomplish.

Developers may also buy or write tools to generate some of this code for them and use frameworks for other parts.

Refactoring Code

A big part of development effort is often spent on refactoring existing code. As changes are made to the standards, architecture, business requirements, and database, code will need to be refactored to support it.

The more standard you keep the code the significantly easier this can be, you may even be able to create tools that will do some of the refactoring for you. But, again, the code needs to be very standard for automation tools to be effective.

Establishing a Development Process

We suggest looking into agile and lean development as a basis for your development process. However, even within those constructs establishing a clear development process and methodology will significantly improve the estimating, planning, and the predictability of development efforts, especially with larger teams. The team will also create more consistent and maintainable code. Having developers consistently follow these processes is the greatest challenge and it can be very useful to create tools to support and simplify it.

Modular loosely coupled integrated plug-ins

In most software there is common functionality that is shared across various parts of the systems. Make sure to create this functionality as plug-ins and not just duplicate the code using copy and paste. Some plug-ins are bolt-on style, others are integrated, others become part of the service bus and others may be parts of all three. It all depends on the functionality and the need. It is important to build this plug-in capability into the modular, service oriented software architecture.

How we help

Surround’s Accelerator solution provides configurable and customizable development accelerators, well-defined development processes, and pre-built software plug-ins.

Software Generation

Accelerator's Software Generation Wizards are used to generate complete Systems or individual Applications, Modules, and other various parts through easy-to-use wizards. It generates the custom code that is specific to your database, provides 100% of your Create, Read, Update, Delete, and more (CRUD+) functionality, for developers to expand and enrich it further for more specific business-related tasks.

With Accelerator, the entire comprehensive base software that sits on top of the Accelerator Core is created for you. This is fully functional, near production-ready software generated out-of-the-box without any coding.

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.

Surround’s acceleration tools are open as well using our powerful Open Generation Technology. This allows the development team to configure their own development standards, define their own source in the generation templates and specify generation rules and logic based on their database and software needs. With it, you can continually make your software generation smarter, more powerful, and more specific to your business needs.

Pre-built Applications

Accelerator's loosely coupled modular architecture provides plug-and-play capabilities for other Accelerator-based or wrapped software and comes with a set of common cross-industry software already built and ready to be plugged into your systems.

As with all of Accelerator, all Code Starts can be customized or further enhanced to meet your specific needs.

Content Management System

This CMS enables you to quickly and easily create application portals for your employees, contractors, vendors, partners and customers. Securely manage who can create and maintain content, navigation, images, styling and anything else you define beyond software development and let the creativity flow.

Workflow Automation

Facilitates the routing of activities through a sequence of connected steps defined by the business. Workflow Automation ensures that work moves through the system in a timely fashion and is processed correctly by the appropriate user or group of users. It provides support for each step of the process and business cycle. Triggers can also be setup to alert executives or process owners when tasks or activities are entering the next step or that the current step is overdue.

Document Management

Provides a digital filing, sharing, and management tool to upload, share, track, group, organize, use, and reference any type of document, file, or media. Authenticated users can upload files from any device and attach them to any record in your systems where they can be accessed by other authorized users, streamlining processes and reducing user’s time and frustration looking for related documents.

Integrator

Provides custom integration interfaces into your systems to do anything from receiving and processing data to submitting or scheduling jobs for your application to run. The Integration Management Console allows you manage the interfaces; monitor, pause and cancel active jobs; and view interface history.

HR Job Board and Applicant Management

Offers the ability to add job-board functionality to your software applications and web sites, manage job openings, and streamline the process to identify the higher quality applicants that are right for the position. Accelerator HR Jobs Management Application saves time, reduces duplication, enhances consistency, attracts the right talent and simplifies recruiting. Hiring has never been simpler!

Remarks Application

Provides the ability to attach user, date and time stamped remarks to any records in your system. You can set up remark templates to make it easier for users to enter them as well as automate remarks where the system creates them based on user or system activity.

Definitions, Properties and Codes Tables

Enables developers and application administrators to create supporting tables of data such as property values, definitions, or codes/decodes with out any coding. These tables can be used to convert cryptic legacy codes to user-friendly values, property value look-ups or simply as a reference material for the user.

Tools, Tools, Tools

Surround provides a number of tools with Accelerator for further developer efficiency.

  • Code Enhancer – compares database and generated programs to analyze inconsistencies, find errors, and optionally update or fix the code. It analyzes added, changed, or removed fields as well as differences in types, lengths, and names. It updates existing generated code based on rejecting or accepting inconsistencies and can even update code that has already been customized by a developer.
  • Development Infrastructure – Base and Helper classes, ORM, UX Controls, and more to improve day-to-day development.
  • Build Manager – Generates a Build Script based on a project dependency analysis across multiple solutions and has command line access for supporting build automation and continuous integration.
  • Third Party Controls – Accelerator comes with a big library of standard controls, but sometimes you just need a little more. Accelerator provides integration with third-party controls to make it even faster and easier to plug them into your systems. There are vast arrays of controls available that can be used to create very stunning and innovative user interfaces. Find what works for you and drop it in. As an example, if you need to go beyond our standard grid control, then plug in the RadGridView from Telerik to get built in functionality for grouping with aggregate functions. Need advanced charting, plug in the Telerik’s RadChart.

Development Standards

Surround has defined an extensive set of development standards the majority of our customers are quite happy to adopt, as they are well thought-out and generally far beyond what they already have in place.

Our solutions, however, are not locked to our standards. You can configure our generation wizards and other tools to work with any standards you wish to adopt.

Development Processes

The Typical Development process consists of:

  • 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.

Accelerator and Application Services

The Accelerator Core software and Architecture securely exposes all of the Accelerator configuration, operation, and administrative services to other applications where and when it is needed as well as provides an architecture to do the same with your own applications.

Operational Management and Administration

Surround’s Accelerator solution comes with a complete system developed using Accelerator itself. It provides full security, system management and administration, as well as system monitoring, control, and performance tuning. These administrative functions can also be plugged in and integrated with your own system, pulling in your information and providing even greater operational control.

Top 10 Reasons CIOs Choose Accelerator

Choosing a product to guide the growth of your company’s software and IT infrastructure is a big task with many variables to consider. So we’ve decided to find out why our clients chose us above the rest.

There is an endless array of reasons companies select and continue to use Accelerator for their software development. The biggest question we see from our prospective clients is “Why choose Surround?” Instead of using in-house generated marketing text to talk about our product, we decided to let our clients do that talking for us.

So after extensive customer surveys and interviews with CIOs and technology leaders, we've identified the Top 10 Reasons CIOs Choose Accelerator. They told us they wanted to:

  1. Reduce software release times.
  2. Improve response times to change requests.
  3. Decrease project backlog and improve delivery capacity.
  4. Get fast, ongoing ROI and lower software TCO.
  5. Eliminate limitations and proprietary lock-ins.
  6. Minimize risk and business disruption.
  7. Simplify the reuse of existing legacy systems.
  8. Quickly adapt to changing technologies.
  9. Increase software adoption and user productivity.
  10. Get better application management, monitoring, and control.
Read more about the Top 10 Reasons