Best practices
-
I have been working on a VB Web App for the last few months ( pity please ). We have moved from .Net 1.1 to 2.0 and split it into a 3-layer architecture - all good things :) The company has seen the light and is willing to invest in current best practices to create a more robust ( reliable and scalable ) product, and to reduce lifecycle costs. So my question is: What do people use / recommend? We have decided to write unit tests - for the existing code and to enable TDD for future work, but I only know about NUnit and MbUnit and development seems to have stopped on both of these. So what are people using for a unit test framework nowadays? Reasonable costs are acceptable ( so Team System is not )...
---------------------------- Be excellent to each other :)
-
I have been working on a VB Web App for the last few months ( pity please ). We have moved from .Net 1.1 to 2.0 and split it into a 3-layer architecture - all good things :) The company has seen the light and is willing to invest in current best practices to create a more robust ( reliable and scalable ) product, and to reduce lifecycle costs. So my question is: What do people use / recommend? We have decided to write unit tests - for the existing code and to enable TDD for future work, but I only know about NUnit and MbUnit and development seems to have stopped on both of these. So what are people using for a unit test framework nowadays? Reasonable costs are acceptable ( so Team System is not )...
---------------------------- Be excellent to each other :)
I've never understood the appeal of pair programming. I couldn't think of anything more boring than watching someone else code or more annoying than having someone looking over my shoulder.
The evolution of the human genome is too important to be left to chance.
-
I've never understood the appeal of pair programming. I couldn't think of anything more boring than watching someone else code or more annoying than having someone looking over my shoulder.
The evolution of the human genome is too important to be left to chance.
I totally agree, I had to do it a few times myself and it is really boring, and utterly useless if you ask me. If you have to check eachother, I suggest you do codereviews of eachothers work. We did this in the last project and gave me a more pleasant feeling, because I could do my work without being disturbed by questions, while my work was still being checked for correctness and code style.
WM. What about weapons of mass-construction? "You can always try to smash it with a wrench to fix that. It might actually work" - WillemM
-
I've never understood the appeal of pair programming. I couldn't think of anything more boring than watching someone else code or more annoying than having someone looking over my shoulder.
The evolution of the human genome is too important to be left to chance.
Yup. Pair programming is the perfect way to double the cost of software development IMO. What we do instead at our company is code reviews. One developer writes the code, along with the unit tests, and then before it is integrated into the main solution in source control it's passed to another (usually more senior) developer who checks it. Much quicker, easier, less intrusive - and you still get the quality control.
-
I've never understood the appeal of pair programming. I couldn't think of anything more boring than watching someone else code or more annoying than having someone looking over my shoulder.
The evolution of the human genome is too important to be left to chance.
-
I have been working on a VB Web App for the last few months ( pity please ). We have moved from .Net 1.1 to 2.0 and split it into a 3-layer architecture - all good things :) The company has seen the light and is willing to invest in current best practices to create a more robust ( reliable and scalable ) product, and to reduce lifecycle costs. So my question is: What do people use / recommend? We have decided to write unit tests - for the existing code and to enable TDD for future work, but I only know about NUnit and MbUnit and development seems to have stopped on both of these. So what are people using for a unit test framework nowadays? Reasonable costs are acceptable ( so Team System is not )...
---------------------------- Be excellent to each other :)
I can't speak for MbUnit, but a new version of NUnit (2.2.9) was released a couple of weeks ago. We're using it (with tests in Managed C++) to check native code, and so far it's working really well. :)
Anna :rose: Linting the day away :cool: Anna's Place | Tears and Laughter "If mushy peas are the food of the devil, the stotty cake is the frisbee of God"
-
I can't speak for MbUnit, but a new version of NUnit (2.2.9) was released a couple of weeks ago. We're using it (with tests in Managed C++) to check native code, and so far it's working really well. :)
Anna :rose: Linting the day away :cool: Anna's Place | Tears and Laughter "If mushy peas are the food of the devil, the stotty cake is the frisbee of God"
Missed that :doh: Thanks for the heads-up Anna. Does anyone have any war-stories about NUnitAsp?
---------------------------- Be excellent to each other :)
-
I have been working on a VB Web App for the last few months ( pity please ). We have moved from .Net 1.1 to 2.0 and split it into a 3-layer architecture - all good things :) The company has seen the light and is willing to invest in current best practices to create a more robust ( reliable and scalable ) product, and to reduce lifecycle costs. So my question is: What do people use / recommend? We have decided to write unit tests - for the existing code and to enable TDD for future work, but I only know about NUnit and MbUnit and development seems to have stopped on both of these. So what are people using for a unit test framework nowadays? Reasonable costs are acceptable ( so Team System is not )...
---------------------------- Be excellent to each other :)
I used N-unit on my last project and was really impressed with it. I wouldn't advise Pair programming but what I have done before is to get the app design thrashed out by a group. That way everyone goes away with a set of interfaces to work to. The coders on each side of every inteface then know who is going to be providing / consuming that interface and can discuss the finer points later. If you are using UML or similar you need to make sure the documentation gets updated with changes, it's really confusing to pull out a diagram only to find it bears no resemblance to the code you see on the screen. The important thing with a unit testing structure is to get the boundary conditions right. This should all be sorted out in the early design phases. eg for a SQRT function: test -1,0,1E-35,12345678910. If the answers are floats / doubles decide on your allowable tolerance and check the return is within range rather than exact. It has been known for different processors to return very slightly different results, especially if they are using 64 bit under the covers without telling you. Later on, when you need to refactor you need to make sure that all tests pass before you start. I had a few refactoring issues where the test failed before so we assumed it was OK when it failed second time round only to discover that a subtle different bug was responsible for the error second time round. Most of all i would suggest not making too many or too great changes at one step eg. Add N-unit to a class or small group of classes you think will benefit from it and see how it works; Start using UML sequence diagrams for N-tier communications, then introduce different diagrams later; Automate your build process, later automat the unit tests and produce a build reults webpage. Break any changes down into small discreet and manageable steps, implement them in a little way, get used to them, see if you think they work for you and them build on them if they are good. Sorry for the long waffle Russell
-
I've never understood the appeal of pair programming. I couldn't think of anything more boring than watching someone else code or more annoying than having someone looking over my shoulder.
The evolution of the human genome is too important to be left to chance.
It depends on whom you are working with, and what stage of development it is. If it's exploratory/prototyping, it can be quite rewarding. In my main line development however, two is one too much.
-- Verletzen zerfetzen zersetzen zerstören Doch es darf nicht mir gehören Ich muss zerstören
-
I've never understood the appeal of pair programming. I couldn't think of anything more boring than watching someone else code or more annoying than having someone looking over my shoulder.
The evolution of the human genome is too important to be left to chance.
Tim Craig wrote:
I've never understood the appeal of pair programming
The main advantage of pair programming is knowledge transfer. It isn't something that I see happening constantly throughout a project but on an occasional basis. The idea is fairly simple. Someone has been working on part of a project and someone else needs to know what's what in order to integrate their code. The pairing then works on the idea of least qualified implements. The person who needs to know sits at the keyboard while the knowledgable person talks them through. If they hit any stumbling blocks they both work through it together. This means that if the "someone else" has to change part of the original code there are at least two people that know about it and it doesn't come as a surprise to the guy who wrote the code originally. This works fairly well if taken on a case-by-case basis.
Upcoming Scottish Developers events: * Glasgow: Tell us what you want to see in 2007 My: Website | Blog | Photos
-
I've never understood the appeal of pair programming. I couldn't think of anything more boring than watching someone else code or more annoying than having someone looking over my shoulder.
The evolution of the human genome is too important to be left to chance.
Tim Craig wrote:
I've never understood the appeal of pair programming.
It's certainly one of, if not the, most unintuitive parts of agile development/XP!
Kevin
-
I have been working on a VB Web App for the last few months ( pity please ). We have moved from .Net 1.1 to 2.0 and split it into a 3-layer architecture - all good things :) The company has seen the light and is willing to invest in current best practices to create a more robust ( reliable and scalable ) product, and to reduce lifecycle costs. So my question is: What do people use / recommend? We have decided to write unit tests - for the existing code and to enable TDD for future work, but I only know about NUnit and MbUnit and development seems to have stopped on both of these. So what are people using for a unit test framework nowadays? Reasonable costs are acceptable ( so Team System is not )...
---------------------------- Be excellent to each other :)
Nicholas Butler wrote:
I only know about NUnit and MbUnit and development seems to have stopped on both of these.
Not so. Although MbUnit seems to be progressing slowly. I did spot a 2.3 RC2 that's recent though. I've never used MbUnit. Which do you think is better?
Kevin
-
Missed that :doh: Thanks for the heads-up Anna. Does anyone have any war-stories about NUnitAsp?
---------------------------- Be excellent to each other :)
Anytime. I lurk on the TDD Yahoo Group, so I heard about it quicker than most. ;)
Anna :rose: Linting the day away :cool: Anna's Place | Tears and Laughter "If mushy peas are the food of the devil, the stotty cake is the frisbee of God"
-
I have been working on a VB Web App for the last few months ( pity please ). We have moved from .Net 1.1 to 2.0 and split it into a 3-layer architecture - all good things :) The company has seen the light and is willing to invest in current best practices to create a more robust ( reliable and scalable ) product, and to reduce lifecycle costs. So my question is: What do people use / recommend? We have decided to write unit tests - for the existing code and to enable TDD for future work, but I only know about NUnit and MbUnit and development seems to have stopped on both of these. So what are people using for a unit test framework nowadays? Reasonable costs are acceptable ( so Team System is not )...
---------------------------- Be excellent to each other :)
Nicholas Butler wrote:
Reasonable costs are acceptable ( so Team System is not )...
Two alternatives are: CrusiseControl.NET (free) TeamCity (much cheaper than VSTS) http://www.jetbrains.com/teamcity/[^] Had a little experience with the former but not the latter.
Kevin
-
I've never understood the appeal of pair programming. I couldn't think of anything more boring than watching someone else code or more annoying than having someone looking over my shoulder.
The evolution of the human genome is too important to be left to chance.
-
I've never understood the appeal of pair programming. I couldn't think of anything more boring than watching someone else code or more annoying than having someone looking over my shoulder.
The evolution of the human genome is too important to be left to chance.
I think the practice was brought about by Junior programmers looking over the shoulder of Senior programmers. Then they swap positions and let the Junior programmer have go, under the watchful eye of the senior programmer. The probably developed a sucessful app, and it became practice.
-
I've never understood the appeal of pair programming. I couldn't think of anything more boring than watching someone else code or more annoying than having someone looking over my shoulder.
The evolution of the human genome is too important to be left to chance.
I think pair programming would come in handing during debugging, short code bursts and complex code, but for just plain generic coding, I think it would be overkill.
Rocky <>< Latest Code Blog Post: Vista for Web Development, Read this first! Latest Tech Blog Post: USA City Burnt To Death...
-
I've never understood the appeal of pair programming. I couldn't think of anything more boring than watching someone else code or more annoying than having someone looking over my shoulder.
The evolution of the human genome is too important to be left to chance.
For simple programming tasks its a waste imho. But for more challenging applications it can have its advantages.
Todd Smith
-
Tim Craig wrote:
I've never understood the appeal of pair programming
The main advantage of pair programming is knowledge transfer. It isn't something that I see happening constantly throughout a project but on an occasional basis. The idea is fairly simple. Someone has been working on part of a project and someone else needs to know what's what in order to integrate their code. The pairing then works on the idea of least qualified implements. The person who needs to know sits at the keyboard while the knowledgable person talks them through. If they hit any stumbling blocks they both work through it together. This means that if the "someone else" has to change part of the original code there are at least two people that know about it and it doesn't come as a surprise to the guy who wrote the code originally. This works fairly well if taken on a case-by-case basis.
Upcoming Scottish Developers events: * Glasgow: Tell us what you want to see in 2007 My: Website | Blog | Photos
Colin Angus Mackay wrote:
Someone has been working on part of a project and someone else needs to know what's what in order to integrate their code.
I haven't seen pair programming characterized this way. However, if you need to integrate your code with mine, my code should be documented and written so you should be able to understand it. If it isn't, that's the main problem. If you have specific problems or questions as to how to do your integration, come to me and we can discuss it but don't make me sit there for hours watching you fumble with the keyboard. (Assuming you type like most of the programmers I've seen. ;P )
The evolution of the human genome is too important to be left to chance.
-
Do you know any company actually do "pair programming"?? I've seen in my past career many "double programming" in which one developer do two persons job but "pair programming"... no.
Norman Fung
norm wrote:
Do you know any company actually do "pair programming"??
No, I've never seen it actually done. I've only read about it in the trade rags. As I said, it's always seemed like it would be either boring or annoying depending on which side of the keyboard you're on. And if I'm there nodding off, I'm not contributing to the quality. I'm just more than doubling the cost.
The evolution of the human genome is too important to be left to chance.