Posted
2 days
ago
Here comes the next date for the Scrumtisch.
Please NOTE: We start half an hour later at 18:30.
Date: 23rd July 2009
Time: 18:30 (6:30 pm)
Place: Ristorante Di Vino, Grünberger Str. 69, Berlin Friedrichshain
Please let me know if you would like to come.
Have a nice weekend
Marion
Posted
4 days
ago
I want to tell you about the joys of automation today - the joy of having your test run just whenever you save one of your files.
Because this is the thing - you cannot deliver high quality software with your Scrum implementation every month
... [More]
without having great engineering practices. If you don't have them, you can still deliver something every month and know exactly where you stand - but the quality will not be there. This is where practices like Unit Testing and Test Driven Development come in, as they are some of the best ways to improve quality that we as software professionals have found till today.
Unit Testing is all about getting more feedback about the code you are writing faster - this is the core of why it is so spectacularly productivity and quality enhancing.
In essence you open up a conversation with your code where you have
Higher bandwidth than just looking at compiler output, because you write tests that tell you specific data points about your code when they fail. Also with many scripting languages like JavaScript or php for example you tend to get very little useful information from the interpreter to beginn with.
Faster, because tests don't need to click through some UI or navigate a command line interface to test that specific thing you are working on right now.
More input, because it makes sense to run those tests much more often than just compiling the code itself.
This last point however becomes very repetitive very fast - and this is where it makes the most sense to apply the old rule of "Three strikes and you automate".
This is what I want to talk about: tools that run your unit tests each time you save a file.
I can't even beginn to tell you in writing how powerful this is - you really have to try it to see how addictive it is.
Here's how it works:
You instruct your auto test runner where your code lives and how it should run your unit tests
You leave that terminal window open in the background
You hack away in your editor and
Voilá as soon as you save a file your tests get run
This saves you some seconds and brain cells each time you want to run your tests - and of course it also means that you run them even more often which helps again with the feedback cycle.
The mother of all tools for this kind of test automation is of course rubys ZenTest which is so good, because it not only re-runs your tests whenever you change a file, but also really understands the structure of the source, and therefore can for example randomize the order in which your tests are run. This is just great for finding brittle tests that depend on each other. It has other features too, for example allowing you to run just those tests that are affected by a specific change (I have no Idea how they solved the halting problem to do that, but apparently it works very well).
For other languages I havent yet found such an intricate tool yet (I'd love to hear from whoever knows something!) - however there are multiple tools around that just let you run a specific command whenever some file changes in a hierarchy.
Here's some examples:
My coworker Felix Schwarz wrote a python tool that we use internally to develop the Scrum tool Agilo. It is great because you don't have to restart it when new files are added to the project. It is currently hosted on my website
The Pragmatic Programmers have two tools there. First "stakeout", which is written in ObjC using kqueue. It is great because it lets the kernel notify it of file changes which gives the best possible feedback time, but also only runs on Mac OS X. Second "stakeout.rb" is written in Ruby, so it runs everywhere, but its also much simpler and doesn't deal with added or removed files. It runs anywhere though. :)
Then there is atchange.sh by Jeff Haemer which is written in Perl and is even simpler though.
Of course, keep in mind that there are many more uses for this type of program, besides just TDD you can for example use it to automatically rebuild and display a Markdown or LaTeX file each time you save it. [Less]
Posted
5 days
ago
Hi everybody!
A whiteboard and the beloved stickers are an important part of every Daily Standup Meetings or Daily Scrum. But what if the teams are distributed or if the tickets as a part of the project documentation shall be
... [More]
saved?
The new Agilo PRO is addressing these and other issues with the new Scrum Planning Board:
Visual planning by drag and drop tickets
User stories will be stored as a part of the project documentation
History of all tickets (requirements, user stories, tasks, etc.)
Intuitive and easy planning for distributed teams
Printable tickets
Traceable links between tickets and code
You can download and read more on our Agilo Page
We are looking forward to your feedback and wishes
Marion [Less]
Posted
18 days
ago
Hi everybody,
I think you agree, that the presentation of Philippe Kuchten yesterday was great, very informative and interesting. Here are some pictures and the link to the presentation from the Scrumtisch yesterday.
... [More]
Philippe held the presentation at the Orlando Scrum Gathering too. Here you can download the presentation
Comments are very welcome
Marion [Less]
Posted
19 days
ago
Scrum Hit list – 10 good reasons for Scrum
There are many good reasons to work with Scrum. The 10 most important are listed here.
Competitiveness
The requirements of the market change invariably faster and only the ones who are
... [More]
flexible and contemporary can react Time to Market and stay competitive and create themselves a competitive advantage.
Develop what is needed
Scrum allows the incremental development of features. In time the customer receives the first working versions, sees the progress and can if necessary add some new ideas.
Confidence through transparency
Transparency plays a great deal on various levels of Scrum. Because of transparency all the stakeholder are informed where the project is at, it helps discovering weaknesses and it makes the effective teamwork possible, which makes Scum so efficient.
Build Quality in
Testing is an integrative component of Scrum at every sprint. Only if the software is tested and documented it is “ready”. Methods as Continuous Integration are very well applicable for securing the quality of every object from the beginning on.
Recognize risks in time – systematic risk management
Regular releases establish the condition to recognize problems on time and react promptly. There are long-term statements about time factor and product completion possible because of factors as team velocity.
To have the costs under control
The period of a project is usually fixed. The effort and the complexity though are just rough. Scrum allows changes on the specification, includes the customer in the project, creates transparency and therefore it allows a definite cost accounting.
Changes are welcome – calculable change management
Scrum is not afraid of changes. In the contrary, changes can be shown to the Product Owner at any time and can be realized in the following sprint. That way the customer gets the Product he or she desires.
Keep it lean and agile – efficient collaboration and customer satisfaction
Scrum involves all the participants of the project. Communication, collaboration, respect and the understanding, what the customer requires or what the team develops, is the basis for successful projects.
Scrum – perfect for system development also
In opposition to the widespread perspective, Scrum is very good for the development of complex systems and extensive or as the case may be long projects. Especially there the exact planning has got a huge impact and the continuous integration of new functionalities and assures that there won’t be a bad awakening in the end. Many production plants work with lean principles and the software development-pendant Scrum creates an optimal synergy.
Last but not least – Scrum makes fun
Not the assignment of tasks but the collaborative functioning and making decisions as a team is an important part of Scrum. Software development is seen as what it is: A creative and multisided activity that only can work properly when everyone takes responsibility.
Read the whole article [Less]