Questions for an Enterprise Architect
Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
How would you like to view the presentation?
Agile Development: A Manager's Roadmap for Success
Agile Maturity Model Applied to Building and Releasing Software
Agility at scale, become as agile as you can be
In today’s hyper-competitive world, later may be too late to adopt Agile development and this Roadmap for Success will help you get started. Download "Agile Development: A Manager's Roadmap for Success" now!
Condescension flows both ways. The notion that agilists are the guerillas, outnumbered in their fight for the one true vision, is just as harmful as the idea of pre-planned and regimented architectures handed down from on high.
I've been doing software architecture work for quite some time. Both with and without OutSystems platform, and in the recent year adopting agile methodologies.
What I seem to find out is that Agile goes hand in hand with large and distributed systems architecture. By nature these systems already change a lot. We've been trying to reach patterns since the beggining of ages that allow for easy maintenance, no (or low) impact on performance, and most of all, accelerated development. This requires design both at a high level as well as a low level.
Yes, we're agile. However, we cannot drop the high level design up front. We need to have a (not very clear) vision of what we are going to need. And agile copes with that. I found out, when moving to OutSystems, that you are provided with the most relevant patterns from scratch. The very nature of the platform extension mechanisms won't let you easily fail. It also provides you a kind of Domain Specific Language approach from the beggining, that will force you to create (and all developers to follow) well defined guidelines. All the assynchronous design patterns are also easily mapped to the patform potentials in timers. When coping with external systems or a corporate company architecture definition there's not much to trouble us as well. We're either at SOA (which OutSystems fits like a ring) or some other kind of integration pattern, for which you know you'll have an integration layer only for transforming/transporting/auditing/etc., that will be either implemented out of the box, or via a simple extension. All this facilities reduces the effort in defining the high level architecture, assuming you're confortable with the usual design patterns. This way you don't have to go very deep on the initial architecture definition. Just focus on business components/modules decoupling.
I am now in a software factory with a very large architecture basis. The only thing required is that, whenever a new requirement appears, you do an overall architecture impact analysis. If you have the above topics considered, you end up in having a new component. If the business requirement changes (and you'll adopt it "immediately" because you are an agilist), it will probably fit in its own business component, or have relatively low impact on the surroundings.
What about when there's a requirement that reaches all levels? If you've decoupling from the start the Core entities (business domain core - the ones you usually specify the DSL for) from the business components/processes on top of them and also from the integration layers, there's no big issue. You'll probably end up in refactoring some core processes to decouple even more, so that the new requirement fits in an isolated way.
This proved me that agile will make you good architectural choices. And if you know from the start you're going agile, the architecture will come out much stronger and maintainable, just because of the fact that you're thinking, from the beggining of ages it will be ment to change.
Kind regards,
Gonçalo Borrêga
OutSystems Solution Delivery team
www.outsystems.com
Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?
Sean Cribbs explains what Map-Reduce and Riak are, why and how to use Map-Reduce with Riak, and how to convert SQL queries into their Map-Reduce equivalents.
Chris Richardson shows how he ported a relational database to three NoSQL data stores: Redis, Cassandra and MongoDB.
Jean Tabaka challenges the audience to reflect on what Agile practices they are employing, how they are using them, ending with the questions “Why have their organization chosen to go Agile?
Andreas talks about the benefits of the Open Web and how it compares to proprietary stacks. He also talks about various projects that push the envelope like Boot to Gecko, Broadway and pdf.js.
Ron Bodkin discusses early adoption of Hadoop, NoSQL and describes MapReduce and related libraries and Frameworks. Other topics include Hive, Pig, multi tenancy, and security in a big data environment
Stephen Bohlen explains how Spring helps with interoperability between Java and .NET, demoing it with the help of a sample application.
Guilherme Silveira mentions some of the turning points in project development that may affect the quality of the code offering advice on avoiding writing crappy code.
2 comments
Watch Thread Reply