August book review: Toyota Talent

Jeffrey Liker and David Meier
Toyota Talent: Developing Your People The Toyota Way

I am leading a product development team at a financial organization. One of my objectives is to create an environment supporting and motivating team members to learn all jobs within the team and continuously improve our work methods. This may not be an easy goal to achieve, but I see a huge value in having team members capable of performing multiple jobs and willing to assume different roles and responsibilities.  

While I was exploring ideas on how to organize training and skill development for our employees, I came across Jeffrey Liker's and David Meier's book describing an approach to training used by Toyota. At Toyota, managers and team leaders are responsible for establishing a teaching environment within their teams. They create development plans for their team members, work closely with the trainers to evaluate the progress and skill level of each individual, and keep an eye on the overall performance indicators.

Jeffrey and David provide excellent ideas on how to identify critical knowledge, analyze and standardize work methods, break down jobs into small pieces for teaching, run training sessions, and follow up to verify the results. Even though the approach described in the book is targeted towards manufacturing, I found it to be applicable (with little adaptation) to product development and engineering. 

Happy reading!

July book review: Agile Estimating and Planning

Mike Cohn
Agile Estimating and Planning

Mike Cohn is an Agile Alliance co-founder, Information Technology executive, and the author of two excellent books: "User Stories Applied" and "Agile Estimating and Planning". His first book became de facto standard for creating user stories. His second book is often described as one of the best practical guides to estimating and planning agile projects. I really like and recommend both of Mike's books.

Estimating and Planning are necessary non-value adding activities on a software project. They are non-value adding because they do not add a direct value to the final product as perceived by the customer. They are necessary because the consequences of not doing estimating and planning are dire: we would end up with no data to support any quality decision-making process on the project. When is the project going to be done? What can we have completed by a certain date? Should we release now or shall we wait another month and release with more features?

You could argue that during estimation we analyze and evolve our requirements, which may be considered a value adding activity. I would agree with you. The trick is to make this process fast and lean by doing just enough analysis and eliminating all unnecessary wastes. You will need to figure out what works best for you and your team, but if you are wondering where to start, start with the "Agile Planning and Estimating" book. You will find simple, pragmatic, logical, common-sense methods and techniques to make your projects successful.

Happy reading!

June book review: The Secrets of Consulting

Gerald M. Weinberg
The Secrets of Consulting: A guide to giving and getting advice successfully

As a consultant, I find it illuminating and resourceful as it puts rationality and structure around seemingly irrational subject area. As a manager, I find it full of wisdom and wit, but perhaps lacking clear message and specific take-aways. As a reader, I simply find it entertaining. What am I talking about? "The Secrets of Consulting" book by Jerry Weinberg.

Jerry defines consulting as the art of influencing people at their own request. Even this definition alone makes me think hard and deep about my role as a consultant... or as a person who needs consulting help. In a casual conversational manner, Jerry introduces rules and laws helping a consultant become more effective and ultimately more successful at what she/he does.

To give you a taste of what this book is about, I listed a few of my favourite rules and laws below:

  • The Duncan Hines Difference: It tastes better when you add your own egg.
  • Prescott's Cucumber Principle: Cucumbers get more pickled than the brine gets cucumbered.
  • Rhonda's First Revelation: It may look like a crisis, but it's only the end of an illusion.
  • The Harder Law: Once you eliminate your number one problem, you promote number two.
  • Fisher's Fundamental Theorem: The better adapted you are, the less adaptable you tend to be.
  • The Bolden Rule: If you can't fix it, feature it.
  • The Third Law of Consulting: Never forget they paying you by the hour, not by the solution.
  • The Fourth Law of Consulting: If they didn't hire you, don't solve their problem.
  • The Fifth Law of Pricing: If you need the money, don't take the job.
  • The Principle of Least Regret: Set the price so you won't regret it either way.
  • Marvin's First Great Secret: Ninety percent of all illness cures itself - with absolutely no intervention from the doctor. Deal gently with systems that should be able to cure themselves.

For more information about the author, visit Gerald's website. Happy reading!

ReSharper 4.0 is finally released

It is finally here. The long waited ReSharper 4.0 has been released: http://www.jetbrains.com/resharper/.

Since we moved our .NET development to Visual Studio 2008 and .NET 3.5 at the end of last year, we have been using daily builds and betas of ReSharper 4.0. I am happy to see our favourite C# productivity tool released! 

Next OTUG meeting is on Thu, June 26

OTUG usually meets every 3rd Tue of the month. Usually, but not this month... Please, note that there is no OTUG meeting on June 15. Our next meeting is on Thu, June 26. As usual, check http://www.otug.org for more information.

Who: Dale Schumacher
What: Actors Make Better Observers
When: Thursday, June 26, 2008, 5 pm
Where: O'Shaugnessy Science Hall, University of St. Thomas, St. Paul, MN

See you there!

May book review: Product Development for the Lean Enterprise

Welcome again. Here is what I picked for this month's review:

Michael N. Kennedy
Product Development for the Lean Enterprise: Why Toyota's system is four times more productive and how you can implement it.

I first learned about Toyota production and product development around 5 years ago. Their numbers are truly impressive:

  • Toyota is consistently named at the top in owner satisfaction surveys
  • Toyota's  milestone dates are never missed
  • Toyota's engineers and managers achieve incredible 80% of value-added productivity (vs. 20% auto industry average in the US)
What does Toyota do differently from everybody else? How can we apply their principles to IT? Product Development is substantially different from Manufacturing. Which one is a better fit for an IT organization? 

