Sunday, January 31, 2010

Favorite Open Source Software Tools and Services

Just some of the great open source/free software tools I use everyday:

    Wednesday, August 5, 2009

    UniForum Presentation on Java Persistence Layering with Hibernate, Spring, and DBUnit

    On Tuesday, August 4th I gave a presentation to UniForum Chicago about Java Persistence layering with Hibernate, Spring, and DBUnit. Details about the presentation are listed here.

    The presentation was focused on proper laying with Dependency Injection, and the history of Hibernate Data Access Object (DAO) designs.

    The slides and project source code can be downloaded from here.

    Sunday, July 13, 2008

    Introduction to Scrum Presentations

    A presentation that I put to together to give an overview of SCRUM from an official textbook view.

    Introduction To Scrum

    Thursday, May 29, 2008

    Relay Development

    A friend of mine has a good post on relay development that is useful when working with remote teams.

    Relay Development Best Practice

    Thursday, December 13, 2007

    Schema Spy Database DDL Browsing Tool

    Overview

    It provides an HTML view of any database schema DDL. It is an open source Java tool that is run from the command line. The home page is: Schema Spy Home Page

    Setup

    • Download the single jar from the web site
    • Copy in the appropriate Oracle thin driver into the same directory
    • Download Graphviz 2.8 from the Graphviz Archive Site at: Graphviz Archive Download Site. Note the newer Graphviz libraries do not work and have been re-numbered, so you need the 2.8 archive version
    • Install Graphviz
    • Use the following command to run the tool. You can copy this into a batch script.
    echo running Schema Spy
    java -jar schemaSpy_3.1.1.jar -cp ./ojdbc14-10.2.0.2.jar -t orathin -host hostname
    -port 1521 -db dbName -u db_user -p password -ahic -cid -o output_dir -s schema_name

    • The output will be in the "output_dir" directory.

    Tuesday, November 6, 2007

    When to Commit to Source Code Control

    This is a good blog about when to commit. My view is that you should commit every day if possible. This is feasible because your code should always build and have tests, right?

    http://damonpoole.blogspot.com/2005/07/check-in-early-and-check-in-often.html

    Tuesday, October 9, 2007

    Iteration Planning Meeting and Story Writing

    One of the most important (possibly the most important) part of iterative development is the Iteration Planning Meeting (IPM) or Iteration Kick Off. If you do not have a well thought out IPM the whole iteration suffers. The IPM is most significant for the development team, it provides scope and focus where it is needed the most, at the story level. As a guideline, most agile stories should be well tasked out at the end of the IPM and have a 2 - 3 day duration.

    To have an effective Iteration Planning Meeting (IPM) the possible stories that will go into the new iteration need to be well written before the iteration starts from both a business and technical level. This means some time must be devoted to story writing and scoping by the "development" team.
    Some would argue that you scope out the story and tasks during the IPM as a group. That all sounds great, but in reality is does not work. Try to get 4 - 6 developers who might not understand the component or code to estimate and task out story that they have just read or thought about? The estimates and tasks will be of poor quality, which will result in story carry over or dropped scope.
    If all the developers really know the code and completely understand the story then it is possible to get good estimates and tasks during an IPM, but again the developers are reading the story for the first time, you are still going to get lower quality estimates and tasks.

    So, how do you improve this process. Over the last three years and three projects I have found the following to work well at the development team level:
    The day before the next iteration, the development team spends about 1 to 2 hours to scope out the possible stories for the next iteration and updates the story card with a note or attachment providing the following:

    - High level technical approach
    - Required new modules
    - Identity components that require updates
    - Technical Risks
    - List of tasks for the story with initial estimates

    While scoping out the story, business will be engaged as required. The Iteration Planning Manager will be engaged if the story is too big or small and needs to be adjusted.
    This activity is usually time-boxed to a few hours and spread across the team if possible. For example, give each developer one story or have a few developers work on a group of stories. Most importantly, there is NO meeting for this, this is done by the developers with whatever resources they need.
    Once this is done, the IPM would have the following agenda:

    - Bring up a story
    - Developer who scoped it out would give a brief overview of the technical approach and hence the tasks listed.
    - The team decides if the tasks are appropriate and the estimates realistic
    - The team add/deletes/adjusts the tasks as required.

    This approach provides the development team and hence management with a higher level of confidence of the deliverables for the iteration.

    Are there other approaches or ideas that will help?