Wednesday, 04 February 2009
Microsoft Press's Professional Series (the silver ones :-)) aim to create a series of books that provide information for IT professionals in a technology independent manner. Examples of previous books in the series that I've enjoyed are Code complete by Steve McConnell and the Object Thinking by David West. Both of these contain information that can be easily transferred from one language to another such as between Java and C#.

Simple Architecture for Complex Enterprises by Roger Sessions sets out to create another book in this series; this time focusing on enterprise architecture in particular the focus is on the idea of creating simple solutions. The Book is split into two sections, the first concentrates on the issues of complexity. It starts off by giving an overview of the current state of play in the field of enterprise architecture. Following on from the description on enterprise architecture Roger gives an overview of The Zachman Framework, The Open Group Architecture Framework (TOGAF) and The Federal Enterprise Architecture (FEA). He points out how these should not be seen as competing against each other and how they can in fact be used to complement each other.

Now we dive into the main target that this book is hoping to address with chapter 2 "A First Look at Complexity". Along with defining complexity Roger proposes a solution in the form of partitioning that can be used to break complex system down into manageable chunks. This idea is well illustrated with the use of a Rubik's cube and how a 4-by-4 cube has 7.4 x 1045 possible permutations, whereas a 2-by-2 cube has 'only' 3.7 x 106 permutations. There eight 2-by-2 cubes would only have 29.6 x 10 ^6 possibilities. So this example proves with undisputable numbers that splitting a complex problem into smaller simpler problems allows us to produce simpler solutions.

The second section of the book is "The Quest for Simplification" is where we find Roger's suggestions on how we can avoid complexity in our applications. The methodology that is proposed to control complexity is Simple Iterative Process. SIP describes the main approaches used for complexity control: partitioning, simplification and iterative delivery. After this chapter 6 shows us an example of a system gone badly wrong and illustrates how SIP could have helped this system. The system in question is the National Program for Information Technology (NPfIT) that the British government commissioned for the National Health Service (NHS), even if you have no interest in IT and pay taxes in the UK this chapter should be of interest due to the colossal money squandered on the project due to late delivery all of which can be attributed to a complex solution being implemented for a complex problem. The next chapter the looks at how we can start designing software to control the complexity problem using a technique called "Software Fortresses".

I liked this book particularly because it does what I think is important when writing on a topic such as enterprise architecture, it will help get you thinking! I would encourage developers, architects and CIO's to read this book and ensure they are aware of the danger of complexity entering their projects.

I would like to conclude this post by referring to thoughts from the book. To be a successful architect you must be passionate about simplicity, you must aim to make it your goal to deliver a simple solution for complex problems, anybody can develop a complex solution, it takes a great architect to take a complex problem and deliver a simple solution.


posted on Wednesday, 04 February 2009 21:51:00 (GMT Standard Time, UTC+00:00)  #    Add Comment | Comments [0]
 Friday, 30 January 2009
http://www.osalt.comThere are many open source projects that have hit the big time such as FireFox, Apache and of course Linux. However for each of the big names there's hundreds of smaller projects out there delivering quility applications that you could possibly make use of.

So how do you find these projects? Well take a look at http://www.osalt.com. This site allows you to search based on the name of a comercial product and will list the open source alternatives.
 
Image credit: Open Source Initiative (c)

posted on Friday, 30 January 2009 15:07:29 (GMT Standard Time, UTC+00:00)  #    Add Comment | Comments [3]
 Thursday, 29 January 2009
Do you have a Windows Mobile based phone and a Windows laptop? If you do you can very easily have high-speed broadband on the go. Simply connect your phone to a USB port and follow the steps shown below to activate the "Internet Sharing".





It is also possible to use Bluetooth to achieve this but I prefer the USB option as this gives your phone the opportunity to charge while connected to your laptop.
posted on Thursday, 29 January 2009 14:19:50 (GMT Standard Time, UTC+00:00)  #    Add Comment | Comments [0]
 Wednesday, 28 January 2009

One of the books that made it onto my seemingly never ending reading list was The Productive Programmer by Neal Ford. At only 190 pages it doesn't look too intimidating to start with and on closer inspection you find this is indeed the case. Neal Ford has produced a well written text that spares waffle and gets straight to the point. It's a book that is very easy to read and difficult to put down.

The book is split into two with part one focusing one mechanics and provides examples of some very useful tools such as JediConcentrate and Launchy. However I must admit I prefer Ghoster as apposed to JediConcentrate for aiding concentration. Along side recommending tools the first section also champions the benefits of scripting languages such as Groovy, PowerShell and Ruby, he gives some interesting examples of splitting SQL files and automating various other tasks. However I personally would stress the need to be compident with regular expressions along with a scripting language.

Some of the examples in the second section give examples in Java this could lead to the book being seen as a Java orientated book, however nothing could be further from the truth. This books contains lots of useful advice that will be of use to all developers. There is a discussion of SLAP (Single Level of Abstraction Principle) which can be applied to all Object-Orientated languages. Other topics include test-driven development, static code analysis and the idea of good citizenship, all of which if nothing else should plant a seed and get you thinking.

The author has a wiki for the book at http://productiveprogrammer.com. The wiki and the book is to raise awareness of how developers can be more productive and allow much smarter people to carry out the conversation. We're all familiar with the acynom YAGNI only in the case of this book it should read You are Going to Need It.

posted on Wednesday, 28 January 2009 20:57:10 (GMT Standard Time, UTC+00:00)  #    Add Comment | Comments [0]
 Thursday, 11 December 2008

A very useful download from Microsoft is the Visual Studio 2008 wall chart listing all the keyboard shortcuts available in Visual Studio 2008, now to learn them off by heart.

You can download it from MSDN.

posted on Thursday, 11 December 2008 11:33:58 (GMT Standard Time, UTC+00:00)  #    Add Comment | Comments [1]