While there is plenty of information on wildly admired Toyota Production System (Lean Manufacturing), there is considerably less data on Lean Product Development (Knowledge-Based Development). In order to better understand how these two systems are different, take a look at the table below:

  Lean Manufacturing Lean Product Development
Cycle Time: Short (minutes, hours) Long (days, weeks)
Core Material: Physical material Knowledge and information
Teams: Smaller, focused Larger, more diverse
Focus: Focus is on executing predefined tasks and automation Focus is on defining new solutions and building knowledge and expertise

In his book, Michael Kennedy introduces the principles of and key elements behind Lean Product Development:

  • Set-Based Concurrent Engineering
  • System Design Leadership
  • Responsibility-Based Planning and Control
  • Expert Engineering Workforce

In an engaging and humorous manner, he explains how these principles can be adapted and implemented in your organization. The book is thought-provoking, sophisticated, and extremely fun to read.  It appeals to my sense of humor and has a plot and engaging characters that no reader will forget. It will keep you occupied until early morning hours... ;-)

Principles of Lean Manufacturing work well for IT maintenance and support. Lean Product Development fits well IT software development teams. If you are a technical or functional leader in an IT organization, this is a must-read book for you!  I am sure you will enjoy it.

Happy reading!

April book review: Project Retrospectives

Welcome again. Thank you for reading my monthly column. Today, we will talk about a classical book on project retrospectives by Norman Kerth.

Norman L. Kerth
Project Retrospectives. A handbook for team reviews.

In my consulting practice, I see many teams working very hard, constantly in a rush trying to save the day, making the most out of every single minute they have... and never having enough time to stop and think about how they perform. Retrospectives provide a formal way for teams to get away from their daily grind and take some time to reflect on their performance, seek an opportunity to learn and get better.

In his book, Norman Kerth does an excellent job guiding readers on how to plan, prepare, and facilitate an effective retrospective on project performance. He describes a very thorough approach to how to prepare for a retrospective in a situation when you are an outsider and do not know the details and history behind the project. He spends quite a bit of time discussing how to make a retrospective safe for all participants and provides valuable methods for extracting related project data and capturing lessons learned.

Norman's approach to retrospectives is a bit heavier than mine. He advocates for 3-4-day preferably off-site residential sessions. I tend to like shorter more frequent meetings ranging anywhere from a couple of hours to a day. In order for shorter more frequent meetings to work, you will need to minimize your project cycle time down to 1-3 months. A retrospective on a 3-year monster will certainly require substantial time and effort.

Remember, the greatest teams are great because they self-reflect and continuously improve.

Happy reading!

Tom Evans speaks at OTUG on April 15, 2008

Who: Tom Evans
What: Business Agility Principles and Architecture: Lessons from the Punch Card Era
When: Tuesday April 15, 2008, 5 pm
Where: 3M Auditorium, University of St. Thomas, St. Paul, MN

You can find more information about the event at http://www.otug.org. See you there!

JavaScript tags cannot be self-closing

I was puzzled today by the following exception coming out of one of our web application: this._form has no properties. The exception occurred even on simple pages that had a form and a Script Manager tag. After troubleshooting the issue, I traced it down to the script tag on the site master page. Apparently, JavaScript tags cannot be self-closing.  

Replacing 

             <script language="javascript" type="text/javascript" src="my.js"/> 

with  

             <script language="javascript" type="text/javascript" src="my.js"></script>  

resolved the issue. Happy coding!

.NET 3.5, WCF, JSON, SSL, and HTTP Error Code 401

We run into an interesting problem today at work while working with JSON WCF Web Services built with Visual Studio 2008 and .NET 3.5.

The web application we are working on is to be released in a couple of weeks. It has been running fine on the test server for a number of iterations now, but today we installed an SSL certificate on this server and configured the application to require secure channel. Suddenly, the web application started to ask us for a username and password...

I looked closer into the logs and noticed the HTTP Error Code 401 (authorization error) coming back from web services when the web application requested our java script proxies. It turns out that in order to allow communication with the services via SSL, you need to configure additional binding configuration. See below our sample service model configuration. Hope it will save you a few hours of troubleshooting. 

<system.serviceModel>
    <behaviors
>
        <endpointBehaviors>
            <
behavior name="jsonBehavior">
                <enableWebScript />
            </
behavior>
        </endpointBehaviors>  

        <
serviceBehaviors>
            <behavior name="myServiceBehavior"
>
                <
serviceMetadata httpGetEnabled="true" httpGetUrl="" />  
                <serviceDebug includeExceptionDetailInFaults="true"
/>
                <serviceThrottling maxConcurrentCalls="100"
                                          maxConcurrentInstances="1000"
                                          maxConcurrentSessions="1000"/>
 
            </behavior
>
        </
serviceBehaviors> 
    </behaviors
>  

    <
bindings> 
        <webHttpBinding
>
            <
binding name="sslBinding"> 
                <security mode="Transport"
/>
            </
binding>
        </webHttpBinding> 
    </
bindings>  

    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"
/>
        <
services> 
            <service behaviorConfiguration="myServiceBehavior"
 
                        name="CourseCatalog"

            
<endpoint contract="CourseCatalog"
                               address=""
                               behaviorConfiguration="jsonBehavior"
                               binding="webHttpBinding"
                               bindingConfiguration="sslBinding"/>
 
                <endpoint contract="IMetadataExchange
                               address="mex
                               binding="mexHttpBinding" />
  
            </service>
 
    </services

</system.serviceModel>

Happy coding!

Welcome to ModelBlog

Thank you for visiting ModelBlog. We hope the time you spend with us will be both entertaining and worth your while. Have fun!

Authors

Search

Archive

Tags