Real World Software Architecture

Real World Software Architecture is dedicated to providing information and experiences from the field of Software Architecture.



Subscribe with RSS or ATOM Add to Google

Links

  • Home Page
  • Real World Software Process Engineering
  • Suggested Reading
  • .NET Dev and Arch Collection
  • SEI Essays on SA
  • Software Architecture
  • Bredemeyer
  • wwisa
  • Product Line Engineering
  • PLEES
  • Software Product Lines
  • MSDN Architecture Center
  • patterns & practices






Sunday, July 31, 2011

Enterprise Governance and Enterprise Engineering Book Review

This is the last book in the Enterprise Engineering Series I had to read. It covers a ton of topics and covers them in-depth.

The book starts out with a nice introduction to the author's point of view regarding Enterprise Engineering and Enterprise Governance.

It then continues with chapters on Mechanistic and Organismic Perspectives on Governance, Enterprise Essentials, System Thinking, Corporate Governance, IT Governance, Enterprise Governance, and The Praxis Illustrated a case study.

One of the things I like most about this book is that it combines corporate governance and IT governance under the Enterprise Governance umbrella. Most larger organizations see IT in a supporting role instead of a strategic ally, which leads to the corporate or business decisions being only partially effective. The business makes their decisions in a bubble that does not provide a realistic view of their true context.

Another thing I really like about this book is that it is an engineering book. Some people may not like that. It lays down the theory as well as the implementation of practices. It is very detailed which at times can make for a difficult read if you aren't used to reading engineering books.

I have been involved in logistics engineering, electronic engineering, and now software engineering, all three included having to take into account the fact that humans are part of your system.

The authors have a very clear understanding that some of the elements included in the engineering of an enterprise are humans and all the little quirks that come along with them. The chapter on mechanistic and organismic perspective on governance really digs into the different perspectives you can expect to find in the minds of the members of an enterprise.

The chapter on systems thinking is an important one for any sizable enterprise. Software Process Dynamics is an awesome book on system thinking. The ability to see the changes you are proposing in context where dynamic relationships can be evaluated is something most enterprise architecture initiatives are missing. Using system simulation models they can get a glimps of what impact a decision will have. The only problem I have seen is that system simulation does not work well in immature environments. In order to provide an accurate model, you need to understand the environment you are modeling, and most enterprises I have seen do not have a clear understanding of their true environment.

Some time ago I was involved with a technology review for a new project being developed. It was a smaller project being developed by one of the maintenance teams, but still a few months worth of work would be needed to get it in place. We approved some technology and disapproved some. We have an enterprise policy in place for the development language that should be used on any new project, so that was not discussed. We asked for more frequent code reviews because of new technology being introduced into the enterprise. We also planned to use the project as an example project for using the new technology.

