Tag Info

Hot answers tagged

16

I think you answered your own question; whilst you'd like to use 1 tool, "a lot" of your colleagues prefer to use something else. Without a 'boss' to decide tooling, the majority rules and you need to go with the preferred tool. Now, there's no reason why you can't try to engage with them in discussion of tooling. You will have to take the initiative and ...


7

There are certain static analysis tools that can help determine "test impact", which can then run the effected tests. But I can't help but feel that you're solving the symptom, not the problem. When I worked in QA, there was one overriding mantra that has helped me as a developer: "don't trust the developer". Even if I could determine "relevant", I wouldn't ...


5

Debugging / TESTING! Unit test the heck out of your backend code. It's usually easier than unit testing frontend code, because the code isn't waiting for arbitrary clicks or keypresses. It's all "this data comes in, this data goes out". Aggressive unit testing will speed you up phenomenally because you don't have to go all the way back to the start to ...


4

I recommend you review the needs and decide on what tools need to be common. For example you can't have some people using svn and others using git when there is a lot of code sharing. However when it comes to editors, differences may be ok. The time, cost and motivation for people to switch tools that are essentially about preferences is often not worth ...


4

Every project needs some kind of central leadership to call the shots and make decisions like that. In a company, this is usually the project leader appointed by management. In a large open source community, the leadership is often some kind of meritocratic community process where every participant can make suggestions and an expert group votes on them. ...


3

I think you'll find all SCMs are roughly the same, though you could consider Visual Sourcesafe as an esoteric outlier :-) Nearly all work on diff deltas between commits, SVN for example has the same kind of diff+patch approach darcs does, only it doesn't try to pull in more revision history than you ask it to when merging (I'm not sure if Darcs trying to ...


2

I hate when someone introduces new tool in hope in fixing some problem without actually discussing this with the developers themselves. So before you start implementing such a tool or forcing developers to use it, make sure they are aware of problems the tool is trying to solve and even better, make them agree that the tool is best way to solve said problem. ...


2

Fossil and Veracity are two VCSs that are not just VCSs, they are full project management systems. In addition to VCS functionality, they also include bug tracking and documentation, among other things. Veracity specifically is based around the idea that there are two general "shapes" of data in project management: "file shape" (a tree of unstructured, ...


2

Image-based systems such as most Smalltalks, LISPs, but also the Intentional Domain Workbench and similar tools have VCSs that aren't based on text. In those systems, programs aren't text files, they are semantic graphs of rich objects. In image-based systems, "programming" actually means "mutating the live running program while it is executing". Their VCSs ...


2

I suspect most test frameworks include test runtimes with their results. In particular, if you're using Visual Studio's built-in testing tool, the output grid has an optional Duration column. Right-click the column headers, click Add/Remove Columns, and check the Duration box. At a minimal, you'll be able to see if anything is performing far worse during a ...


1

Actually, git is rather different from the concept you described. In a nutshell, this is how it works: It's repository stores compressed copies of entire files that have changed, as determined by the SHA-1 hash of the file, rather than some form of a diff patch. But if the hash for a file is already anywhere in the repository, even if found on some ...


1

You may want to consider only running tests that have recently failed. Given that the entire set takes 6-7 hours (i.e. is runnable nightly), you could base your tests set on the past few nights' results. If you mix in a few randomly selected tests for broader coverage over the course of the day, you should get a good chance of catching errors. This idea ...


1

TL;DR: Create a Dependency DAG from affected modules Identifying the tests that are impacted by a particular change is the same as identifying when to recompile/relink a object file. Create a dependency directed acyclic graph (DAG) starting at the modified module. You should be able to traverse all imports to identify the what needs to be tested. You can ...


1

If your unit tests are taking 6-7 hours to run, something is wrong. They should take a few minutes at most. Note that I say should - I know how difficult this can be in reality. Maybe it's time you start mocking out your objects so that you're not dependent on the filesystem or DB or whatever is slowing you down. You don't want to have to deal with working ...


1

You are basically having a problem most ORMs try to solve. You have an object model defined and you want to persist it in non-object way. I know NHibernate solves it by subclassing each class in the model and adding a specific functionality that allows it to track changes to this class. Then, when the session closes, those classes are queried for changes ...


1

If you want to make sure your colleagues will follow the new process, you should take care about several things: 1) Create an easy to use Quickstart-type guide (I assume your documentation will suffice). Images and short but meaningful text should point everyone in the right direction. 2) Present the new workflow to your colleagues. 3) Point them towards ...


1

An approach that you haven't mentioned is to explicitly annotate your code to tell the tool what your custom locking/refcounting code is meant to do. Helgrind has an example of how to do this in its manual: It is also possible to mark up the effects of thread-safe reference counting using the ANNOTATE_HAPPENS_BEFORE, ANNOTATE_HAPPENS_AFTER and ...


1

"team would react by quickly creating low quality tests and thus waste time while adding no significant quality" This is a real risk, not just theoretical. Code overage alone is a dysfunctional metric. I learned that lesson the hard way. Once, I emphasized it without the availability of balancing metrics or practices. Hundreds of tests that catch and mask ...



Only top voted, non community-wiki answers of a minimum length are eligible