|
I don't need to be sold on the value of code reviews... and I like to think that the developer reading the white paper knows the benefits, too. (Plus, I've written a few articles on the topic, myself.)
My biggest question however is why are you having to justify their use in the first place? Anyone who has worked as a software developer in a professional capacity will understand and appreciate their benefits without requiring any persuasion.
Alas, some people work in environments where the boss had one idea of "the right way to do things" and the developers have a different perception. Sometimes, you need ammunition to change the boss' mind: the benefits as the manager sees them, not the worker-bee. And that's what I aim to write.
|
|
|
|
|
eschindler wrote: I plan to write a genuinely-useful document that you want to read all the way through. It might be titled, "7 ways to sell the boss on doing code reviews," or something akin to that.
So why not just google some studies and argue from the point of cost effectiveness?
Might note as well that code reviews or any process control measures for that matter are not effective unless management actively supports and enforces it.
|
|
|
|
|
Of course I can look at studies. Heck, I've authored a few of those research reports!
But I would far rather hear from individuals who can explain the situations from their own perspective. There's a vast difference in reading, "Twenty percent indicated that they wanted their manager's support," and "I once had a manager whose refusal to listen brought me to tears, when he...."
I can include data from the research reports without asking for assistance. I've been using search engines since Gopher and Archie were newfangled Internet tools.
...But for the human experience? I need people.
|
|
|
|
|
Background - old(ish) grumpy git who worked in UK Financial Services for far too long. Bolshie, argumentative, pretty good at what I did, didn't entirely trust my peer group.
Scenario - "forced" into "SDLC" (yeah, they named their internal process that )... we all knew what it should be, shame the committee defining the (compulsory) process didn't. It was a disaster waiting to happen, oops, it didn't wait, it happened.
Opportunity - "Volunteers required for training on Peer Review (and how to do it properly)". Me - I'll go for that ... in the back of my mind was sarcasm, mickey-take, etc.
Fact - Training was bl***y good - Takeaway from that = make sure the training is good.
Me - actually this can work, I need to evangelize (exaggerating only a little) ... Takeaway = if the training is good, the grumpy git will get the rest on board
eschindler wrote: What one thing, ONE THING, do you wish the boss (or powers that be) understood about code review? It's not about blame, putting people down, nit-picking. Ok, not "ONE THING" ... rethink .. Chill60 says: It's not there to find faults, it's there to add QUALITY
eschindler wrote: Why did you choose THAT as the one thing to wish for? I guess because in my experiences of the "powers that be", it always boils down to someone (else) to blame instead of focussing on making the process better.
The thing I absolutely LOVED about the training process was the insistence that it needed to be completely objective. There were processes put in place to ensure that objectiveness... including timed meetings. All designed to stop anyone being put on the defensive to be honest. I was told at one point to print out the "document" I was reviewing (it's not just about code) and go "find a palm tree". Ok, it was a spindly little tree next to the smoking shelter, but it worked - get away from distractions (Or ... treat the review with respect!)
eschindler wrote: Nobody is being quoted here. Feel free to include a link to this post (I did say I was a bolshie, grumpy, old git!)
If you need more, just let me know. Can't mention any company names obviously.
Or you could quote me as a "convert to code review"
|
|
|
|
|
We had an Senior Ex-Colleague who came monthly/weekly for support and code review on the First firm I worked.I think it is essential for good software/project to have code reviews if not possible by outside person even peer reviews.So that we can find something useful that the reviewer think good.Also a good opportunity for the developer to learn about strength/weakness on coding.
LK
|
|
|
|
|
As a company, we have committed ourselves to using TFS as a core component of our development environment. At the moment, any automated testing we do is done on the build server and is substantially at a unit test level. I perceive the need to expand this into system testing and therefore deploying onto multiple machines (client, web server, database). To this end, I have started looking at Microsoft Lab Management.
It looks like it has potential, but all the demos I see seem to show a simple build of a single module, deploy and test. Whereas in my company we have multiple teams deploying multiple modules having dependencies between them.
As an example, say a change to a service requires a database change as well. I can get the build of the service to kick off the Lab Management deployment, and I understand that I can add a database deployment script to the Lab Management build but it does not really seemed joined up especially as we start to see Visual Studio SQL Projects that will have their own builds. This is a simple example whereas in real life we may have multiple services and databases that need to be aligned for a complete system deployment.
I suspect I am asking too much of the Lab Management product. Any comments on how you use Lab Management?
All round good guy.
|
|
|
|
|
Hi all,
I am a new member to this site and also new to programming. Recently I have been tasked to develop a new application with a group of developers.
I would like to ask if there is any way where all the programmer can work on the same project hosted on a server. Currently we all develop different section of the project on our own laptop and then we copy and paste to compile on the server one by one.
Is there anyway we all can work on the project hosted on the server at once
Any advise and suggestions will be highly appreciated.
Thanks
|
|
|
|
|
Hello all again, I forgot to mention that we are using VS 2012 and SQL server 2012 for this project. I hope this will be useful.
|
|
|
|
|
|
Why are you posting messages in threads that are long inactive?
|
|
|
|
|
How i know. and who always see date
|
|
|
|
|
Previous suggestion is true regardless but besides that...
Are each of you in fact working on the same 'project' which would be defined as the same code?
Or are each of you working on a different 'project' thus there is no code overlap? For example if each of you is creating a server which interacts with other servers.
Methodology of using the previous suggestion would differ then.
|
|
|
|
|
Thanks Robert and jschell for the reply, I dont think we will have code overlap because even though we are working on the same project but we are all coding different functionality.
For example current we are working on the USER module, and under this module we have the following task to code,
1) add user,
2) change password and etc....
each task is assigned to a programmer and they write their own code. What I want to know if we can all open the same project but work on different codes and compile and test code.
I have just tested this by sharing the portect over the network and all the programmers working on it. Coding works well but when any 1 programmer wants to debug or compile then the other programmers are affected.
Any software that can help all programmers work independently on the same project without affecting others while compiling or debugging.
Thanks
|
|
|
|
|
Sorry Richard, i typed Robert.....typing error.
|
|
|
|
|
eddy_fj wrote: but we are all coding different functionality.
If the parts interact then there will be overlap, just not often.
eddy_fj wrote: each task is assigned to a programmer and they write their own code. What I want to know if we can all open the same project but work on different codes and compile and test code.
Just to be clear that isn't really a source control question.
Presuming you are working in C# and you really want each developer independent then each developer would work in their own assembly.
Code used to interface between assemblies would also be in its own assembly. For example, but not limited to this, you might have an assembly that by design contains only interfaces.
Then you have one project which references each assembly.
Natch everything is checked in.
The only gotcha to above is when someone changes the project, for instance adding yet another assembly, then each other user must refresh to insure that they too do not add another different assembly (merging such cases is possible but messy.)
eddy_fj wrote: I have just tested this by sharing the portect over the network and all the programmers working on it. Coding works well but when any 1 programmer wants to debug or compile then the other programmers are affected.
That isn't going to work.
Each developer has their own copy of the code. When the code they are working on WORKS, then they check it in (doesn't have to be complete but must compile and be functional to some extent.)
Then other developers check out the updated code. The other developers do not need to do this immediately but they should do it fairly often (once/twice a day) to insure that they do not become out of sync with others. However that actually depends on how interdependent modules are.
eddy_fj wrote: without affecting others while compiling or debugging.
Just to make sure it is clear from the above
1. There is source control. All of the developers have access to that.
2. EACH developer extracts the full set of code from the source control
3. EACH developer works on their machine and only their machine.
...a. They compile on their machine
...b. They edit on their machine
...c. They debug on their machine
...d, At some point they decide that some piece of code is ready to be added to source control.
4. Then the developer checks the code into source control.
5. The source control will allow each developer to synchronize with source control and thus get updates WITHOUT overwriting code they are currently working on.
As a suggestion maybe you should by a book specifically for one source control system (probably git) and read it.
|
|
|
|
|
|
Hello,
So you are using visual studio. Which language are you using? I asked this because if you are using C# then by using Partial class concept you people can create seperate files and check it in.
Due to this the implementation of the functionality can be distributed, however it will be bound to the same class at execution time.
Thanks
modified 18-May-15 7:32am.
|
|
|
|
|
Historically, the software libraries (mostly C) developed by my group were accompanied with the PDF datasheet, describing the purpose, theory of operation, some block diagrams and API. That documentation was constructed manually in the MS WORD file. Now, we are transitioning to Doxygen to get rid of manual effort required to extract the comments from the sources and put them into the MS word document. This is fairly easy to do, but the problem I have is to put the remainder of the MS Word (purpose of the library, theory of operation, block diagrams etc) into the same CHM generated by Doxygen.
Due to huge backlog of the custom written documentation (datasheets in MS word), I cannot afford manual operations. So I am looking for the ways for my output Doxygen CHM to contain:
a) Imported MS word theory of operations
b) Generated API documentation
Is there a way to make MS word document to be a part of the Doxygen project?
Is there any way (direct or indirect) to import both the Doxygen API documentation and the MS word into the same CHM automatically?
Did anyone face the same or similar problems and what the experience was?
Appreciate any comments.
|
|
|
|
|
You could just convert the document to HTML. Its not the best practice and will probably lose some of the document markup, layout or comments but it will work…
|
|
|
|
|
I'm looking for opinions and discussion. We're currently evaluating Continuous Integrations tools, and in particular Hudson and CruiseControl.NET. I have a lot of experience already with CCNet having used it for the past few years at my previous two jobs. However, Hudson seems to have really taken off and is getting great reviews.
We use TFS for our source control and build process, so we need to easily integrate with those.
What are people's thoughts? What CI tool do you use and why? All feedback welcome.
"There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult." - C.A.R. Hoare
Home | LinkedIn | Google+ | Twitter
|
|
|
|
|
I started with Hudson, and later changed to Jenkins (which is actually a fork of Hudson; my impression is that more development happens on Jenkins nowadays than on Hudson). They are easy to configure, it has a web interface, there is no need to work with the configuration files directly.
I don't use TFS, hence the process is different. Jenkins polls the subversion repository, checks out new sources, build the products, tests them. I do not know how to integrate that with TFS.
By the way, can't TFS do the UnitTests, copy the artifacts to some other place, etc?
|
|
|
|
|
My understanding was that Jenkins and Hudson were the same product, I didn't realise one was a fork from the other.
With CruiseControl.NET you manually edit the config files, which isn't difficult as there is loads of documentation on how you need to do this.
At this point in time we're simply evaluating if the CI tools that are currently out there. Although we use TFS for our version control, we're still looking at other options. We're re-evaluating our entire build process, and that includes TFS. Moving over to Github is also being considered. At this point in time nothing is being ruled out.
We want to evaluate and consider all the options so we choose the best process and tools that fit the business going forwards.
"There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult." - C.A.R. Hoare
Home | LinkedIn | Google+ | Twitter
|
|
|
|
|
TFS gives you the ability continuously integrate your code. Also, with MS Release Management, you can achieve continuous deployments with TFS. TFS & RM work seamlessly with Visual Studio.
What are your major points of concern / consideration & evaluation?
|
|
|
|
|
One of our major concerns with TFS is that it isn't easy to work with it in a remote deployment where you have remote workers. Some of our development team are co-located and we would prefer to use a version control / build process management system that offers distributed deployment. Hence why we are looking at replacing TFS with Github / Github.
As part of evaluating our toolchain we're also looking into what continuous integration tools fit our requirements. The main contenders are
- CruiseControl.NET
- Jenkins
- TeamCity
Each has its merits. I have personal experience of CruiseControl.NET, whilst one of the other devs has used Jenkins. TeamCity is from the same company that makes Resharper and looks very professional with some excellent features.
Just looking for suggestions, advice etc to help make a decision.
"There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult." - C.A.R. Hoare
Home | LinkedIn | Google+ | Twitter
|
|
|
|
|
TFS has a web interface too. You can check-in your code, create build definitions, trigger your build on check-ins, create custom alerts & notifications, use MS Build or customize your Build process entirely using build process templates, Add unit testing, code coverage, automated testing (Coded UI, etc.) & Kick off a build with Release Management or Octopus Deploy or Jenkins or really any other.
Regards,
Ajay Bhosle
+919920966336
|
|
|
|
|