When in doubt — “Bonjour-hi”

Apparently there is language drama in Montreal:

The unofficial greeting in the bilingual Canadian city of Montreal has long been a friendly “Bonjour, Hi!”

But that standard is no more since a motion mandating store clerks to greet customers only in French was passed in Quebec’s provincial legislature.

The problem is that Montreal is officially French-speaking. But English is extremely popular, and the main language of tourism. So ingenious citizens came up with “Bonjour-hi” as a way to be inclusive, and signal that they are capable of speaking english and french.

We have something to learn here. When in doubt: offer options.

  • When giving a suggestion, offer two if you don’t know for sure
  • When asking boss for advice, offer two possible solutions
  • When trying to make a decision, consider at least two options
  • When somebody is [un]comfortable, offer them option to stay or leave

Picking one out of two is hard, so let’s recall what Agile Software Development teaches us:

When faced with two or more alternatives that deliver roughly the same value, take the path that makes future change easier.

Dave Thomas

By following “Bonjour-hi” approach, we are not diluting power or wasting time, we are showing that we are empathetic and thoughtful. Offering option doesn’t need to be artificial, stick to your guns when you are sure. But otherwise — consider two options.

Setting up artificial limitations will teach you new tricks

In creating art, there is one technique that always attracts attention. That is setting up artificial limitations or restriction to the process.

In writing, there is whole zoo of techniques or challenges (see wiki and TV Tropes articles) that aspiring artist can borrow from. In movies, one can try to make a film using a single continuous shot (Russian Ark) or only using natural light (even indoors, see Barry Lyndon).

Constrained writing Wikipedia article

In software development one successful artificial constrained that comes to mind is 10+ Deploys per Day at Flickr that contributed to the launch of DevOps culture.

In cooking we have Plating Carrot in One Minute or dinner under $10. We have challenges of finishing game in least amount of time or beating games blindfolded. In programming we can try to implement algorithm with the least amount of bytes or program while drunk.

All these attempts at meeting strict restrictions (apart from being artistic goal) lead to generation of very creative solutions. When used as an exercise, this approach attempts to artificially limit most crucial resources, or resources we are bad at managing. You can’t finish project in a month? Try one day! Always over monthly budget? Here is $50 / $100 / $150 for a week of groceries.

In science we’ve seen several examples of setting up artificial constraints. Comes to mind: 3 Minute Thesis, 72 hour science, and 3 year PhD thesis (don’t take that one too seriously).

All these examples teach us valuable skills of time and resource management, allow us to get better at scope definition, and help understand what is slowing us down.

To work through the problem, force your process to be starved for key resource. The approach is to pick something that feels the most painful, and try to aim for it. You can only pick things you control (no “10 Science papers a year” but “10 co-authorships a year” is doable). In academics it is most likely going to be time.

Image result for cost time scope
Triangle of doom. When restraining quality, we have to balance time, cost, and scope to achieve result. When one resource is limited, others need to be sacrificed

You will have to sacrifice some things: either pay more, or aim for lesser scientific achievement. But amount of information and training you’ll gain might be well worth it.

Updated on March 19, 2020:

As the world struggles through COVID-19, many labs are struggling with shut-downs, order to work from home, terrible expectations with salaries and funding, and more.

This is an opportunity. Not to out-work your competition. But to re-evaluate process, goals, and human aspect of the research. Each lab get an opportunity to take a break with daily grind, reset the clock, and establish new policies and management procedures.

It can start with reducing amount of meetings, increasing quality of meetings, increasing amount of written communications, establishing proper project management, re-evaluating one-on-one meetings between staff and PIs, write down as much protocols as possible, get better at presenting.

It should not be just “do your best” but an opportunity for meta-discussion. We shouldn’t just “write”, but we should talk about how to write, and how to write better. Same for presentations. Same for lab management. Same for being a PI.

About

Hi, my name is Andrey.

I started this blog to record ideas on running projects, making better presentations, and so on, in context of scientific research.

The goal of this site is to write down instructions, HowTos, protocols and checklist that could help manage research projects, get through grad school, and improve professional climate in academia.

Why is it called “Extreme Sciencing”? I shamelessly copied Extreme Programming for that name. In my experience, we can learn a lot from practices of software development, such as Agile, Scrum, or DevOps. I have spent time studying those and tried to borrow and adapt things that might help us with better sciencing.

