Creating software people love!
;

Software Design and Architecture Quickly adapt and embrace change

Architecture is the great enabler of Agile Enterprise Software.

Great architecture allows you to quickly adapt your software to changing business needs while minimizing any technical debt, significantly reducing current and future efforts and costs. Surround’s Accelerator is a comprehensive development tool that has this baked-in so you don’t need to worry about it. But the need for great architecture is compelling, so it’s important to understand the value it represents. This conversation becomes even more critical to grasp if you’re considering building it yourself.

As business executives and software providers you want software that can quickly adapt to today's rapidly changing technologies and robust enough to stand the test of time. So as the company grows and changes and the requirements expand, the software can grow, change and expand with it. Your users want software that operates and performs well now and allows new features and functionality to be delivered as they need them so that they can perform their tasks effectively and efficiently.

The truly only way to achieve that is through a solid foundational architecture that defines how your software will operate, perform, and quickly adapt to new solutions, minimizing any technical debt.

How you get it.

First, what not to do:

Post it Note - What not to do.

For many software projects, developers just sit down and start coding. Very little planning is put into how the software will be architected and built. The developers focus on functionality and the immediate deliverable with little importance being placed on how that will impact future development often amassing technical debt that will one day need to be reconciled.

And, even when time is put into the architecture too seldom is it done right the first or even second time around. Architecting software right takes the most advanced and experienced developers. People that have done this before, worked with other software architects, and know the pitfalls. People that understand how the decisions made now affect development throughout the project and throughout the life of the software.

Also, when the Architecture is done well it is typically as much as 15% of the overall development for most software projects. In contrast, when it is not done particularly well, time and costs can often escalate far beyond that 15% due to the amount of code refactoring that occurs as development progresses.

To further add to the challenge of the development team, in the modern day of agile and lean software development, executives expect results in a very short period of time, making the large upfront effort required for good software architecture difficult to accept. Yet, this means that additional technical debt is accrued and will eventually need to be paid down.

It is important to understand that software architecture is a very costly part of software development and, the killer part, it provides very little business related functionality. Adding insult to injury, execs and users can’t see it, don’t know it exists and could care less about it – until it impedes future needs.

So, the first thing you should now agree not to do is to just sit down and start coding!

Now, what to do:

The productive user experience and the development processes, methodologies, and standards play a big part in the core software and architecture, so it is important to have those well-defined and part of your core software and architecture.

Some high level areas to research, understand, and include in your software architecture:

  1. Multi-channel User Interfaces – Plan on users needing to access the system from multiple channels. For example, Surround’s architecture supports integrated composite native Windows desktop applications, all major web browsers on any sized device, and native mobile applications. It is also designed to be able to adapt to any future devices that may be need, like watches and other wearable devices.
  2. Multi-source data access – Plan on having to access data from many different sources including different databases, server platforms, 3rd party packages, multiple cloud platforms, documents such as Excel, etc. Keep in mind you may need to access this data directly, through Web Services, APIs, export/import mechanisms, etc.
  3. Multi-application interfaces – Plan on allowing multiple levels of secured access to your system through various service interfaces. Also, think about providing your user interface as a service so that it can be embedded into clients or partner applications to create stronger incentive to do business with you.
  4. Dynamic (data-driven) applications – Suggest including a meta-data layer to better manage the application services such as authentication and security, communication, operational management, etc.
  5. Service Oriented Architecture, SOA – This is no longer optional. A SOA is essential and critical to your system.
  6. Modular – Define your architecture so that it tightly integrates loosely-coupled modules.
  7. Single Underlying (standard, unified) – You will ultimately need to produce more than one application. Make sure a single underlying architecture supports all of them.
  8. Scalable – Plan on your applications having to scale to allow for systems and users beyond current expectations. If not for this application, future applications may depend on it.
  9. N-tier – Plan on your application having to run on multiple tiers of hardware, but also allow for the additional performance optimization that can be gained when parts are run on the same tier. Suggest making that configurable because when you need it the most, there will be no time to code it.
  10. Distributive – As your applications grow in functionality and use, it may become necessary to include support for distributed computing.

How we help

Industry accepted best-of-breed architecture

Surround provides best-of-breed core software as part of our Accelerator solution. Accelerator developed solutions garner power and agility from the visionary architecture the Surround team has created. Because of it, the software built can connect to, that is integrate and interoperate with, well, everything. The software architecture is the primary reason Accelerator based solutions can so easily adapt to the ever changing business landscape and requirements. Software that gets out of the user's way and enables them to productively perform their daily tasks.

