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.
First, 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:
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.
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.
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.
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.
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.
If this sounds good to you, and it should sound really good, here are a few ways to get started.
We'll discuss your business and project objectives and provide suggestions on how to move forward.Schedule Now
Read more about the tools you can use to accelerate your software development, including our amazing Accelerator.Accelerator Solutions
Try out Accelerator yourself and see what amazing, well-architected and designed software you will produce really fast.Accelerator Trial