Linkopedia May 2010

Published May 12th, 2010 Under Links | Leave a Comment

Blog: How to make Scrum fail

Blog: New Programming Jargon

Blog: The 9 Capabilities of Communicators

Article: Test Driven Development using Flash Builder 4 and FlexUnit

Article: Common Product Owner Traps

Article: The Busy Developer’s Guide to SQL Server Modeling

Tool: Instant Django is a portable Django development environment for Windows

Tool: theSCRUM is a free solution for teams using Scrum

Tool: Tattletale gets you an overview of your project or a product.

Video: Continuous Integration and the “Cup of Coffee” Test

Video: Using FireBug to Debug JavaScript

Video: Selenium + FitNesse – A QA Multiplier Effect

Find more interesting links on the software development links directory, the software development tools directory, the software development articles directory, the software development blogs aggregator or the software development videos directory.

Ten Articles to Learn More on Test-Driven Development (TDD)

Published May 3rd, 2010 Under Links | Leave a Comment

The software development articles directory has just passed the mark of 2000 articles categorized in its database. Test-Driven Development (TDD) is currently a topic of debate in the software development community, as even the value of unit testing is questioned. Here is my selection of 10 interesting TDD articles that should help you get more knowledge on this topic. I have tried to find items that could apply more specifically to different programming languages. Read more

Growing Object-Oriented Software, Guided by Tests

Published April 23rd, 2010 Under Books | Leave a Comment

Object orientation (OO) is not a trendy concept these days, but it hasn’t certainly lost it values. The purpose of this book is to integrate the development of object oriented software with the test-driven development (TDD) approach, more specifically in Java. It starts with an introduction to TDD and the tools (Junit, jMock2) that will be used. It describes then in detail the TDD process that is then illustrated by a large example. The book ends with more software testing topics like tests smells or tests readability. A final part is dedicated to special aspects of testing like persistence, threads and asynchronous code.

The book could be read from start to end or be used as a reference book. In the preface, the authors say that the book is intended for developers with professional experience and some first knowledge of TDD. It really goes far beyond “toy” examples that you can find in programming learning books. The content is a balanced mix of concepts, examples and diagrams that makes it easy to read. Besides what could be considered “catchy” acronyms (OO+TDD), this book is an excellent reference on how to design and program software (the authors use the nice concept of “growing” software). I will consider it a must for anyone programming in Java, but I will also recommend it to people programming in other languages, as the thinking process could be applied in other contexts and with similar tools.

Reference: “Growing Object-Oriented Software, Guided by Tests”, Steve Freeman, Nat Pryce, Addison-Wesley, 358 pages, ISBN 978-0-321-50362-7

Get more details on this book or buy it on amazon.com
Get more details on this book or buy it on amazon.co.uk

Quotes

“What if software wasn’t “made”, like we make a paper airplane – finish folding it and fly it away? What if, instead, we treated software more like a valuable, productive plant, to be nurtured, pruned, harvested, fertilized, and watered? Traditional farmers know how to keep plants productive for decades or even centuries. How would software development be different if we treated our programs the same way?”

“As John Gall wrote in “The Systems Bible: The Beginner’s Guide to Systems Large and Small”: a complex systems that works is invariably found to have evolved from a simple system that works”.

“Sometimes we find it difficult to write a test for some functionality we want to add to our code. In our experience, this usually means that our design can be improved – perhaps the class is too tightly coupled to its environment or does not have clear responsibilities. When this happens, we first check whether it’s an opportunity to improve our code, before working around the design by making the test more complicated or using more sophisticated tools. We’ve found that the qualities that make an object easy to test also make our code responsive to change.”

Does Size Matter (in Software Development)?

Published March 22nd, 2010 Under Software Development | Leave a Comment

When friends ask me what is the last trend in software development, I answer Lean. This approach is even easier to describe, because you can take examples outside the software industry and the most famous of them is Toyota. The recent problems faced by the Japanese car manufacturer shows that every idea could get difficulties fostering its original values when scaling and software development is no exception to this rule. I know that the Toyota situation is complex and I still believe that they did a nice job creating a special corporate culture, but for the public their image problem is there.

Agile has become “the thing to do” in software development and is now being used as the (marketing) label of every new initiative or tool. As a result, the fate of the original values of Agile Manifesto are to be diluted at best, abused at worst. I believe that the Agile Manifesto signatories were motivated by a sincere goal to give to the people involved in software development projects a better situation at a time when there could be a tendency to consider them as mere procedure performers. However, as the agile ideas spread and became successful, they meet the fact that software development is also a business for software tools vendors, consulting organizations… and media like Methods & Tools. Going from selling toaster to selling agile toaster could be now a mandatory move to be listed in the LeadingAnalystFirm Bermuda Triangle report and the front page of the press. It will however not bring any real benefits to agile or to toasters. A recent trade magazine report and tool vendor press release spoke about “taming the agile beast”. This looks like a strange appreciation of Agile. Are thinking software developers dangerous animals? Does this mean that it is times to dump Mike Cohn and instead hire Siegfried and Roy to lead your projects? As Agile spreads, so are the chances that its initial ideas will be misunderstood… and that the number of failed projects claiming to follow the Agile approach will (strongly?) increase. I add the “claim” part, because some Agilists will reply that “true” Agile project cannot fail, but this would be the topic for another discussion.

Sir Winston Churchill said “democracy is the worst form of government except all the others that have been tried.” The fact that it could be difficult to keep the ideal of approaches that rely strongly on participants’ behavior when you scale them should not prevent us to aim for the best objectives. We have however to be realistic on the real world constraints, adapt to them and recognize that we cannot always reach perfection ;o) On this topic, I recommend the excellent books of Craig Larman and Bas Vodde on scaling lean and agile development. In the introduction of their first volume, they wrote: “Start with a small group of great people and only grow when it really starts to hurt”. I could not give you a better advice. In our software development world, the “too big to fail” motto could easily be replaced by “too big to succeed”.

Agile + Software Testing & Quality in Methods & Tools Spring 2010

Published March 22nd, 2010 Under Methods & Tools | Leave a Comment

Methods & Tools is a free e-magazine for software developers, testers and project managers. Spring 2010 issue has just been published with the following articles:
* Using WatiN to Leverage Common Elements in Web Testing – structure your Web testing efforts
* Five Symptoms of Mechanical Agile- detect agile adoption issues
* Writing Testable Code – testable code is better code
* Model-Based Testing Adds Value – a quicker way to functional testing plans
* Tool: Sonar – monitor code and project quality
* Tool: Express Agile Project Management – a simple tool for Scrum
* Tool: Apache JMeter – for load and functional testing

60 pages of software development knowledge that you can download from http://www.methodsandtools.com/mt/download.php?spring10

« go backkeep looking »