Checklist for slide review

Whether you are getting ready to review somebody’s presentation, or you are presenting your slides to a supervisor or a friend for feedback, here is a handy check-list of questions you should be able to answer.

First, few organizational questions:

  • When is the presentation?
  • How much time you will be given? (total talk time, Q&A time)
  • Will it be in front of live audience, broadcasted, or both?
  • What is the aspect ratio of projector you will be using?
  • Who is the audience, how close are they to you professionally? (Think general public vs collaborator)
  • Will you presentation be interrupted with questions or you have solid block of time?
  • Have you uploaded your presentation to cloud storage in case laptop dies?

Now more about the content:

  • What is the main product you are presenting?
  • What is the problem you are trying to solve in your work?
  • Why is this problem important?
  • What existing solutions have you considered?
  • What are the key benefits and shortcomings of those solutions?
  • Which particular gap your solution fills?
  • What are the limitations of your solution?

Considerations about the style and information density:

  • Does every title sound like a message? Bad: “Comparing medications A and B for blood pressure“, good: “Medication B is not different from A for blood pressure
  • Do labels on plots occupy as much space as possible?
  • Are many slides have more than two plots? Is it really necessary?
  • Have you considered that each pixel costs you money? Can you reduce number of blank or useless pixels?
  • Do you have a “graphical abstract” at the end of the slides that summarizes findings and showcases few results while using minimal text?

Remember that quality of your talk will improve with each practice presentation. Find few friends who care, and do several runs of your slides

Image

Bonus round: checklist for inviting someone to speak

When inviting someone to give a talk, fill in the blanks and send it to them

  • Your talk starts at __
  • Please keep talk under __ minutes so we can have __ minutes for Q&A
  • The questions are going to be at the end/interrupting talk
  • The projector we have is 4:3/16:9
  • There will be __ people in audience, mainly ___

Call for providing better working conditions for researchers

Current US regulations of workplace benefits, accommodations, and options are terrible. This stems from a long past of aggressive capitalism fueled by communism/socialism fear-mongering. One example is at-will employment laws that disproportionally shift power from workers to companies.

Other regulations and practices are accepted historically. For example, open plan office spaces that have been proven to be terrible for productivity specially in creative work. Some of these decisions are driven by attempt to save money, others by ignorance and lack of empathy.

Fortunately, many companies come to realize that there are things that make workers happier, more productive, and efficient, while perhaps costing a little bit of money to the company. Basecamp offers exceptional benefits which not only save money to the employees ($100/month fitness allowance, $1000/year continuing education allowance, paid 16-week parental leave) but communicate:

We respect you and want you to be happy and life is hard enough

That is reflected by the 4-day work week during summer and the 1-month sabbatical every 3 years. Basecamp, arguably, makes a lot of money and as a private company capable of making these decisions. Other organizations might not have enough fiscal or political capital to advocate for better benefits or work conditions, being forced to follow “corporate regulations” or “it always been like that”.

That will not stop us from asking for, and in some circumstances, demand more respect and more responsibility from organization where we work. Here is a list of facilities that we think are necessary and should be provided to all researchers, students working in labs, and staff in any institution:

Some of these items have been requested and received at my previous institution, others not yet successfully implemented. There is always room for improvement, and we should start with a list of necessary improvements to the workplace and then collaborate with institutions to increase happiness and productivity in academic environment.

We need more clear plots with high information density

When presenting data we’d like to balance two goals:

  1. Present finding in a clear, unambiguous fashion
  2. Reflect variation in data and observations that go against the hypothesis

This should be also combined with the notion that Every pixel costs you money.

When highlighting difference between conditions, we can condense data in different ways. For example, we can start with bar graph with error bars. Asterisks signify significance level (p-value) of the difference between two conditions.

Bar chart with error bars compared to Gardner-Altman plot. Gardner-Altman plot shows data points as well as an inset that highlights what’s important: the difference between means of the two distributions and confidence interval. “+1.15C” is a bit confusing identification of that difference because it just “floats” in the space.

