I just received a copy of "Release It! Design and Deploy Production-Ready Software" by Michael Nygard. This looks to be yet another winner from the PragmaticProgrammers' Pragmatic Bookshelf. In fact it made #1 on Amazon.com's "Hot New Releases" list for Design Tools and Techniques for the past two weeks.
Actually, this book isn't about what I had originally thought from reading the early descriptions. I thought it was going to be related to build+release+deployment engineering (CM guy that I am :). It's not about that at all. It is about architecture and design for production deployment concerns, such as: hardware/software "fit", availability/reliability, operability, stability, capacity, and maintainability (not just of the code, but of the deployed product at the customer's site).
"Release It!" covers all those things many of us software-only, high-level abtractionists forgot (or worse yet, never learned) about design & architecture for where the rubber meets the road. I need to add it to my reading list!
Sunday, April 29, 2007
Saturday, April 21, 2007
April CM Journal and LDM
The April issue of the CM Journal, and there is a FANTASTIC article in it by Austin Hastings about his Longacre Deployment Management strategy for dealing with database CM. It's long, but well worth the read for the insight into a new way of thinking about and doing CM of a database.
The April CM Basics issue has a companion/predecessor article a Case Study: Enterprise and Database CM the describes the initial problem, motivation and challenges that the LDM approach needed to solve. The LDM article goes into the gory technical details of the solution.
The April CM Basics issue has a companion/predecessor article a Case Study: Enterprise and Database CM the describes the initial problem, motivation and challenges that the LDM approach needed to solve. The LDM article goes into the gory technical details of the solution.
Saturday, April 14, 2007
Agile Development Distilled
Lately I've been spending some time thinking about how to distill Agile development within my company on a single powerpoint slide for a top-level Executive. I keep going back and forth between something that shamelessly steals (and modifies) something used to describe RUP, and something that shamelessly steals (and slightly modifies) something from Dan Rawsthorne.
Dan Rawsthorne writes that the "essence of agility is: iteration, validation, feedback." I think something along those lines is ...
RUP talks about 6 Key Principles For Business-Driven Development:
1. Adapt The Process
2. Balance Stakeholder Priorities
3. Collaborate Across Teams
4. Demonstrate Value Iteratively
5. Elevate The Level Of Abstraction
6. Focus Continuously On Quality
I think an "Agile slant" on that would be:
Of course much of this just seems like Steven Covey’s Seven Habits of Highly Effective People. And maybe that is true.
Other sources and quotes ...
Dan Rawsthorne writes that the "essence of agility is: iteration, validation, feedback." I think something along those lines is ...
Agility comes from rapid feedback & learning in short-cycles using:
- Close Collaboration
- Continuous Validation
- Frequent Iteration
- Dynamic Adaptation
RUP talks about 6 Key Principles For Business-Driven Development:
1. Adapt The Process
2. Balance Stakeholder Priorities
3. Collaborate Across Teams
4. Demonstrate Value Iteratively
5. Elevate The Level Of Abstraction
6. Focus Continuously On Quality
I think an "Agile slant" on that would be:
1. Adapt to Change
2. Prioritize Scope
3. Collaborate Across Teams
4. Demonstrate Value Iteratively
5. Elevate the Level of Automation
6. Continuously Validate Quality
Of course much of this just seems like Steven Covey’s Seven Habits of Highly Effective People. And maybe that is true.
Other sources and quotes ...
Alistair Cockburn writes of Seven Properties of Agile Projects: 1. Frequent Delivery 2. Reflective Improvement 3. Osmotic Communication 4. Personal Safety 5. Focus 6. Easy Access to Expert Users 7. A Technical Environment with Automated Tests, Configuration Management, and Frequent Integration |
David Anderson's Agile Recipe for Success is: Focus on Quality, Reduce Work-in-Progress, Balance Demand against Throughput, Prioritize. He also writes "Trust is the essence of Agile" |
Jim Highsmith adds that: "Agile Organizations don’t just respond to change; they generate it!" |
“Agile development uses feedback to make constant adjustments in a highly collaborative environment." -- Andy Hunt, http://www.sdtimes.com/fullcolumn/column-20060615-01.html |
"Short Cycles and Customer Involvement" -- 3rd eWorkshop on Agile Methods |
"an inclusive, people-centred approach to doing iterative, incremental software development. It uses a combination of technical and social practices to increase collaboration and reduce feedback cycles" -- Steve Hayes, http://pliantalliance.org/?p=31 |
"The essence of Agile evolution is to gradually transform a typically conservative, risky and unattractive activity into a positive and proactive development activity." --Dave Thomas, Agile Evolution, http://www.jot.fm/issues/issue_2006_09/column2 |
See table of "Key Characteristics of Agile" at (Towards an Agile Systems Engineering process) |
See Agile Axioms and Seven Core Practices of Agile Development |
DSDM in a Nutshell |
Getting Real |
My Nutshell definitions of Agile Development |
Why Agility Works |
Scrum Primer |
Agile EVM |
Allan Shalloway's Agile Explained |
Dean Leffingwell with Ryan Martens, Scaling Software Agility, Ch 7 on The Essence of Agile |
Not so Agile aspects of Agile Development |
The Agile-Oriented Paradigm |
More take-offs on Covey's Seven habits are ... Five Habits of Highly Visionary Companies Six Habits of Highly Effective CIOs Seven Habits of Highly Effective Programmers Seven Habits of Highly Effective User Interface Designers Seven Habits of Highly Effective IT Managers The Seven Habits of Effective Iterative Development |
From SurgeWorks (http://www.surgeworks.com/our-methodology) ... In a nutshell, Agile Methodologies are focused on delivering maximum business value in minimal time. There are several different Agile approaches, but all of them focus on a similar set of core practices. They are:
|
Saturday, April 07, 2007
Defining Design Quality
Nice article on Defining Design Quality at InfoQ.com. The article heavily references the work of James Shore, who is currently working on a book with chromatic entitled "The Art of Agility". It has a pretty nice definition of design quality:
This also ties in quite nicely with Agile ideas about "Simple Design" and some earlier blog-postings of mine about Simplicity in Design (and ChangeThis for Simplicity).
"A good software design minimizes the time required to create, modify, and maintain the software while achieving run-time performance."It also references a few other nice articles:
- An Artima interview with Erich Gamma which notes that "Modification and maintenance time are more important than creation time."
- An article by Alistair Cockburn on programming as theory building
This also ties in quite nicely with Agile ideas about "Simple Design" and some earlier blog-postings of mine about Simplicity in Design (and ChangeThis for Simplicity).
Sunday, April 01, 2007
Best Kept Secrets of Code Reviews
The folks over at SmartBear software have written a nice little book entitled The Best Kept Secrets of Code Reviews. It's free if you go over to their webpage and ask for it (you have to fill out a registration form, and it takes a few weeks to arrive, but they havent spammed me at all since I registered with them a few months ago).
This is a pretty good book and it is VERY pragmatic! It is applicable to Agile development too! [You don't have to do Pair-Programming to be Agile! Pairing is part of XP, which is one particular agile method -- several other agile methods do not require it.]
SmartBear also has a pretty neat suite of tools that look to me like they would be REALLY USEFUL for an organization trying to streamline some of its otherwise heavyweight processes for peer-reviews and related quality metrics:
And "No!" they did not ask me to blog or say anything nice about them or their products! I'm simply coming from the perspective of someone in a large organization who has witnessed a lot of homegrown and heavyweight processes and tools for these kinds of things, and don't see too many commercial tools addressing the peer-review aspect of development and trying to make it lighter-weight and better-integrated with version-control and the rest of SCM.
The have some other nice resources too:
Looks like a lot of "good stuff" to me!!!
This is a pretty good book and it is VERY pragmatic! It is applicable to Agile development too! [You don't have to do Pair-Programming to be Agile! Pairing is part of XP, which is one particular agile method -- several other agile methods do not require it.]
SmartBear also has a pretty neat suite of tools that look to me like they would be REALLY USEFUL for an organization trying to streamline some of its otherwise heavyweight processes for peer-reviews and related quality metrics:
- CodeCollaborator - Automation for paperless peer code-reviews
- CodeReports - Continuous source code metrics over time.
- CodePickle - Suspend & resume code changes in local developer sandboxes (implements the PrivateVersions pattern without using version-control branches)
- CodeReviewer - automated peer-to-peer code reviews across remote sites
- CodeHistorian - Data-mining and visualizations for version control systems.
And "No!" they did not ask me to blog or say anything nice about them or their products! I'm simply coming from the perspective of someone in a large organization who has witnessed a lot of homegrown and heavyweight processes and tools for these kinds of things, and don't see too many commercial tools addressing the peer-review aspect of development and trying to make it lighter-weight and better-integrated with version-control and the rest of SCM.
The have some other nice resources too:
- Agile Peer Review: Methods, and Results (Powerpoint Presentation)
- The Case for Peer Code Review
- Brand New Information about Code Reviews
- 11 Best Practices for peer code review
- 2500 Reviews at Cisco® - The Largest Case Study of Code Review, Ever
- Why formal inspections fail
- Team-Building for the Cold, Dark, and Alone
- Compare 5 styles of review
- Pros & Cons of Four Types of Review
- Social effects of peer code review
Looks like a lot of "good stuff" to me!!!
Subscribe to:
Posts (Atom)