Here's a great online resource for formatting C# code as HTML. It's perfect for when you need to include code in your blog posts or email.
Scott Bellware has written some recent posts on how agile teams sustain capacity as they mature their process.
The posts can be found on his blog (permalinks and content abstracts below):
Sustaining Capacity in Maturing Agile Software Teams – Part 1: Nothing Fails Like Success
We all know that following an Agile process as it is prescribed will only take us so far, eventually we’ll have to make changes. When we do begin to make changes we need to understand why. The principal reason for changing elements of the process should be to remove constraints that limit the team’s performance. As the teams’s performance increases new constraints will appear that are proportionate to that performance. Without reaction to these appearing constraints, obstructions will occur causing the team to lose its ability to perform at the new levels of expectations. Scott refers to this as entropy.
Sustaining Capacity in Maturing Agile Software Teams – Part 2: Entropy
Talks about some of the natural constraints that come out of software development. For example, design rigidity, which is where a design hasn’t been optimized to easily support change.
Sustaining Capacity in Maturing Agile Software Teams – Part 3: Recognizing Entropy
How to identify entropy and when to act upon it. Acting too early might mean that the team hasn’t enough context to understand the source of the constraints. Quite often constraints appear in code, which is a core means of communication for an agile team.
Sustaining Capacity in Maturing Agile Software Teams – Part 4: Counter Measures
Identifies some of Scott’s counter measures in dealing with constraints. In short, the environment in which Developers work should foster a learning culture that directly supports continuous improvement. With this in place the team will learn to identify constraints, and then how to counter act them. There are also a few suggested technical practices such as writing Soluble Code, Test-Driven Development and Design Improvement.