Three to four weeks into the project we go to the first code review and we find the application being developed in a language other than our approved language. The excuse (notice I don't use the word reason for something like this) was the support team tasked with building the application is not proficient with the current enterprise endorsed language. This pointed out just how immature our IT governance implementation is. We had untrained people supporting software, and now they were implementing new software in an unsupported language. Apparently the enterprise policy on which language to use was viewed as one to follow only if you felt like it.

The saddest part of this story is that they were allowed to continue development in the unsupported language. Instead of the project becoming an example to the enterprise on how to implement the new technology, it became the tail of the elephant in the room that the EA group continues to ignore. That elephant being the lack of any real IT governance.

The chapter on IT governance points out this problem explicitly. When you take a look at the criteria for evaluating an enterprise the one I am referring to above falls into the category of Incoherent according to this book. That would not be the story you would hear if you went there and interviewed the employees or managers. Instead you would hear about an award winning IT department.

The point is that this book will uncover a lot issues with your current environment and it will provide you with the tools to make the changes necessary to improve. It will however be up to you to make the changes. They are not easy ones to make. It will require becoming humble, transparent, and open to change as a whole. Meaning everyone will need to be included. People will need to be retrained and those that are not teachable will need to be let go.

All in all I find the wisdom in the book well worth the time and effort it takes to read and digest it. It is very valuable and topnotch information.

The entire series is worth reading. It should be mandatory reading far all Enterprise Architects, CIOs, Directors, CEOs, CFOs, Software Architects, Project Managers, and anyone else who needs to understand what a healthy enterprise should look like.

All four books currently in the series.

Enterprise Governance and Enterprise Engineering (The Enterprise Engineering Series)

Enterprise Architecture: Creating Value by Informed Governance (The Enterprise Engineering Series)

Enterprise Governance and Enterprise Engineering (The Enterprise Engineering Series)

Enterprise Architecture at Work: Modelling, Communication and Analysis (The Enterprise Engineering Series)

Architecture Principles: The Cornerstones of Enterprise Architecture (The Enterprise Engineering Series)

posted by tadanderson at 4:37 PM 0 comments

Friday, July 29, 2011

They are coming this week... Microsoft Touch Mouse

I just got the note below from Amazon!!! Woo Hoo!!!

We have good news! We're able to get this part of your order to you faster than we originally promised:

"Microsoft Touch Mouse"
Previous estimated arrival date: August 19 2011
New estimated arrival date: August 03 2011

Microsoft Touch Mouse

posted by tadanderson at 10:16 AM 0 comments

Wednesday, July 27, 2011

JavaScript: The Definitive Guide: Activate Your Web Pages Book Review

This book has delivered exactly what I was hoping for, an in-depth look into modern day JavaScript.

I rarely use JavaScript nowadays in my day to day job. I have been lucky to avoid the messy browser applications it is usually a part of the past few years. That was my primary reason for buying the book. Although I may not like it, JavaScript is here to stay, and I need to keep current with it.

The book is broken into 4 parts. Core JavaScript, Client-Side JavaScript, Core JavaScript Reference, and Client-Side JavaScript Reference.

The book has chapters on Lexical Structure, Expressions and Operators, Statements, Objects, Arrays, Functions, Classes and Modules, Pattern Matching with Regular Expressions, JavaScript Subsets and Extensions, Server-Side JavaScript, JavaScript in Web Browsers, The Window Object, Scripting Documents, Scripting CSS, Handling Events, Scripted HTTP, The jQuery Library, Client-Side Storage, Scripted Media and Graphics, HTML5 APIs, and then continues on with the Core JavaScript Reference and the Client-Side JavaScript Reference.

The downloadable code is very well organized and usable. All the code in the book, and there is a ton of it, is available.

The book is very well written and makes for a really good read as well as a great reference. It is in depth and very thorough.

All in all I think this a great book. It will be on my desk for the next few years until I need to replace it with the 8th or 9th version.

If you are a web developer, you need this book by your side.

JavaScript: The Definitive Guide: Activate Your Web Pages (Definitive Guides)

posted by tadanderson at 5:20 PM 0 comments

Friday, July 15, 2011

Communicate... because in IT, if you build it, they may not come.

Finding the perfect balance of influence between IT and the Business Owners (I will resist the urge to refer to them as B.O.) is not easy. I usually find that most projects are influenced by one or the other in an unbalanced manner.

The story is usually goes like this...

The business feels that technology should not be a factor in making sound business decisions. In the business owner's eyes, whatever the solution is, the IT department should be able to support the technology that comes with that solution.

This is bad when a custom software package is the solution. .NET/SQL Server shops may end up with a Java/Oracle product or visa versa. Although it is possible to support every technology in the world it makes absolutely no sense to attempt to.

The essence of enterprise architecture is to constrain the technical environment to make it more specialized and efficient. Along this same line, it is also the job of enterprise architecture to modernize the environment. That means a healthy continuous change in a constrained set of tools should always be taking place.

If you are in IT and you are not prepared to be continuously learning, I recommend a change in career.

On the flip side we have the IT team that has been more or less cut of the business decision process. They decide the business owners apparently do not know that they know what is best for them. IT decides they will just build it and the business owners will learn to love what they have been missing.

I have seen this scenario happen with BI portals, data warehouses, workflow applications, reporting tool implementations, team collaboration sites, and I have seen it over and over again. If the IT team is lucky, they walk away without even getting a wrist slap, because the business decides to take advantage of some (10-15%) of the implementation.

The business owners are happy with that because it is an improvement in their environment even if it is a small one. They just don't realize 85-90% of the budget was wasted because they were not involved upfront.

Worse is the case when you get the wrist slap along with the refusal to look at your new application, much less use it.  You can build anything, but that won't mean people will use it.

Balance in any sizable enterprise is not easy. Lack of transparency is usually as much a culprit as governance put in place to create transparency. Governance put in place to surface the activities of both sides of the table can easily be construed as red tape to be avoided at all cost. The governance ends up discouraging transparency instead of creating it.

Common enterprise principles and well defined visions and goals are a good place to start. These of course have to be agreed on by all, not just a few at the top of the food chain. Everyone should have a voice in helping to come to agreed upon enterprise principles and well defined visions and goals. Even if everyone does not agree at least they were heard and they understand the other side's point of view. Everybody agreeing to disagree, is much better than simply disagreeing.

The business needs to know what is going on in IT, and IT needs to know what is going on in the business. It seems these things always come down to effectively communicating in order to remain transparent.

posted by tadanderson at 9:46 AM 0 comments

Tuesday, July 12, 2011

Pro ASP.NET MVC 3 Framework Book Review

This is the perfect book for the beginner and the advanced MVC developer. It is a one stop shop for learning the ASP.NET MVC 3 Framework.

It starts out with a nice little sample application that will get beginners up to speed fast. It then covers the MVC Pattern in detail and how it relates to Domain-Driven Development, Repositories, Dependency Injection, and Automated Testing.

Next the is a chapter on the C# features a good MVC developer needs in their tool belt, as well as the Razor syntax. This chapter does a good job of introducing the Razor view engine.

Then there is a chapter on the essential tools MVC developers should understand. This chapter covers Ninject, Unit Testing and Moq.

In the next 3 chapters the authors take you through building a real application. Everything is included from the views to the repository (using Entity Framework 4.1), to the database. They also include the unit tests. The application is a complete store front and an administration site.

The next part of the book includes details on individual features of the ASP.NET MVC 3 Framework. It includes chapters on URLs, Routing & Areas, Controllers & Actions, Filters, Controller Extensibility, Views, Model Templates, Model Binding, Model Validation, Unobtrusive Ajax, and jQuery.

The last part of the book has chapters on Security, Authentication & Authorization, Deployment.

I like that the authors show you how to take advantage of the tools available in Visual Studio 2010 to help get you as productive as possible.

This is a very well rounded book. It covers everything a .NET Architect and Developer needs to know to build real world applications.

The downloadable code is very well organized and appears usable. It is seperated into chapters and then into topics with in the chapters. It looks really nice, but most of it does not run so that is a ding to the book.

All in all I highly recommend this book for anyone moving into the ASP.NET MVC 3 Framework world.

Pro ASP.NET MVC 3 Framework

posted by tadanderson at 9:30 AM 0 comments

Tuesday, July 05, 2011

Entity Framework 4 in Action Book Review

This is rock solid coverage of the Entity Framework 4.0. It does not include coverage, beyond a small mention, of EF 4.1 (code first and DbContext API) or the June CTP release (enum support) of EF, but that does not take anything away from the book.

The book is broken down into 4 sections - Redefining your Data-Access Strategy, Getting Started with Entity Framework, Mastering Entity Framework, and Applied Entity Framework.

This book starts with a great overview of the history of data access, its issues, and how the Entity Framework can be used to address them. One of the things I like most about this section is that the authors also tell you when you should not be using O/RM.

The book continues with chapters on Querying the object model, Querying with LINQ to Entities, Domain model mapping, Understanding the entity lifecycle, Persisting objects into the database, Handling concurrency and transactions, Entity SQL, Working with stored procedures, and Exploring EDM metadata.

The last part of the book covers Designing the application around Entity Framework , and using the Entity Framework with ASP.NET, n-tier development, and Windows applications. It also covers Testing and performance.

The book goes in depth into all the topics covered. I found the author's writing style made reading the book from front to back easy and enjoyable. It will also make a great reference.

My only gripe is that I wish the printed book would have been in color.

The downloadable code is very well organized and usable. The book contains samples in VB and C#.

One of the things I like about buying Manning books is that I get an ebook with it. I can't stand reading ebooks, but I do like them for searching. Manning gives you the ebook, not a trial to your ebook which is great.

All in all I highly recommend this to anyone just getting started with EF as well as anyone experienced with EF.


Entity Framework 4 in Action

posted by tadanderson at 6:17 PM 0 comments

Monday, July 04, 2011

Enterprise Architecture: Creating Value by Informed Governance Book Review

After reading Architecture Principles and Enterprise Architecture at Work I decided I would also read this book and Enterprise Governance and Enterprise Engineering as well. I am starting Enterprise Governance and Enterprise Engineering now. This series is great!!! I recommend every Enterprise Architect buy the series.

This book was the first of the series. It is only 145 pages long, but it is packed full of valuable information.

This book puts Enterprise Architecture into context. It gives a complete picture of Enterprise Architecture.

It starts with a great chapter on why Enterprise Architecture is needed and then has chapters on Positioning Enterprise Architecture, The Results of Enterprise Architecting, The Process of Enterprise Architecting, and The Enterprise Architect.

One of my favorite parts of the book is the description the book gives to the Enterprise Architect role. Anyone looking to hire or become an Enterprise Architect should read this chapter. It covers basic job descriptions, competencies (e.g. dedication, authenticity, integrity, negotiation, openness, stability, etc.), responsibilities, and personality types.

One of the things I didn't like about the book is that there is no index. This seems to be the case for the smaller Springer book, so I can't ding the authors for that.

This is a well rounded introduction to Enterprise Architecture. It covers all the basics in depth and also provides a really nice example to show you the results of Enterprise Architecting.

All in all I highly recommend this book for anyone involved in anyway with Enterprise Architecture. It will provide you a clear picture of what it involves.


Enterprise Architecture: Creating Value by Informed Governance (The Enterprise Engineering Series)

posted by tadanderson at 5:58 PM 0 comments

Previous Posts

  • DevOps: A Software Architect's Perspective Book Re...
  • Scaled Agile Framework (SAFe) LiveLessons Video Se...
  • Bulletproof Android: Practical Advice for Building...
  • Swift for Programmers Book Review
  • Security in Computing (5th Edition) Book Review
  • Swift in 24 Hours, Sams Teach Yourself Book Review
  • Sparx Systems Releases Enterprise Architect 12
  • Learning Swift Programming Book Review
  • Android Security Internals: An In-Depth Guide to A...
  • Adaptive Code via C#: Agile coding with design pat...



Archives

  • December 2005
  • January 2006
  • February 2006
  • March 2006
  • April 2006
  • June 2006
  • August 2006
  • October 2006
  • November 2006
  • December 2006
  • January 2007
  • February 2007
  • March 2007
  • April 2007
  • May 2007
  • June 2007
  • July 2007
  • August 2007
  • September 2007
  • October 2007
  • November 2007
  • December 2007
  • January 2008
  • February 2008
  • March 2008
  • April 2008
  • May 2008
  • June 2008
  • July 2008
  • August 2008
  • September 2008
  • October 2008
  • December 2008
  • January 2009
  • February 2009
  • March 2009
  • April 2009
  • May 2009
  • June 2009
  • July 2009
  • August 2009
  • September 2009
  • October 2009
  • November 2009
  • December 2009
  • January 2010
  • February 2010
  • March 2010
  • April 2010
  • May 2010
  • June 2010
  • August 2010
  • September 2010
  • October 2010
  • November 2010
  • December 2010
  • January 2011
  • February 2011
  • March 2011
  • April 2011
  • May 2011
  • June 2011
  • July 2011
  • August 2011
  • September 2011
  • October 2011
  • November 2011
  • December 2011
  • January 2012
  • February 2012
  • March 2012
  • April 2012
  • May 2012
  • June 2012
  • July 2012
  • August 2012
  • September 2012
  • October 2012
  • November 2012
  • December 2012
  • January 2013
  • February 2013
  • March 2013
  • April 2013
  • May 2013
  • June 2013
  • July 2013
  • August 2013
  • September 2013
  • October 2013
  • November 2013
  • December 2013
  • January 2014
  • February 2014
  • March 2014
  • April 2014
  • May 2014
  • June 2014
  • July 2014
  • August 2014
  • September 2014
  • October 2014
  • December 2014
  • February 2015
  • March 2015
  • April 2015
  • June 2015
  • July 2015
  • September 2015

Powered by Blogger