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






Saturday, May 17, 2014

The Agile Culture: Leading through Trust and Ownership Book Review

I wish this book would have been around a few years ago. At the time I was trying to convince a manager for several months that the top-down command and control model no longer works. The evidence was not difficult to come up with, you just had to take a look at the last 4 to 6 projects they ran, and the results spoke for themselves.

The really bad part was that it was a completely predictable environment. Orders came from the top to management and down to the worker bees. The projects were always over budget, missed delivery dates, and delivered buggy partially completed products. If you were lucky you got something close to what the business asked for, but sometimes it just didn't work at all, or was so far away from meeting their needs it wasn't usable. Process makes for a predictable outcome, and the top-down command and control style they used, created the same result every time.

That was the bad part, the sad part was everyone in IT knew what was going to happen, but they had no choice but to play along. The business being convinced IT was just a business expense, and not a strategic partner, they just thought this is how it is working with IT. Expensive and you get very little for your money.

This is a very archaic way of thinking and is usually found in businesses over 70 years old. They still don't understand, that in today's world, many companies of any decent size are just an IT company that specializes in a certain type of business. IT is the life line to their customers. People pick up a phone to order a product, but not by making a phone call to their favorite salesman, they use the mobile application your company provides. Don't have one? I guess the order wasn't going to your company then.

As I said above, in these companies you will find the mindset that the business is IT's customer. Instead of a partnership with the goal of meeting the actual customer's needs, the command and control mindset is built into their relationship creating a lot of dysfunction. This is a higher level example of an entire department having no trust from the business unit and no ownership of their projects. This has devastated the morale in IT and without big changes, it won't get better.

In these archaic thinking companies you find very little trust and ownership in all their departments. I see a lot of them today suffering terribly, but insisting on staying in denial. They just won't give up on the mantra- This is how we have always done it, and doing it this way is what got to where we are today. They just don't have a realistic view of where they really are today, and if you don't know where you are today, you sure as heck can't decide where you want to be tomorrow.

This book provides a way out of the anguish that companies like I described above are in. Below are the chapters the book contains-

Chapter 1. Unleashing Talent
Chapter 2. Trust and Ownership
Chapter 3. Building Trust and Ownership
Chapter 4. Trust Tools
Chapter 5. Ownership Tools
Chapter 6. Business Alignment Tools
Chapter 7. Dealing Honestly with Ambiguity
Chapter 8. Tools to Deal with Walls
Chapter 9. Metrics
Chapter 10. Case Study
Appendix A. Quick Reference Guide
Appendix B. Trust-Ownership Assessment
Appendix C. Collaboration Process
Appendix D. Collaborating with Non-Collaborators Worksheet
Appendix E. What to Do about Metrics

I love that this book pushes for transparency by accepting and dealing with the fact that we work in an environment of low certainty and high ambiguity. One of the best things about this book is that when there is an Elephant in the room, they don't just point at it and say "there is an Elephant in the room", they walk you over to it and let it trunk slap you a few times.

My daughter had a habit of striking up a conversation in the middle of her teacher's lectures. She was constantly bringing home notes from the teacher throughout second-grade asking for our help making her understand she cannot speak while the teacher is speaking.

Third grade rolled around and we were at the point of having our first parent teacher conference. I had received no notes asking to help my daughter not to hold mini fashion classes while the teacher was lecturing. Amazingly the meeting went great. My daughter was being a model student. This repeated during the second teacher conference of the year.

Then the third one came. I went in and sat down smiled and said hello to her teacher. Right before my eyes I saw her smile fade away into a twisted sick looking grin, her eyes bulged, and I swear I thought I saw her hair fly out from her skull as she screamed "You have got to do some thing about your daughter!!! I need help!!!". My first thought was,you certainly do need 'help'.

She proceeded to rant on and on about how my daughter won't stop talking in class, and just ignores the teacher when she asks her to stop, along with a dozen other things. I asked her why she told me she was doing great and was well behaved in the first two meetings. She said she is a believer in tolerance. I didn't get it. She explained that she believes every child given enough time will choose to do the right thing and the teacher of today tolerates misbehavior until the child changes.

I won't tell you what I wanted to say, but I did say "well apparently that's not going to good for you. Can I ask why the teacher of today thinks their only role is to regurgitate the curriculum and not teach children the difference between right and wrong behavior? " I thanked her for letting my daughter get all her little girl chatter, and back talking out during class, because of that, she had been great at home.

This teacher attempted this year after year, and year after year it failed. That is a perfect example of complete trust in someone who just didn't have the capacity to understand how to take ownership of their actions. I see this all time. Leaders trusting the same people over and over again and those people failing to deliver over and over again. So what happened. The same thing that happens at companies, complete 100% command and control kicked in. My daughter couldn't sneeze the rest of the year without being written up.

