How many minimum days will he take to complete N units of work?
Pyth, 8 bytes

tfg/*TT4


How it works:

tfg/*TT4   Q is implicitly assigned to the input.
 f         test for T=1,2,3,... returning the first successful case
   /*TT4   whether T * T / 4
  g     Q  is greater than or equal to the input (second argument implied)
t          and subtract 1 from the first successful case


Try it online!

In pseudo-code:

for(int T=1;;T++)
    if(T*T/4 &gt;= Q)
        return T-1;


bonus, 22 bytes

"should return 7 for -1"

+tfg/*TT4?&gt;Q0Q-2Q1*4g1


Try it online!