Saturday, November 27, 2010

Codingthearchitecture


Talk about Software Architecture by Simon Brown.

Really good ideas about software architecture.

Anyone thinking about a new long term software project should check these ideas. Every idea coming from Simon Brown was great and simple. What is not simple is to apply those ideas with elegance and craftsmanship, this is professional responsibility. 

A quick summary of that talk, is in the web page http://www.codingthearchitecture.com

For example, one of the substantially relevant ideas for me, was what Simon said about 'Base foundations for the app'. Basically a project without a good foundations will be difficult to be stable, to build on the top of it will be likely dangerous, unless you hold it with extra supports or big walls. What makes me think about building cathedrals in the middle age, with big walls to support such a heavy roofs. That is what many projects do nowadays, even using 'new technologies', they build cathedrals. Some of them very well decorated and looking very good. The only problem is that the client requested a skyscraper building.


Another useful idea was 'The constrains of the project, directs the architecture'. What I am totally agree, specially when I see development teams considering and thinking about user interfaces or functionalities at 1,000Km away from the users.

"What on earth are the constrains? What is that? Cons.. what? We, the developers, create the system, isn't it? So I decide what is better for me".

How many developers, over there, have never met even a single user?

Knowing the constrains is really useful if someone spends a short time trying to find them. And this someone should never be the salesman.


The last idea that I was grateful to listen was 'Development principles, needs to be pragmatic, they are great if they work'. Really totally agree, I had an experience where we set up a project with pragmatic principles, which all developers followed. The principles worked very well, because we made them work well. If the principle dose not work, many times it is easy to arrange it to make it better, but I think is better an arranged principle than no principle at all. That application is still under development and getting bigger and the number of incidents is constantly low near zero.

What is a principle? Is a convention that the team agree, in order to be able to do the right suppositions, what allows the developer to be more productive and write safer code.


Finally, the most notable concept was 'After finish the architecture definition, it is necessary to write code and test at least the foundations of the architecture.'

Again, totally agree. Exactly what I did in that project that I talked above. Coding and creating the first piece of every layer, concept, principle, etc... If you can do it, everyone else will be able to do it the same way or even better.


There were so many other ideas and recommendations from S.Brown. Fully recommended to check those ideas, before initiating any big development, if you want a long term project being successful.

Many thanks, for reading this post.

All the best, kind regards.  

--
Marc Andreu Fernàndez.

No comments: