Well, maybe it isn't so soon for Shiv... We have talked about this before that Shiv did seem to have feelings for Mahi since the very beginning. He would kindly treat her even when she was so rude. (Yes, I know we can just say that Shiv is a real gentleman and he treats everyone like that.) After Mahi shares all her secrets with Shiv, he was so lovingly looking at her at Rosh's engagement party. He doesn't leave any stone unturned to convince Mahi to boast her morale and give her confidence. He marks job openings for her the "entire" day. He comes to her shooting to wish her luck and solves her huge problem with the kids. He approaches her a couple times at the art exhibition even Mahi rudely talks to him. He totally owns Ishan and shows the jerk his place. Why would he do that? He doesn't have any personal enmity with him. Of course, for Mahi.
I think all these things indicated that slowly he was falling for her. He confessed himself that initially he would it weird too, but now it seems perfect to him... he is truly in love with her. We didn't get to see Shiv fully realizing that he loves Mahi because things in this show are shown from Mahi's perspective. We don't get to see any one else's point of views feelings, but all these things clearly indicated that Shiv was falling for her.
Yes, I agree that he probably picked a wrong time to confess. Mahi wasn't even talking to him properly, she was completely avoiding him. Why did he confess now of all the times? I think he also felt that Mahi has feelings for him (as he said tum janti ho humein friendship se kuch zyada special hai). After the whole thing with Rosh, I think he was feeling guilty too. I think he thought that Mahi is avoiding him/being rude because she is mad that he kissed Rosh or rather Roshni kissed him. He didn't know that currently Mahi is going crazy after that Dev guy. He thought that if he cleared that misunderstanding and confessed his love to Mahi, she would confess her feelings too. And things would be great between them again.
Obviously, that's not what happened and the poor guy was heart broken.
As for Mahi, yes, she's being really immature. But I think she is only trying to run away from her feelings for Shiv. She's in denial. In her efforts to prove that she doesn't have feelings for Shiv, I think she was going after Dev. Or she's just simply immature to realize that the guy was just using her. She thinks she's close to him to be doing all his work whereas he was just using her as a maid. Since the beginning, we know she is a confused soul. And she learned her lesson well.... again.
I hope now we will see some maturity in Mahi. She will begin to realize what truly is important in life... then she might be able to get over her shallowness. She might truly begin to realize Shiv's value. And once she does, I'm sure she will realize what a terrible mistake she made by breaking Shiv's heart.