If you make your coder cry - bring them chocolate (i.e. "full owner's manual")
December 25, 2019The bioinformaticians, bio data analysts, and bio software developers
work in the interface between experimental scientists and the data they generate.
Now, describing more detailed - how can you keep your bio-info coder happy !
All coders have their own ways
The most striking difference between lab work and coding is :
every coder (or coding team - in the bigger units) has their own ways in being
- productive
- reliable
- creative
And the coders themselves - as they are used to working with multiple collaborators, many of which are not coders, are able to tell you
How Exactly they wish to work with you.
If you wish a good quality project, you should stick to what they describe is their "standard process of working".
If you wish a terrible mess, where nobody knows if the code works, where the data is, and nothing is documented - you can try to force the coder away from their "comfort zone".
You wouldn't say to anyone "I would rather prefer you to use MassSpec for this" - if the only thing the person has ever done is "High Res Microscopy". Coding is a wide field - they only master a slice of it : but a very powerful slice ! which is able to do whatever you need of them !
Information - and trial and error
All coders are Hungry Hungry for all kinds of infomation, related to the data type you give them.
The more you can tell them, the happier they are. Who are the users ? What is the size of these data files? How do we store these? Do you want figures, or just tables? What kind of issues you have in data generation? How do you know your data is good?
However, they will have their own process.
They will plan your solution, they will make tests, they will involve you, they will make software.
They will get frustrated, as everything they do goes to ruins. They will come to you for help and brainstorming in dead ends.
Comfort zone is your friend - they will make a lot of trial and error,
but if you allow them to "trial and error" in their own way,
you will get a brilliant end product.
If your coder looks like they are "in their comfort zone",
don't force them out of there.
They may be a little weird, but hey that's life. What do you care.
It's not the plot colors - it is what happened before that !
Your coder will die a little inside, when you ask "are you sure you are using good enough colors to plot this".
Most of them have 10 years of data analysis experience under their belts.
If you cannot "see the difference" between your treatment and control, it is usually NOT their skills in plotting.
Not even, when you force them to generate dozens of new color scales, none of which "miraculously" seem to have any effect on the data visibility. No, they weren't surprised of this outcome. Yes, now everyone knows you asked for those plots. They cried a little. Don't repeat this too often.
However, if they did ask you "are you sure we are happy with the choice of algorithm" in the actual analysis phase - here you have a good chance of actually affecting your results.
This is how the "bad colors" of the plots are usually corrected : the analysis "core" had issues. Once they were corrected, the plots were stunning.
No, this wasn't surprising, either. This is actually WHY the colors of the plots WERE stunning all-of-a-sudden.Bioinfo coders keep their colors so, that "any result what-so-ever" will cause rainbows and unicorns "immediately". It is a safety feature and good practise, which alerts the software developer that "it seems to be working correctly, I think". Or at least that "it seems to be working" - whether it works "correctly", will be tested later.
Don't "fully trust their judgement" - they don't do that either !
Coders are solitary creatures - they don't normally talk to other people, if they don't really need to.
If they ask you "do you think this representation looks better than this other one", or "I wonder which kind of normalisation protocols are most relevant here", or "are you sure we have listed all the artifacts of the experimental protocol" - they actually are doubting the completeness of their algorithm.
This is good for you!
The doubts inside your coder's head - are the only thing between you and Failed Analysis !
The more insecure your coder - the better your code will be !
They see all the issues, and thus you will have solutions for everything !
The more desperate they are, the better the end solution will be - they leave no stone unturned to solve it.
The more paranoid they become, the more user-friendly the software will be ( they literally will write stuff like "if the user gives me numbers instead of text" into their code, as they are 100 % sure someone is going to mess it up ).
The more they act "I have it in the bag" - the more you will cry later,
as you have no idea what the program does, whether it does what you wanted, how to interact with it, and what are all these error messages.
( Sometimes they actually "have it in the bag" - but that is relatively rare. Does happen, though. )
Testing will make you cry - but is kinda necessary
Also - "could you please test this for me, that it gives what you expected".
This is one of the Most Serious requests you would ever receive from your coder.
Answering by the "I fully trust your judgement" - will result in Nuclear Winter,
or at least Crying Puppies.
This is the "final obstacle" of the program they are making
- they wish you to tell them what's wrong with it.
They are creators of something new - whether it is good in "their own opinion" has little value (even to themselves) - as the goal is to build a resource for "everyone".
Summing up
Simply :
- don't force them to use time to plot color optimisation (if you aren't actually color blind)
- don't leave them alone with their questions (you have so much expertise to offer)
- test the damn thing, if they wish for that
- don't hide it if the thing made you cry (they would be happy to comfort you, while listing down all the problems the stupid thing caused you). this is called "reporting the bugs".
And lastly :
If you do make your coder cry - they all respond to the same "please forgive me" :
bring them chocolate. Or if you are out of chocolate, send them a LOLcats meme.
Be soft for them - they spend 8-16 hours a day by "being yelled at" by "software which doesn't work". They deserve a couple of LOLcats, every now and then.