Skip to main content

Posts

Showing posts from 2013

The skills of a business architect

Important skills of a business architect includes communication, leadership and analysis. At least was that the result of a workshop in Las Vegas hosted by Jeff Scott. I think that the skills can be applied to software architects also, especially analysis and vision. What was the best skill? Get'er'done'er .

Test your JavaScript

Microsoft provides a way of testing JavaScript libraries automatically. The project is called BrowserSwarm and works lite this: Whenever you update your code on GitHub BrowserSwarm automatically start a test run. The result is a test report with issues (if any). Read more at InfoWorld . As mentioned in the article, a very easy way of testing an entire web page is to use Microsoft's modern.IE.

Ten Ways to Kill An Enterprise Architecture Practice

Ten ways how to not do Enterprise Architecture . I personally like number two, "set no goals": "Set no goals. Allow individual architects to find their own architecture opportunities and to do them any way they want.   Encourage cowboy architecture." Too many projects doesn't have a well defined goal, or the goal change during the project's life cycle.

R

Investigating a yet one more computer language. R is a language for statistical computing and graphics, it also features an environment. R can be used to manipulate and display statistical data. Check out the official web or a short introduction at InfoWorld .

When to use a graph database

Interested in graph databases? Here's an article with an example when to use a graph database rather then a traditional relationship database. After studying graph databases I realize that the choice of an RDBMS that I often do isn't necessarily based on the fact that RDBMS is the best choice. RDBMS is such an integral part of my backbone I don't think of anything else. A very good quote from the article is: You wouldn't use only one data structure for every type of data in memory, why would you do that just because you're storing the data? More on the subject: Graph databases on Wikipedia Neo4j Introduction to Graph Databases

The God element

In mid March of 2013 the God particle was confirmed to exist to the joy of many scientists. In software architecture, the God element has been around for years, and in contrast to the particle, the element is fairly easy to spot. The God element 1 is an element with a lot of connections to other objects in the system, the element is in the center of attention and is often called “manager”. The problem with this design is that the manager is responsible for all the functionality, the manager is the entire system and the other objects merely acts as e.g. data providers. Another problem is that it may lead to a complex system that is difficult to maintain, the manager does too much. Performance, reliability and scalability are key quality attributes that are effected by this type of design. The solution is to spread out the responsibilities among the elements. Software Systems Architecture 1 gives a guideline: "if you find more than 50% of your system's respons

A couple of new books

My pile of books is getting larger. In today's mail was a package with the following books: The process of software architecture, Peter Eeles and Peter Cripps The trusted advisor fieldbook, Charles H. Green and Andrea P. Howe The pyramid principle, Barbara Minto Writing winning business proposals, Richard C. Freed, Joseph D. Romano and Shervin Freed Clean Code: A Handbook of Agile Software Craftsmanship, Robert C. Martin I'm going to start with The pyramid principle, I definitely need to enhance my writing and I hope to get some pointers in writing short, solid and understandable.

Software Systems Architecture - revisited

A few weeks ago I started to read the book Software Systems Architecture by Nick Rozanski and Eoin Woods, see earlier blog post . The authors tries to explain the process of software architecture and which tools to use. The book is divided into a number of parts and the second part describes the (getting your hands dirty) working process very well. The chapters in the second part defines which work tasks need to be executed in order produce a well-motivated architecture. Among the tasks are: Identify the concerns and problems the architecture shall solve? Who are the stakeholders? Who will be affected by the product? Create scenarios in order verify requirements and how different architectural solutions will affect the stakeholders. Find missing requirements. Evaluate the architecture proposal. How to create architectural models to visualize the architecture proposal. Summarizing it all, writing the architectural description (AD). The third part contains a catalog of view

How to create a read only view

In this specific case the server application I'm working with are using a database hosted by SQL Server. The database is designed to be accessed by the server application alone, but there exists situations when other systems also want information from the database, such as status information. In those cases there is a good idea to create a view that other systems may use, and leave the database's tables to the server application. But also, the view should be read only, making it impossible for other parties to change the information. This can be done in number of ways and below I will show two: Create a read only view CREATE VIEW CustomersView AS   SELECT ID, FirstName, LastName FROM Customers   UNION ALL SELECT 0, '0', '0' WHERE 1=0 Add a union to the create view statement, the columns in the union must match the columns in the select statement. When the user executes an insert, delete or update statement then is the following error received: Msg 4406,