Cool Code
Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Amr Elssamadisy on May 15, 2009
Chris Matts, well known in the Agile community for his work in bringing option theory to software development, has been writing about feature injection - a form of business requirements and analysis - in comic-book format on the Agile Journal. Chris's comic-book format is an excellent story-telling technique that makes complex ideas accessible to the reader.
In episode 1 Chris examines how information flows in a typical software development cycle and notes how when defects are found, they interrupt the software development team's progress. So they have to stop some of what they are doing and refocus their work to address the defects. This reduces their capacity to continue adding new features. The information arrives too late, after the software has already been built and therefore the software must be changed. But, by changing when the information arrives, the problem can be avoided.
This leads us to episode 2 where Chris digs in deeper and shows how analysis can be done - and seemingly independent of development - by modeling from examples. He shows how modeling, in turn, can help generate more examples. Feature injection can be done iteratively and how, because we start with the expected output or vision, which is finite, we will not get stuck in analysis paralysis. Analysis is rarely discussed in the Agile story beyond 'write user stories' which is increasingly becoming a visible weak point in Agile. Below is the introductory page from episode 2 that gives you a taste of how this information is presented:
Feature Injection is a significant push towards addressing the very important role of analysis in Agile software development and Chris' comics are a solid introduction to the topic.
You can read the full comics online on Agile Journal: episode 1 and episode 2.
18 agile and lean practices for effective software development governance
Agility at scale, become as agile as you can be
A practical guide to choosing the right agile tools
agility@scale eKit: 10 Principles, Scaling Model, Metrics, Collaboration
Maximize your business-responsiveness with Mingle. Provide your global development team a shared space that adapts to the way they work.
The comic format may be easy to read, but I'm not convinced it makes it easier to understand. Since going to to the seminar at SkillsMatter from Chris (Anthony) last night I've read all five comics twice, and I STILL don't understand what points Chris is trying to communicate - I still don't get what the distinguishing attributes of Feature Injection are.
The idea of using comic drawing is interesting, but the given drawing with caps font is not easy to read and follow..
Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).
Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.
Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.
Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.
2 comments
Watch Thread Reply