If we know that two conditions are applied to same sample (for example, we measure temperature of patient #1 before and after treatment) then it might be useful to show that using lines:

Example of line plot to show change in parameter before and after treatment. While most patients improved, there are some outliers. Paired-sample t-test, p<0.01

We sometimes want to show bunch of different stuff on the same plot. Consider this graphics, that overlays multiple fluorescence excitation spectra:

Spectral analysis of fluorescent variants GECO, Understanding the Fluorescence Change in Red Genetically Encoded Calcium Ion Indicators

It took me a lot of time to understand it, because it uses two sets of axes for each subplot. That can be an effective tool, and can be easily implemented, say in MATLAB [example one] [example two], but it can also cause confusion. Let’s focus and try to improve single panel:

Panel D. Color represent amount of Ca2+ ions, texture represents single- (F1) or two-photon (F2) excitation modes

The plot is using color and dashing in order to define 4 different spectra of a calcium-sensitive fluorescent protein. Dashing is used to signify excitation mode (single-photon or two-photon) and color is used to mean presence or absence of calcium. This plot can be improved by flipping this relationship, keeping dashing for calcium amount, and keeping color for illumination mode:

Revised plot. Color now means means imaging conditions and matches axis

We can see, that least important information (plot of calcium-free fluorescence) is now hidden by dashing, and important stuff (the spectra of excitation) is elevated. We also color-coded the graph lines, as well as axis, so that two graphs can be viewed in the same panel, but also be distinguished visually: the purple line is being read using purple axis, and the green line is being read using green axis.

As final note, few resources on making graphics clear and statistically sound:

Run Journal Club as a project meeting

A lot has been written about Journal Club meetings in academia and medicine. It mostly boils down to something like “10 ways to kick-ass at journal club presentation” or similar. There is not much discussion on how to make Journal Club an effective tool.

This stems from the fact that nobody treats Journal Club meetings as business meetings. Journal Club becomes a “discussion” in a terrible sense: there are no quantifiable goals, no concrete questions to be answered, no tangible results that can be recorded. Perhaps one exception is clinical journal clubs where the concrete question is whether given research paper helps us to treat patients better.

In academic circles goal of the Journal Club is often “to keep up with the recent research” or “sharpen debate skills and critical thinking”. This is nebulous, unmeasurable, ultimately unachievable in any progressive fashion. The goal of this article is to offer tools that would make JournalClub meetings more productive by specifying set of goals.

First, person in charge of the Journal Club (the main stakeholder in the group) should state clearly goals of the meeting. For example, PI can say (and regularly repeat):

I want us to read papers and learn what experiments we can do better than others using our awesome technology

Or perhaps, we want to learn new statistical methods; or new optical techniques; or new model organisms. Or we want to borrow experimental approach; or compare our approach to another group’s one. That doesn’t matter, what matters is trying to be precise in the language.

That naturally allows for deliverable at the end of the meeting. For example:

  • List of statistical methods, that were used properly, and should be learned
  • A comparison of published experiment with potential experiment achievable with technique available in your lab
  • A published experiment that we should do with another transgenic line or animal model
  • An engineering trick that can be borrowed or improved
  • List of mistakes authors made, including wrong methods or strong assumptions
  • Critique of the figures for clarity and information density; how figures can be improved

When the goal is set precisely, the meeting turns into a work meeting to achieve a goal, and not a discussion to kill time. Participants now have a sense of purpose, common goal, and at the same time responsibility. Members of the team know when the meeting is “done“, that is when the goal is reached.

Journal Clubs are often seem to be a terrible way to spend time, and we would argue that is because the goal-setting is too abstract or even never provided. The public and loud statement of the goal from the senior managers (PIs) would provide concrete reason for everyone to be in the room and simple checklist-style way to know that meeting is a success.

Free resources to practice programming languages

This short list covers few sources of practice for Python, MATLAB, R, and Javascript

MATLAB

Main source: official tutorial MATLAB Academy.

Bonus points for problems from MATLAB certification practice test.

Extra bonus points: online interpreter of Octave with functionality of shared coding. You can loop in another person to help you get through. GNU Octave is designed to be compatible with MATLAB syntax

Python

Interactive Python exercises

36 exercises for learning Python. It does require having development environment set up, and might require someone to help you at the beginning.

R and RStudio

Swirl is a library that you run inside RStudio, that guides you through tutorial

There is also an interactive online tool, LearnR hosted on RStudio’s Github

Javascript

There are many services that allow practicing JS. But we like Javascript because it can be useful for programming dynamic data visualization. Online platforms such as Glitch, Codepen or JSFiddle allow free-of-charge prototyping and sharing of small web applications.

Getting through a slump: Paired Sciencing

Almost all scientists hate writing and editing. Many find careful reading of scientific literature very difficult and energy-consuming. Finishing these tasks can take very long time, especially closer to the end. Remember, work scales with 80/20 principle: 80% of time is spent on 20% of the task.

By applying Paired Sciencing method we were able, in some instances, to get over the slump and finish stalled tasks.

The basis of Paired Sciencing follows from the Pair Programming technique of The Agile methodology. The aim of pair programming is to work on a single piece of software simultaneously with partner, so that number of bugs will go down and problem-solving will be more efficient with 2 pairs of eyes. The goal of Paired Sciencing is simpler: leverage accountability in the group to get through tasks that would be otherwise delayed or avoided till the last minute.

The practice of Paired Sciencing goes like that:

  1. Pick up a partner of several, agree to participate in Paired Sciencing session.
  2. Pick a date, time, and location. Book a conference room with a door (shared offices or open space won’t work). Ideally, it will be in an unusual, yet comfortable location. Sometimes you can get away from lab and book a quiet library space.
  3. Use time-box: agree that you will work for limited time (for example, an hour).
  4. Pick task or tasks that can fit in the time-box. Articulate to all your partners what you will be working on.
  5. Get in the room, close the door, set up timer for the duration. Now, keep silence and write/read/code/study
Leave phones in a special basket

Hopefully, you and your group will be able to provide necessary support to get to the end of the timer with all boring work out of the way.

AP Photo/Rizza Alee

The art of reporting incidents

During my PhD, I have been responsible for several pieces of lab infrastructure (data storage, microscopes). To learn how to be responsible service provider, I have watched many videos (Tom Limoncelli, Alice Goldfuss) and even purchased couple of books (best is The Practice of System and Network Administration).

What I’ve learned is that network/system/computer administrators have figured pretty good way to manage infrastructure, manage expectations, and make sure systems with users run smoothly, while minimizing pain for people in charge. We can borrow a lot of this knowledge and reuse it in the setting of research lab.

One aspect of managing systems is response to incidents. That is basically when bad or unexpected stuff happens, no matter the reason. For example, the university network stopped working. Or there is an electrical outage. Or I have done some configuration change that blocked all users from accessing their data.

All of this events have one in common: there is something affecting service beyond original expectations of the user. The first step in remediation, often, must be clear and honest communication of the situation to users, or any interested party (think students who use system but also PI who runs the lab). We often see that this is not done clearly enough, or at a right time, or using the right tools.

Bad way to report incident: piece of paper on the outside of the building; no official emails; no alarms raised inside

Base of my thinking about it was stolen shamelessly from Tom Limoncelli (for example, Radical Ideas Enterprises Can Learn From The Cloud)

The way we inform people of any issue should follow this minimal checklist:

  • Inform in timely fashion, hopefully as soon as issue was discovered and initial assessment was done. It depends on relative risk of the condition. If we suspect gas leak, we should not wait and inform all parties immediately. If fridge seems to be broken, we should first check if it was plugged in before reporting.
  • Be clear about the incident area. “There is an issue with system” is not as clear as “The network connectivity is dropped since 10am”. The purpose of communicating as much as possible is to reassure the everyone that you are on top of things and transparent about what’s going on. Also it removes unnecessary worries, as “Data is unaccessible due to network issue” makes it clear that data is still intact.
  • As you describe what had happen, make sure to include things that didn’t happen (to the best of your knowledge). The network is down, but data is safe. The power in room 123 is off, but emergency power in room 123 is still running, so the microscope is still working. The fridge seems to be broken, but temperature sensor still says -20C.
  • Be clear about what has been done so far to investigate and remedy the issue. “Something happened with lights in room 321, we called facilities” conveys that you are on top of things.
  • Make sure to be clear that you will update people on the issue. It might be not your job to fix the issue, but it is your job to communicate. There is no electricity? Cool, provide a contact for person in charge or be the point of contact. It is OK to delegate or give a way responsibility. “Contacted facilities, please refer all questions to John Doe, as there is nothing I can do” means you managing people’s expectations and provide transparency once again. Ideally, provide time when you will update (“Will report back by 4pm with updates”).

Making sure you check all these boxes in your very first email / report about the incident will allow people to make decisions about their work; it will provide confidence that this incident is dealt with professionally; it will save your time by avoiding people asking question like “has X been affected” and “who should I contact about this”.