The software architecture acts as a technology abstraction layer to enable developers to do more by allowing them to focus on business functionality, not the complexity of the underlying technology, to produce advanced software that is built to last and built for change.

With Accelerator’s agile architecture and consistent generated code, you get software that can be productively enhanced and adapted to changing business and technology needs over decades of life with a very low total cost of ownership.

Industry-accepted best-of-breed very high-level architecture is undisputed in the industry as the best and necessary approach to software architecture. It is the basis of the Accelerator architecture. The figure here provides a representation of the basic layers or tiers of the technology. It shows that they are separated but has communication between them. It is also important to note that Accelerator apps are fully service-enabled and that the services can be both data and presentation. Also, there are framework services available across all layers. This is important. With Accelerator you can provide your system specific services as well as access to the underlying framework services, such as system configuration, properties, and security.

Industry accepted best-of-breed very high level architecture

The Accelerator high-level software architecture diagram dives a little deeper into the architecture details used with Accelerator. At the presentation level it shows how users can access the system from multiple channels – with an integrated composite desktop application, from web browsers, and mobile applications. At the data level (the bottom of the diagram) it shows the architectural support for data access to many different sources. Different databases, server platforms, 3rd party packages, and multiple clouds as well as access to other systems and information through interfaces and service providers. The grey section to the left of the diagram shows the different functions provided by the Accelerator services where the dynamic agility of the system is derived through operational metadata. Lastly, on the right, is the services interface.

Accelerator high level software architecture

The services interface provides secure access to both system information as well as the ability to utilize the system’s presentation layer. Web services are available in SOAP, REST, XML, CSV, and virtually any format necessary. The presentation services can be used within Microsoft office products like Outlook, Word, Excel, and PowerPoint as well as MS Dynamics and SharePoint. Of course, it can also be used by third party apps and be included in web pages.

The Accelerator architecture is based on best-of-breed software architectural requirements. It is a loosely coupled, modular, dynamic (data driven), single underlying (standard, unified), scalable, high-performing, n-tier, distributive, service oriented architecture

The next Accelerator architecture diagram provides an even greater level of detail of the architecture, showing the different components and how they relate to the various levels.

Accelerator architecture

Proven time and again

Surround Technologies started in software development and modernization in 1997 and our software has changed, morphed, and transformed from one technology to another. Time and time again, both for ourselves and our customers, the core architecture has made it possible to leverage the existing software to meet the new demands.

Core Software Built-in Functionality

Between the core software and architecture and the base generated code, Surround provides extensive functionality in the system without you having to code anything at all. It is all built for you and ready to go right now.

  • Ready to go complete application frameworks
    • Windows, Web, and Mobile
    • Business Objects and Services, BOS
    • Line of Business CRUD
    • eCommerce Product Catalog
    • Business Wizards
    • Dashboards
    • Task Panes
    • Advanced Visualizations
    • Theme and Skinning
  • Operational management and administration
    • Robust group, role, and user based security
    • System management
    • Logging, monitoring, control, and performance tuning
    • Error Logging, debugging, and testing assist
  • Application and Website Content Management System (CMS)
  • Software Configuration
    • Developer, administrator, and user level system preferences and options
    • Beginner to expert user experience options
    • System navigation including menu navigation, favorite and recent modules and tabbed navigation
    • Task Pane controls (e.g. History, Folders, Favorites, Hot List)
  • Extensive user interface controls
    • Simply too many to list!
  • Documents and media upload, download, and integration
  • MS Office (Word, Excel, Outlook) integration
  • Google/Bing Maps integration
  • 3rd Party Controls Integration

Do you want to be software architects or build business software?

With Surround’s Accelerator Core Architecture and Software, the hardest, most important, most critical, and most expensive part of your software development is done for you!

And, it’s done right. It will save you development time and related costs now and for many years to come. It will also minimize future maintenance costs and delivery time by providing robust software and eliminating technical debt incurred from rushed unplanned development.

Some frameworks say they provide the primary “plumbing” for a system. To call this plumbing would be a great disservice. To relate to the building metaphor, the Accelerator core is the footing, foundation, framing, plumbing, electrical, and communications. And, with all the other tools in Accelerator, I suppose you could say we even deliver the kitchen sink.

Ready to get started?

If this sounds good to you, and it should sound really good, here are a few ways to get started.

Schedule a Consultation

We'll discuss your business and project objectives and provide suggestions on how to move forward.

Schedule Now

Check out Accelerator

Read more about the tools you can use to accelerate your software development, including our amazing Accelerator.

Accelerator Solutions

Give it a Try Yourself.

Try out Accelerator yourself and see what amazing, well-architected and designed software you will produce really fast.

Accelerator Trial