Grigori Melnik: Thoughts on Agile Software Engineering and Beyond

  • Generics support in Unity

    Community! As you know we are currently working on EntLib4.1/Unity1.2. We’ve already addressed a number of stories, including one of the most requested features of Unity – improved support for generics. In particular, we now fully support generic decorator chains.

    Check out the most recent drop on Codeplex under Source Code.

    You can also expect us to do drops regularly at the end of each bi-weekly iteration. Please continue sending your feedback to us.

  • Agile2008 selected sessions online


    You wish you could have made it to Agile2008 in Toronto 2 weeks ago? A small number of sessions is now available online.


    18 sessions have been recorded, 3 of which are already made available:

           Natural Laws of Software Development - Deriving Agile Practices by Ron Jeffries, Chet Hendrickson

           "We suck less!" Isn't mediocrity great? by David Douglas, Robin Dymond

           New Car Development in Toyota by Kenji Hiranbe

     

    Another 15 will be gradually published at http://www.infoq.com/agile2008/:

           Future Directions for Agile by David Anderson

           10 ways to screw up with Scrum and XP by Henrik Kniberg

           Agile and Beyond - The power of aspirational teams! by Tim Mackinnon

           Agile in Practice: What is ACTUALLY Going On Out There by Scott Ambler

           Prioritizing Your Product Backlog by Mike Cohn

           Manager's Introduction to Test-Driven Development by Dave Nicolette, Karl Scotland

           When Working Software Is Not Enough: A Story of Project Failure by Mitch Lacey

           Extremely Short Iterations as a Catalyst for Effective Prioritization of Work by Mishkin Berteig

           Fostering Software Craftsmanship in a Corporate Setting by Scott Dillman

           Measuring Agile in the Enterprise: 5 Success Factors for Large-Scale Agile Adoption by Michael Mah

           Colossal, Scattered, and Chaotic (Planning with a Large Distributed Team by Wes Williams, Mike Stout

           Now that the team's head is in the game, how do you get their heart in? by Jim McCarthy

           Technical lessons learned turning the agile dials to eleven! by Craig Smith, Paul King

           Introduction to Lean Software Development by Alan Shalloway

           Fully Distributed Scrum: The Secret Sauce for Hyperproductive Outsourced Development Teams by Jeff Sutherland


    In addition, Alan Cooper’s 
    "The Wisdom of Experience" keynote is available as a slide deck with speaker’s notes at http://www.cooper.com/journal/agile2008/

    Note, InfoQ also hosts videos of several excellent sessions from the previous Agile2007 conference, including:

           The Role of Leadership in Software Development by Mary Poppendieck

           Succeeding With Agile: A Guide To Transitioning by Mike Cohn

           Agile in the Waterfall Enterprise by Michele Sliger

           The Agile Enterprise: Real World Experience in Creating Agile Companies by Jeff Sutherland

    All experience reports and research papers will be available online via IEEEExplore. Search for 'Agile' under 'Conference Proceedings'.

     

  • Acceptance Test Engineering guide - How to Decide if Software is Ready for You or Your Customer - Community Preview 2 released

    On Monday, we  released our CTP2 on Codeplex: http://codeplex.com/TestingGuidance.

    You’ll see it now includes the consumption model and also some recommendations on how to read the guide. There are three parts. Part I. Narratives and Models - this is a short section that is meant to be read end-to-end. This is where we define readiness assessment and acceptance testing and introduce several models that help conceptualize software acceptance. Among other things we discuss decision making process, risk evaluation, the doneness model and its variants for agile and Tayloristic processes. Part II consists of what we refer to as “Thumbnails”. Those are the short descriptions of various useful practices that also provide information on their applicability, risks addressed, implementation options and additional resources. The Thumbnails are complemented by the actual samples  (Part III) that we’ve produced on a sample system (Global Bank). Both thumbnails and samples are meant to be used as references and in any order. 

    You’ll notice there are still a number of empty sections. If you see an empty section, assume we will fill in the section before we complete the book.

    Please provide it by posting a reply to the corresponding thread under Discussions on codeplex or as a reply to this blog post.

    Happy reading! We look forward to your feedback!
  • EntLib4.1 kickoff

    On July 31 we have kicked off the EntLib4.1 and Unity 1.2 project. This is a minor service release. In it, we address several bugs and enhancements, and provide the following features:

    -         Collections support in the Unity Application Block (Unity dependency injection container)

    -         Improved support for generics in Unity

    -         Interception mechanism in Unity (including integration with the Policy Injection Application Block)

    -         Improved type picker of the config tool (this one needed a face lift for a long time)

    -         Debugging visualizer (to allow for easy navigation of mappings, corresponding lifetime policies as well as container extensions).

    We also plan on doing rigorous testing on 64-bit machines. I’ll post a complete backlog on Codeplex soon.

    We intend to release regular community previews at the end of each iteration (biweekly).

    I am excited to continue working with several people from the previous release (Chris, Fernando, Vijaya) and also welcome new team members: Erik and Dennis. Alex, Hanz, and Carlos take on the roles of consultants. This is an amazing team! At the end of the first day we already had two user stories done-done.

    Codeplex discussions remain the primary venue for posting your feedback. Keep it coming.

  • Webcasts demos

    The demo from the Enterprise Library 4.0 webcast we did yesterday is posted on Codeplex.

    Now can also find the demos from the webcasts on Unity here.

  • Do you have testing problems?

    In our quest to produce actionable acceptance testing guidance, we are looking for hard-to-test scenarios from real world projects so that we could test our guide against them. We would appreciate if you shared your testing problems with us.

    For example, you may find testing the logics that generates binary data (like image generation, voice synthesis) hard.

    Also, feel free to tell us how you solved them if you did.

    Link to survey.

     

  • Webcasts on EntLib4 and Unity

    We are planning three webcasts on EntLib4 and Unity. Pencil in the tentative dates:

    §  Taking advantage of Microsoft Enterprise Library 4.0 for Visual Studio 2008 (Level 200 – Intro)

    July 10, 13:00-14:30pm Pacific

    Register

    §  Introduction to dependency injection with Unity (Level 200 – Intro)

    July 11, 12:00-13:00 Pacific

    Register

    §  Extending the Unity dependency injection container (Level 400 – Advanced)

    July 24, 13:00-14:30 Pacific

    Register

     

    We’ll be doing lots of demos of the goodness in EntLib and Unity. I’ll post the links to the registration site as soon as they become available on MS Events.

     

    Cheers,

    Grigori

  • Upcoming conferences - where I'll be (May - Oct 2008)

    • Tech-Ed 2008 Developers, June 2-6, Orlando, FL. I’ll be giving a talk on the Enterprise Library (DVP02-TLC). I’ll be also hanging out in the exhibition areas (mainly, Process & Project Management (DVP- VSTS 2008)).
    • CAST 2008 , July 14-17, Toronto, ON. I look forward to good interaction with testing experts and thought leaders from around the world.
    • Microsoft Product Fair, July 22-23, Redmond, WA.
    • TechReady7, July 28-Aug 1, Seattle, WA. I’ll do a couple of talks on the Enterprise Library and agility.
    • Agile 2008, Aug 4-8, Toronto, ON – the major world conference on agile software engineering. Mary Poppendieck and I are program-charing the conference.
    • STARWest 2008, Sep 29- Oct 3, Anaheim, CA. Jon Bach and I will give a talk on Acceptable Acceptance Testing, telling the tale of our team producing the guide on acceptance testing and dogfooding our own recommendations.
    • PNSQC2008, Oct 13-15, Portland, OR. We have a paper "Acceptance Testing: a love story in two acts". No Shakesperian-level drama, but some exciting stuff for sure.
    • PDC 2008, Oct 26-30, Los Angeles, CA. Together with Mary Poppendieck and other colleagues from p&p, we’ll be presenting the Agile Perspectives pre-conference event.

    If you are planning on attending any of these conferences, please come by and say hello. I would love to hear your stories of using or reasons for not using the Enterprise Library, Unity, other p&p assets. I would also be glad to chat with you about our upcoming guidance on Acceptance Test Engineering and hear your experiences, lessons learnt, and suggestions.

    Also, I talk to user groups regularly. If you are from the city I am visiting (or nearby) and would like me to give a talk to your user group (agile, .NET, software testing), feel free to ping me.

  • What does "done" mean to you?

    We have posted a short survey on the practices of acceptance testing that I would like to invite you to answer. Your thoughtful responses will help us focus the guide on issues that matter to you. Your input is critical.

    If you feel particularly strongly about any topic/practice/issue in acceptance testing and would like to share a story, technique, pain points, please provide your contact address so that we could talk to you. Otherwise, the survey is anonymous.

    Feel free to forward this invite to others.

  • Where did the Application Block Software Factory go?

    As I mentioned in the announcement of the Enterprise Library 4, two pieces were removed from the release: Application Block Software Factory and Strong-Naming Guidance Package. These are made available as a separate download on EntLibContrib. Here’s the direct link. Both require GAX.

  • Unity refresh (v1.1)

    In addition to the release of the Enterprise Library 4.0, the patterns & practices team is happy to announce the release of the Unity dependency injection container v1.1.

    Quick Links:

                     MSDN site: http://msdn.microsoft.com/unity

                     Community Forum: http://codeplex.com/unity

                     Community Extensions: http://codeplex.com/unitycontributions

     

    What’s New in Unity 1.1?

                     Remove all obsolete ObjectBuilder code;

                     Fix the bug: lifetime managers with open generic types;

                     Fix the bug: RegisterType was overriding RegisterInstance;

                     Performance improvement when resolving singletons;

                     Made some internal classes public to make it easier to write certain type of extensions (the ones that need to customize how the dependencies are resolved;

                     Improved error messages when value resolution fails.

    What’s NOT in Unity yet?

                     Interception mechanism is not implemented yet; it is on top of our Unity backlog though;

                     Policy Injection Application Block can still be used if AOP functionality is needed;

                     No tool support for DI configuration.

     As always, your feedback is invited. Please post your stories, questions, screams on Codeplex. We are listening!

    Cheers,
    Grigori

     

  • Enterprise Library 4.0 for Visual Studio 2008 released!

    Friends, I am extremely excited to announce the release of the Enterprise Library 4.0 for Visual Studio 2008. Congratulations to the team!

    Quick Links:

                     MSDN site: http://msdn.microsoft.com/entlib

                     Community Forum: http://go.microsoft.com/fwlink/?LinkID=119312

                     Community Extensions: http://codeplex.com/entlibcontrib

     

    What is Enterprise Library?

    Enterprise Library is a collection of reusable software components (application blocks) designed to assist software developers with common enterprise development challenges (such as logging, validation, caching, exception handling, and many others). Application blocks are a type of guidance encapsulating Microsoft recommended development practices; they are provided as source code plus documentation that can be used "as is," extended, or modified by developers to use on complex, enterprise-level line-of-business development projects.

    Goals for Enterprise Library

    Enterprise Library is a collection of application blocks intended for use by developers who build complex, enterprise-level applications. Enterprise Library is used when building applications that are typically to be deployed widely and to interoperate with other applications and systems. In addition, they generally have strict security, reliability, and performance requirements. The goals of Enterprise Library are the following:

    Consistency. All Enterprise Library application blocks feature consistent design patterns and implementation approaches.

    Extensibility. All application blocks include defined extensibility points that allow developers to customize the behavior of the application blocks by adding their own code.

    Ease of use. Enterprise Library offers numerous usability improvements, including a graphical configuration tool, a simpler installation procedure, and clearer and more complete documentation and samples.

    Integration. Enterprise Library application blocks are designed to work well together or individually.

    What’s New in v4.0?

    This release of Enterprise Library includes the following:

                     Integration with the Unity Application Block

                     Windows Management Instrumentation (WMI) 2.0 support and improved instrumentation

                     Performance improvements (particularly, in the Logging Application Block)

                     Pluggable Cache Managers

                     Visual Studio 2008 support

                     Bug fixes

    Note: existing public APIs (v3.1) are still supported.

    The Application Block Software Factory and the Strong Naming Guidance Package are not included in this release but are available as a separate download. Thus, there is no longer a dependency on Guidance Automation Extensions (GAX).

    For the detailed list of all changes, see About This Release of Enterprise Library.

    Enterprise Library by Numbers:

    2003

    Year when the first application block was released

    2005

    Year when v1 of Enterprise library was released.

    1,290,000

    Total number of downloads of Enterprise Library since the first release.

    »470,000

    Total number of visits to the community site (since Dec 2006 when the Codeplex site was launched)

    »1,600

    Number of discussion threads on the community site

    54%

    NPS (Net Promoter Score)

    6

    Number of Enterprise Library releases (v1.0, v1.1, v2.0, v3.0, v3.1, v4.0)

    9

    Number of Application blocks in Enterprise Library 4.0

    19

    Number of weekly iterations to build Enterprise Library 4.0

    401

    Number of interim builds of Enterprise Library 4.0

    »900

    Number of pages of documentation in V4.0

    »8,000

    Number of automated tests cases in V4.0

    »100,000