Arthur Chan wrote:
>> On the other hand, 4 days to resolve 25 simple bugs does not seem so
>> Cheers, Sazima
> Yup, i agree. But the bosses and clients never think so. Or actually,
> they think so, but changed their mind when other things go wrong
> together as the whole process are delayed.
Ah, the joys of encountering reality! When a project starts, the process does not (apparently) matter! You can use code-and-fix, and whip out a great demo.
Then, as the clients start asking for feature requests, each one starts taking a liiiittle longer!
Do you pair program? Use test-driven development?
We don't use Test-driven development, but should be similar to Agile Development. We decide each phase by putting the tasks or previous bugs into bugzilla (ticket system), then start doing it. I think the problem may be somehow created in the design phase since we only use bugzilla but not e.g. UML.
TDD _is_ the design process. It also reduces bugs. Never write the tests "just before integration" because you will miss stuff.
Without TDD, you implement by debugging; by adding code, and noodling around with the running app to see if it works. That's a complete waste of time. TDD tells you if the logic is working, faster, so you can free up more test time.
For the automated tests, we just installed the ZenTest. Before that, we write the test before integration.
ZenTest is just a tool.
And not much Codes reviews too.
That is what pair programming is for. With just two guys, that will be a pain, though!
We lack those UML, and Code Reviews all b'cuz the time. I think there should be trade off for it.
UML is not a process. Just throw in RailRoad (with Graphviz) and the UML is automatic...
Now, is your code DRY? Is it all the same style? Are your models fat and controllers thin? Is any business logic in the view? Are your statements short? Does every name reveal intent? All these details will slow you down...
Our phase is susposed to be 3 days usually including the whole development cycles. But usually we used 4-5 days even with many OTs.
A "phase" is supposed to be a week. Stop doing overtime. But are your User Stories very small? Are they small increments on existing features, such as "take the form you wrote for the Frobs and now add a Delete button".
When you do a User Story, are the programmers pulling for reducing the features? Do you do the minimum possible, get a review from your Onsite Customer, and then make him tell you to add more? _That_ is a review process - letting your boss watch things grow in realtime.
We integrate if we found that changes spread over web pages and before testing. Do you think our integrate process got problems?
By "integrate" do you mean "run all the tests and check in to Subversion if they all pass"? We do that every 1 to 10 minutes.