It all boils down to, change, hope, and insanity. You hope the next time will be different, but you refuse to change anything in your environment. It is called insanity. As Einstein put it- insanity is doing the same thing over and over again and expecting different results.

One of the things I would have like to see is a little more dealing with the team member that refuses to update their skill set in order to be more effective, and have no interest in taking ownership. The book touches on helping members decide to leave, and asking them to leave, but that is not an option for these individuals. They themselves, along with their managers, and the majority of the company believe they've paid their dues. Most have over 25 years of service and are headed towards the day they can start using their pension.

This can be a very big problem in companies that have a great retention rate. Many of the company's heroes from the mainframe days are still occupying seats with their same skill sets. Some have moved on, retired, or have been given a new roles in the company.

In one of the environments I am referring to the company has scattered the remaining mainframe era individuals throughout the IT teams. The issue is, those that don't update their skills are hurting their team. They are counted as a full resource, but only provide a fraction of what the other team members provide.

The worst part of this situation is that these legacy team members are not lazy people, and could be used in other areas of the company. Why aren't they? The command and control environment doesn't ask what they would like to do, it doesn't care. Upper management decides where resources are needed and moves people there. This is really blatant in government. If they are in IT, they must stay in IT, although you can tell they are sick of IT.

In some even worse cases the legacy employees have been made managers. The company has been 100% command and control since their inception 100 or so years ago, and they see no reason to change that. Management is therefore trained with in-house made training, which is all geared towards maintaining a command and control environment. This book would be labeled heresy in this environment. If caught with it, you may be burned t the stake. It is an endless cycle of promoting people to the point of incompetency, which adds a little more dysfunction to the environment with every round of promotions.

Because the world says everybody must go Agile and Lean, they attempted to implement Agile and Lean practices. How did that go you ask?
Bill Gates said, "The first rule of any technology used in a business is that automation applied to an efficient operation will magnify the efficiency. The second is that automation applied to an inefficient operation will magnify the inefficiency."
The same can be said about Agile and Lean practices:
The first rule of any software process used in development is that Agile and Lean practices applied to an efficient development team will magnify the efficiency. The second is that Agile and Lean practices applied to an inefficient development team will magnify the inefficiency.
I won't ding the book for not covering the team issue I brought up above, because the book didn't try to cover it. It was just something I would liked to have seen. There are many more difficult situations I could bring up that I would like to see covered, but this book is based on the author's real life experiences. If they have not had to deal with such situations, it is not something they would cover.

That is something I really like about this book. It is all based on experiences. I have said before that there are way too many books, and way too much information available on agile these days. I'll be the first to admit, that every time I see an agile book coming out the first thing I think is how could they possibly still be milking agile. I also must admit, that many of the new books coming out on agile are now reflective of experience, and not based entirely on theory. That was what you used to find in the agile library, all theory and no experience. Now with books like this one, we find great advice based on real world experience.

Trusting people is hard. I always proof of concept a new development team. What choice do I have, especially today when the technology changes with every new project. Every time it has paid off in dividends. Someone always joins the team in the wrong role. I have had several four person teams where one or two of the team members had to be assigned menial tasks, or if possible replaced. This not only works to circumvent disastrous code and a lot of wasted time, it also helps you identify the members you can trust with technical decisions. You may not have time to get fully briefed on an issue before a decision needs to be made. Having a second or third technical expert identified for the team really helps.

There is a big difference between leading and managing. If you want to succeed as a leader, this book is a great read. It is packed with advise on building trust and helping teams take ownership. It also has a ton of advise on aligning with the business and showing you what metrics are the most important in a project. They show you why "hitting a date" is from the land of the lost, and delivering a quality product that pleases the customer is when the project is done.

The book also has 5 appendices packed with tools to help you assess your current situation and then move towards an environment of trust and ownership.

I thoroughly enjoyed reading this book. The authors all have great writing styles and reading it goes really fast. I have about 15 tabs stuck in it, and I will be keeping it close. This is the kind of wisdom I like reminding myself of periodically.

If you buy only buy one agile, management, or leadership book this year, make it this one!!!! If you plan on buying more than one agile, management, or leadership book this year, make this your first one!!!!



The Agile Culture: Leading through Trust and Ownership

The Agile Culture: Leading through Trust and Ownership

posted by tadanderson at 11:58 AM 0 comments

Monday, May 05, 2014

Sparx Enterprise Architect 11 Released - For Software, Business, and Systems

