
Agile Craftsmanship Punishment driven development I'm a big fan of agile development. One of the key concepts that I like the most is story point estimation. The best suggestion I ever heard was to estimate the size of your stories in terms of gummy bears (at which point you can come up with possibly one of the best units of progress measurement, gummy bears / iteration), thereby making sure that nobody gets the impression that you're actually quoting any sort of real unit of time. The exact opposite of this is trying to estimate stories in an agile project in terms of hours. All too often, even though these realistically are no more than "ideal hours", they are taken literally by everybody and if a developer doesn't manage to "burn down" 80 hours of development per week, they risk being told to either work harder or estimate better (it's often left ambiguous which solution is preferable), leading to what can possibly best be described as punishment driven development.
Software Craftsmanship So what is software craftsmanship? A better metaphor: In a very simplistic way, we can say that software craftsmanship is a better metaphor for software development than software engineering, as I wrote in a previous post. Software craftsmanship sees software as a craft and compares software developers to the medieval blacksmiths. Wikipedia Definition: is an approach to software development that emphasizes the coding skills of the software developers themselves. I personally don't like too much the Wikipedia's definition. A more personal definition: Software craftsmanship is a long journey to mastery. A software craftsman cares and is proud of his or her work and is extremely professional and pragmatic when it comes to its implementation. The Software Craftsmanship Movement In the manifesto, the essence of the software craftsmanship is capture in its subtitle: Raising the bar. The values of the Software Craftsmanship Movement Not only working software, but also well-crafted software
Inside the Mind of Jeff Bezos Robert Cecil Martin Robert Cecil Martin (born 5 December 1952[1][2]), known colloquially as "Uncle Bob",[3] is an American software consultant and author. Martin has been a software professional since 1970 and an international software consultant since 1990. In 2001, he initiated the meeting of the group that created agile software development from extreme programming techniques.[4] He is also a leading member of the software craftsmanship movement. From 1996 to 1999 he was the editor-in-chief of the C++ Report. Bibliography[edit] Designing Object-Oriented C++ Applications using the Booch Method. See also[edit] References[edit] External links[edit] Agile Manifesto Signatories Personal Sites Talks Clean Coder
10 Mistakes That Software Team Leads Make Roy Os “Ten Mistakes” (as I shall now call it because I’m too lazy to keep typing the whole title), was a talk by Roy Osherove which I went to at Skills Matter. He basically takes us through ten common mistakes he sees team leaders make, and offers some solutions to them. He also looks like Adam Sandler, I kid you not. Adam Sandler Here’s Adam, doing some funny acting, or something. Roy Osherove Here’s Roy delivering a piece to camera… Adam Roy started us off by talking about a number of questions that team leaders might have. How do I convince my team to do XWhat do I do with the bad apple in my team? He said that these were all questions that haunted him for years, and in the rest of the talk he goes on to explain how to answer them. So, we then moved on to the first of the Ten Mistakes… #1 Not Recognising Team Maturity This was a good place to start because much of the talk referred back to the “maturity level” of the team. ChaosLearningSelf-Leading Chaos
Manifesto for Agile Software Development Should You Ship This Code Before Reducing Technical Debt?! Technical debt is usually perceived as a measure of expediency. Source: JulesH, Wikipedia, A control flow graph of a simple function You borrow a little (time) with the intent of paying it back as soon as possible. To quote Ward Cunnigham: Shipping first time code is like going into debt. As is often the case with financial debt, technical debt accrues with compound interest. The Figure below, taken from An Objective Measure of Code Quality by Mark Dixon, answers the question with respect to one important component of technical debt – cyclomatic complexity. To answer the question cited above – Should You Ship This Software Before Reducing Technical Debt?! The economics of defect removal clearly favor early defect removal over late defect removal. If you decide to postpone the release date until the technical debt has been reduced, you can apply yourself to technical debt reduction in a biggest-bang-for-the-buck manner.
Heuristic Outcomes by Ade Oshineye: Software Craftsmanship: More than just a manifesto TL;DR Ill-informed proponents of Software Craftsmanship tend to make the following mistakes:they don't read anything except the manifesto and a smattering of blog posts.they overlook books like Software Craftsmanship, Apprenticeship Patterns (which has dozens of references in the appendix looking at the nature of expertise and the mechanisms for the acquisition, transfer and enhancement of skill ) and The Craftsman.they don't define terms like craft or art so they end up thinking Software Craftsmanship is some code-obsessed mishmash of martial arts and carpentry or plumbing.they focus on how Software Craftsmanship can benefit masters rather than apprentices.they think that signing the manifesto is the most important part of becoming a software craftsman. Sadly Dan's blog post makes the same mistakes. Dan could provide some really valuable insights if he'd take the time to do some background reading. If the manifesto was the only artefact we had then many of his points would be valid.