For years now, Sparx Enterprise Architect has been the one software package I insist having on all my projects. It doesn't matter if the projects are mobile iOS and Android, .NET, ASP.NET, ASP.NET Web API, Enterprise or Software Architecture modeling, SPEM (Software Process Engineering Metamodel) modelling, or a SPLE (Software Product Line Engineering) project, Sparx Enterprise Architect is my go to tool.

To see examples of some of the things listed above, done with Sparx Enterprise Architect, you can visit here. You can also find some examples here on the Sparx Community Site.

Enterprise Architect 11 - For Software, Business, and Systems (info below is from the Sparx site)

Sparx Systems is proud to announce the release of Enterprise Architect 11, which includes hundreds of new enhancements and technologies.

For Software:
Enhanced tools for software development, reporting and simulation for the Software Engineer

For Business:
Take on the role of a Business Analyst or a Requirements Engineer as we introduce Enterprise Architect 11

For Systems:
For realtime and embedded Systems Engineers and Designers, Enterprise Architect is packed full of enhancements and features for you!


Release Highlights:

  • Software Business Systems: Documentation, Graphs, and Reports
  • Team Based Modeling: Communication and Security
  • New / Enhanced Profiles: NIEM, GML, ArchiMate and more
  • Enhanced UI: Team Review, Relationship Matrix, Element Browser
  • Coding and Scripting: Profiling, Grammars, & Roundtripping
  • Simulation: Objects, Actions, Parameters, & API
  • Execution Analysis: Function Line Reports, 64-bit, and more
  • New Deployment Options: Cloud, RAS, OSLC, Firebird
  • Diagramming: Tiles, Transparencies, Themes, & Storage

Videos:

Specification ManagerCharts and Dashboards
Enhanced Documentation EA 11 Diagram Theme
Diagram Themes Package Driven Modeling
Kanban Element Discussions
Element Browser State Machine Code Generation
Simulation Function Line Reporting
Visual Execution Analysis Cloud Services
Reusable Asset Service OSLC

posted by tadanderson at 7:57 PM 0 comments

Sunday, May 04, 2014

Learning iOS Development: A Hands-on Guide to the Fundamentals of iOS Programming Book Review

This book is a good place to start iOS development, but I would recommend already knowing Objective-C.

Chapter 2, Objective-C Boot Camp, gives a refresher on Objective-C, but you'll need more than what it provides. A great place to get started is with Objective-C Programming: The Big Nerd Ranch Guide (2nd Edition). After that Effective Objective-C 2.0: 52 Specific Ways to Improve Your iOS and OS X Programs is a great read!!

I have listed the chapters of the book below.

1. Hello, iOS SDK
2. Objective-C Boot Camp
3. Introducing Storyboards
4. Auto Layout
5. Localization
6. Scrolling
7. Navigation Controllers I: Hierarchies and Tabs
8. Table Views I: The Basics
9. Introducing Core Data
10. Table Views II: Advanced Topics
11. Navigation Controllers II: Split View and the iPad
12. Touch Basics
13. Introducing Blocks
14. Instruments and Debugging
15. Deploying Applications

This book is more of a cover to cover read, or at least a chapter at a time read. The topics are covered in detail, but in a verbose style. Not in a negative way. The book says right on the cover that it is a "Hands-on Guide". The authors list each step they want you to make and the explain the reasons for making them .The authors have a great writing style which their very thorough approach easy to read. Not all authors can pull that off.

The authors walk you through a lot of hands-on exercises. The topics usually stay at a higher level. For example the chapter on storyboards mentions that in complex applications multiple storyboards can be used, but does not cover the topic because it is beyond the scope of the book. They do however cover the higher level features in detail.

The book primarily uses one project throughout the book. For each chapter the code includes a version of the code at the start of a chapter, at the end of a chapter, answers to challenges that are made at the end of the chapters, and the assets needed such at images and icons.

One really nice aspect of the book is that the screenshots and diagrams are in color, however, the typed code is not. That is not really that big of a deal, plus you get all the code to bring up in Xcode.

This book is an iOS 7 and Objective-C 2.0 book, which is nice for a change. There are a lot of books out there that have multiple editions and they contain a lot of legacy info. I feel some of them only contain that info because for the authors to clean it up would require a major effort.

By major effort, I mean re-writing the book. Some of those books still include bashing Storyboards and code that does not use ARC. Although I agree you should understand that a mix of multiple Storyboards, NIBs, and coded UIs will be used on large projects, and you should know how to deal with legacy code, it is nice just to have a book that focuses on iOS 7.

All in all I highly recommend this book for anyone who wants to learn iOS 7 fundamentals.

Learning iOS Development: A Hands-on Guide to the Fundamentals of iOS Programming

Learning iOS Development: A Hands-on Guide to the Fundamentals of iOS Programming

posted by tadanderson at 12:16 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