5: To unit test, or not to unit test - podcast episode cover

5: To unit test, or not to unit test

Oct 25, 202153 minEp. 5
--:--
--:--
Download Metacast podcast app
Listen to this episode in Metacast mobile app
Don't just listen to podcasts. Learn from them with transcripts, summaries, and chapters for every episode. Skim, search, and bookmark insights. Learn more

Episode description

We're back after a short break! 

We talk about how we tackle testing of their applications and Mario details the latest updates to fusioncast.

We also discuss the difficulties of knowing when to let users in, what are the requirements for releasing and how to approach onboarding.

Along with the continuing attempts to try to convince each other to launch sooner rather than later! 

Transcript

Mario

Alan.

Alan

Hello?

Mario

Hello? Hello? Good. How are you doing?

Alan

Ham. Okay. Hello. It is confused as well as you.

Mario

I know, that change threw me off.

Alan

Yeah. Yeah, exactly. It's that extra week that I was like,

Mario

Yeah, I

Alan

like, they look popped up on like, Hey, I'm like, oh yeah, that hold on. That was just recovered the thing out yet.

Mario

yeah, I thought we were going to record do the, do the onboarding tomorrow and then that we were going to meet to record

Alan

right, exactly. I mean, we can do that if you prefer. I don't mind

Mario

no, no, no.

Alan

a quickie and then.

Mario

No, that's fine. That's funny. We can, we can do this.

Alan

I say it, it might, might be worth also recording the onboarding tomorrow as well, just as a reference point for you. Like it's cause I saw our software social also did a a customer interview kind of thing. So they basically posted like the, the role rodeo of the, of a customer interview. And it was kind of interested in hearing that as a, like an, a bonus kind of content kind of thing. So,

Mario

Ah, cool. Yeah. Yeah, that sounds good. Let's do it. So did you notice it's already recording?

Alan

oh, it is. Oh, nice one. Cool. Ah, sneaky. I didn't. I was like, well, should I start recording? Oh, cool.

Mario

Yeah. Yeah. So I, I got that feature going where it's auto starts recording automatically locally, as soon as you log in.

Alan

Cool.

Mario

Yeah. But perhaps I need to make it more obvious so that the person knows that they're being recorded because you didn't know.

Alan

know,

Mario

So even though it says at the top, but it's not, I guess it's not obvious enough,

Alan

maybe some kind of notification thing that just kind of pops up and just says yeah, maybe some kind of banner that just says recording has been

Mario

recording local recording in progress or something like that.

Alan

Yeah,

Mario

Okay. Yeah, yeah, yeah,

Alan

Nice

Mario

yeah. Okay, cool. Yeah, I'll do that. So have you been,

Alan

Good. It's like, I know it's weird because like, as we talked last rate, right. But I don't know what the hell does the time go? No things are good to things. Good. I think also we were away for the weekend, so I w mother-in-law mother-in-law's for the weekend. So I kind of like add last two days. Hiking,

Mario

Yeah.

Alan

know,

Mario

Yeah.

Alan

kind of like, what did I do other than it's, it's a bad habit to kind of do this development of the weekends, but it's sometimes unfortunately the only time you can get stuff done when you're juggling full-time stuff during the week and things, and then like the kid often, you know, disappears for the weekend days to go out and play with the trends. So it's like, oh, I've got like two hours to squeeze in an extra bit of bonus work. So a bad

Mario

when you get it, get some, some, sometimes some, a solid block of hours to, to work on things.

Alan

exactly. And I don't know about you, but I'm really bad. I kind of. It's evenings. I find it much easier to get into the zone then daytime. So I have this terrible habit of like, you know, oh, it's 10 o'clock. I'll just do a, you know, an hour before bed, like one o'clock in the morning. And I'm like, but I've just got to finish these things off. Like, I can't do that during the day.

It's like, you know, my trying to get like a continuous block of just like, I can do this and then you get distracted, but evenings are so easy to get focused. It's yeah,

Mario

Yeah. I've done that so many times. Yeah, totally.

Alan

and then unfortunately my son has to leave for school, like seven 30 ish. So yeah, that doesn't, it's not compatible,

Mario

Oh yeah, yeah,

Alan

it's a habit and it happens, but yeah, probably shouldn't.

Mario

I've done that so many times. It's tough. Yeah. I've brought my laptop to bed sometimes just to, okay. I'm just gonna do a little bit just before I go to bed and then yeah, sure enough, you know, one o'clock rolls around and I'm still at it. If my wife is like,

Alan

I've just got to finish this. This is really important.

Mario

Yeah. And my wife wakes up later and then she's like, you're still awake. Yeah.

Alan

Yeah. Bad habit.

Mario

Yeah. And I good.

Alan

So you've been a, he got any anybody else onboarded?

Mario

No, no, not yet. No,

Alan

I'm the next run, right? I'm the next

Mario

You you're next?

Alan

pig.

Mario

Yeah. You're next. So, no, I haven't onboarded anybody else. But I've been busy making changes. Applying changes based on that feedback. You might notice, it looks a little bit different, not by much, but the screens are separated now that there's a little bit of a split before there were all together.

Alan

Right now, I was just thinking, it looks kind of it's it's funny how, you know, again, I'm not a great designer. I'm not a designer,

Mario

Same here.

Alan

when you kind of make small differences and you're like, I think this is, this is better. I'm I'm not sure. And then you come back to it like a few days later and you accidentally load like the previous version or something. You're like, oh my God, like this, this is terrible. Like, it's amazing how things do improve and you put, you're not actually sure about it at the time. So I, like, I kind of changed some of the like the border and the shadow on some of the boxes on my thing.

And at the time I'm like, I can't tell which is better. They look kind of similar, just different. But then, yeah, I hadn't deployed the new version and I went to the deployed version production version. Oh, who's broken the site. It looks terrible and say, I made that change to know. So it's

Mario

That's

Alan

that's good. Yeah,

Mario

That's validation.

Alan

This is the, again, one of the downs, I don't know if this does that a bonus of, of it not being my full-time. I'm not concentrating on this all the time. Right? You, you, you are working on other things most of the time. And then when you come back to it, you're like, well, I'm not sure who made that decision, but

Mario

Yeah.

Alan

you can be reasonably objective about the decisions because it's like, I don't remember him making that decision so I can be critical of it because I'm not sure it was me.

Mario

yeah, totally. And that goes with code too, and not just the visual aspects, but with code I've, I've come back to my own codes sometimes. And then I look at it, I'm like, huh, what was I thinking when I, when I coded this

Alan

Yep. No, I mean, absolutely the best, one of the best refactoring God debugging techniques is to just like walk away. And I do this all the time and I walk away from it for like three or four days at a time and coming back to it and then be like, wow, that was a really bad decision.

Mario

Yeah.

Alan

You could, you know, like I'd fire that person. That was terrible. But yeah, you can be pretty objective about it when yeah. You can distance yourself from your code.

Mario

Yeah. And, and there you go start refactoring again and

Alan

Especially for me. Cause I'm so I'm developing DotPlan in Elixir and Phoenix. And this is my first Elixir Phoenix production app. Which I think I mentioned, I, it wasn't intentional. I was like, oh, I should try this out. See how, you know, see how I like it. And then I'm like, oh, I built a thing.

Mario

yeah,

Alan

So you just kind of, so I'm very much learning as I go with it in terms of, you know, I'm applying all of the things I've known in developing rails apps, but 10 years. But there's a lot of, I don't want to say subtle as could some quite huge differences. I mean, the, the concept and the structure and things is very similar, but there's a lot of unique, functional programming things in Elixir that I'm just not very practiced at.

So there's definitely this constant reevaluating, how I've done things. And then it's like, okay, I can rewrite to this now because I've learned a better technique of doing this. So it it's definitely. A big learning experience as well. It's it's yeah. Normally if it was just rails, I wouldn't really think too much about that, but this is definitely a different experience to be learning a building at the same time. Probably not the most efficient, but

Mario

Yeah, no, but that's good. I mean, you're learning and you're learning with a real, you know, a real life application, that, that puts a lot of things to the test, things that,

Alan

Right. I mean, I, there was a, there's a discussion on one of the select seven. I think yesterday I'm like, you know, how should I learn a new language? And I think we mentioned this before, you know, I'm, I can't learn a language by building what the suggestions were like, you know, build a parser or build a

Mario

Yeah,

Alan

like that has zero. Like I'm not gonna learn anything. I'm just gonna learn syntax. And, you know, I've learned some stuff and then forget it the next day, because it's completely impractical to me. And so by building a real thing and, and actually solving problems that I would be solving in a novel process of building an application is the only way for

Mario

exactly.

Alan

me. Right.

Mario

Yup. Yup.

Alan

So all the things I'm kind of trying to learn from. It looks from Phoenix. I thinks it's like, okay, I don't know how to do this, but I need to make it work. So it's like, okay, applying what I know from, you know, rails and Ruby, but like the, the concepts that are quite different. So it's like the, there's definitely a whole process that you need to go through. Like, but then it sticks because you've had to go through that. Right. It's not, you know, next time that comes up.

You're like, I know this. Whereas if I was writing a parser, like

Mario

yeah,

Alan

going to go in one ear and out the other road,

Mario

Yeah. I find myself in a similar situation with the fact that I'm building this app, that I've never built anything like it before with audio, video and recording and all through the browser and never built that. I've been a developer for a long time and built a lot of different kinds of systems, but I've never worked on something like this. So it it's a lot of firsts for me. And I don't sometimes, you know, it's the same thing. I don't know how to do this, so it has to work.

I have to figure it out. So, you know,

Alan

So have you released a production app that is entirely yours before? Or have you only worked on stuff as part of teams that has been released to the public?

Mario

Mostly just as part of the teams. Yeah. That it's entirely mine. Some of my side projects. Yeah. I've launched, you know, before. Yeah. Like three or four of them before Fusioncast, but none of them. You know, anywhere close to what fishing cast is. But yeah

Alan

in terms of complexity or completeness.

Mario

in terms of complexity, cause I've, I have launched let's see, two, two or three other projects were products that I worked on that were pretty complete. I mean, I could have iterated more on them and, you know, continue making them better, but I did launch them, you know? So they were pretty complete at least good enough for other people to use. But yeah, not, not anywhere as near as Fusioncast in terms of complexity. Yeah, yeah. Completely different types of projects.

Alan

Cool. Okay. So this is, yeah, it's, it's, it is a big deal launching this one. It's, it's, it's much more of a step up in terms of yeah. Does this work? And

Mario

Yeah,

Alan

as I said, yeah, you know, I think yours is especially there's a lot of moving parts and it's all got to work perfectly for it, for the product to work at. All right. One piece of that breaks down that you don't really have a working product, right?

Mario

Yeah. Yeah. So far the biggest, the biggest challenge that I had was when a recording wasn't working and you remember our first recording didn't work very well at all. And that was kind of scary cause I was like, it's the core piece of the product. And you know, like what's the problem where, you know, where's the bug. And we already talked about that in the, in a previous session, how the problem was in multiple places.

And it was, you know, logical errors and, you know, I had bugs and, and stuff that I needed to rework. And it was, it was one of those where like it has to work and I have to make it work because it's the core part of the product. And it took me a couple of weeks to figure it out and it was like, man, it was, it was tough. But. Yeah. Once I figured it out, it was a big

Alan

that's the core of everything. Right. But I mean, it's, this is also something that is very much on my mind am releasing this in having been written in Elixir and Phoenix says I'd not used to debugging this in production because you know, like a rails app, I know the pop-ins to expect in terms of, you know, what, what happens to an application when it's been a bunch of users, all the same particular problems.

Mario

yeah,

Alan

The biggest unknown for me in this is like, I don't know how a an Elixir up performs in production and what to you know, what the problems mean

Mario

yeah.

Alan

you get a particular type of problem. It's like, what does that mean?

Mario

Yeah.

Alan

like it looks or has a lot of tools for going in and kind of debugging a live system, but I've never used them in anger. You know, I, again, I've played them, played around with them, but never to solve a live production problem. So that will be an interesting learning curve.

Mario

Yeah, definitely. Do you write tests with your

Alan

I, it depends on the day I'm I should write more. So rails, both rails on Phoenix have a very strong, like baked in testing culture and systems. My testing habits are not as good as they should be. So I tend to. I wrote these days, I write much more higher level integration system tests. I kind of got out of the habit of writing as many unit tests as I used to. Just I find them less and less useful as time goes on and much more of a headache to maintain.

So if I, the tests I right now are generally much higher level system tests, integration tests. So, but yeah, th that's also one of the problems of developing a thing that you're not sure what it's going to be when you start is it's like, okay, do I write all these tests and then realize I'm building the wrong thing? Or do you get further on and then say, okay, this is now a thing. How do I test this? So it's it's an ongoing challenge.

Mario

Yeah. I totally get it. I feel the same way. I, I don't to be honest, I, I haven't written any tests for Fusioncast, and part of it is that, you know, the fact that it's started as a side project and as all my side projects, I don't know if they're going to go anywhere. I don't know. So I don't want to be wasting time writing tests. So. I don't, I don't do that. And and the another part is with Fusioncast specifically, it's a really difficult app to, to write tests

Alan

Again yet, you're almost right, right. Yet that there's individual things in terms of like, you know, merging your files and making sure things happen. But yet the end to end, I mean, I guess that's where, you know, like integration tests are going to be the, the main thing for you because it's like, it's got to be an end to end process of actually recording multiple things and making sure that joined and everything right.

Mario

Yeah, exactly. So but yeah, a lot of parts of, of an app, like this are really difficult to test because of just the nature of it, you know, the video connection and and you know, multi-part uploading and all that, all that stuff. It's kind of kind of hard, but, but I, I see if it gets anywhere at some point I need to, you know, So-called back around and and then to some, some integration testing and you had a higher level, but yeah, I feel, I feel the same as you in terms of unit testing.

Cause when I, when I'm, when I'm coding and you know, as I'm coding, I'm testing all the time, I'm testing it. Yeah. It takes a little longer to manually test, but I want to see this thing work. I there's, to me, there's nothing more obvious and more what's the word I'm looking for reassuring, right? To see it actually work and to actually feel it and see it. So as I'm coding, I'm always testing everything as I go. So I feel the same way about unit

Alan

It's yeah. I mean, it's, it's they're important and there's certain things that are worth unit testing, but I've also been I've, I've come into many projects that claim to have, you know, amazingly complete tests specs and you know, like we've got like every line of code, you know, like 90 something percent

Mario

99%

Alan

Yeah, exactly. And then you look at the test and 90% of the tests, the test in the framework, it's theirs. It's like, yeah. Okay. Well rails does that, if you stating a thing in your car, so it's like, okay, does. You're making sure that you've done a thing, but by writing the thing in the first place, you've already done that. So it's well worth testing, certain things that you do and making sure that the outputs are expected to be the inputs.

But again, that, that, doesn't just because you have a high test coverage number doesn't necessarily mean that your tests are worthwhile or you're testing the right thing. So again, that's, it's difficult sometimes to to understand that while you're writing the code, because you're in that world of like, well, I'm doing this, therefore I need to test that and I'm doing this and this test that. So my very first job out of.

second, third, third job out of college was I was doing QA stuff, so I was actually doing automated test. It was, you know, the company actually had separate QA department. So we had this system, you know, like literally code to get thrown over the wall. We'd write automated tests, test it. And then we'd file bug reports. And it seems ridiculous now that there was this wall in not literal wall, but yeah, a virtual wall that code went over. We didn't really speak very often to the developers.

It was more of like, you know what? We've got this thing, how do we test it? And it seems like crazy that that's how it worked, but that's how it did work. And so , I'm reasonably used to trying to figure out what needs to be testing or what the edge cases might be.

You know, but said, that's not what I see from a lot of tests that are not a lot of applications that I've come into as a, you know, as a developer, it's like existing products and it's like, yeah, this is just taking a lot of time to run your test. It doesn't actually prove anything.

Mario

Right, right. Yeah,

Alan

it's a topic.

Mario

yeah, yeah,

Alan

So yes, but I need more is the answer,

Mario

Same here. I get it. Yeah, I feel the same way,

Alan

that's

Mario

but at some point, at some point, Come back around and we'll both come back around

Alan

For sure. I mean, I think, well, yeah, I mean, we're both in this period where it's okay, we've gone through initial validation of like, yes, this is a useful thing, but there's a, there's still a gap between, is this actually a, a revenue producing product third. I want to continue investing in and research, maintaining and supporting for an ongoing period of time. And it's like, well, how much do you need to? Yeah, but there's a balance that right.

When it's a project like that, it's not, you know, a paid-for gig that you have to deliver on spec and to a particular quality is like the quality is to your customers not to specification. Right.

Mario

Right, exactly. Yep.

Alan

It's a tricky one.

Mario

Yeah. Yeah,

Alan

what's new in your app anyway. What have you done apart from automation?

Mario

see what else? Oh, by the way, if you see that a little. Little circle thing on the top,

Alan

I was going to ask what's XL,

Mario

that's, that's

Alan

that a break points for a

Mario

yeah. It's, it's a break point for four screens that I forgot to remove it and I pushed to production. So it's there. It's not supposed to be there.

Alan

It was

Mario

need to

Alan

how XL was immediately like, oh, that's a tailwind break point.

Mario

Yeah, yeah, exactly. So I have this little, little widget thing that I, that I created. I actually saw it somewhere. Someone had something similar on a blog post, and so I created my own using tailwind and and then it's pretty handy. It's pretty useful. When you, when you're developing a, you need to know where you're at, you know, resizing, the screen and stuff. Yeah. And it's it helps you figure out code and debugging and that kind of thing.

So I need to put her under a flag, so it doesn't show up in production. I didn't do that. So it's just there. So ignore that one. So I don't know if there's anything else actually that made it to production. That's new. Actually let me let me try something real quick. Let me share a screen and then let me know what you see. Cause I don't know if I made that into, if that made it into production. See, where are my screens here? Trying to find something. Okay here, some some code.

Did it show up as a larger

Alan

pick one and I've been moved to the corner. Yeah. Very nice.

Mario

Okay. Okay. So you can see that. But you can't see me, right?

Alan

I can see you as well

Mario

Oh, you can see me. Okay.

Alan

Yep.

Mario

So it's both of us in the corner and then the screen. Yeah. So, okay. So that made it into production.

Alan

Yeah. Very nice.

Mario

So I'm working on that. So that way we can still, everyone can still see each other while sharing the screen. And the screen is more visible because it's, it becomes larger, as suppose, to before, where if you shared a screen, it was like a little tiny window, just like another participant.

Alan

Right. And you could either Fullscreen it or not. Right. So you could either see the full picture or like.

Mario

Or not. Yeah. So you can choose to do that. So

Alan

So this also as you mentioned, this records, the original stream of both your, the screen, your sharing and your video as well. Right.

Mario

It does in the cloud, it does record everything. That's everything that's added into the room, including the screen-share, it gets recorded in the cloud. Now in terms of local recording at the moment, it's not recording the screen because it's, it's recording the participant's video cams

Alan

right, right, right.

Mario

So I would have to add an additional track that records the screen at that point. So that's, and I think we might've talked about that. So I, I would, I would add that in the future.

Alan

right. Yeah. I remember you talking about that now. Yeah. Yep. Yep.

Mario

So right now, what I'm working on is refining that a little bit. You might've noticed that I dunno, in your case, but in my case, the screens kind of shifted, so

Alan

bit of a flicker when it moves it. Yeah,

Mario

yeah, but also the position. So my screen used to be on the left and now after turning off screen sharing, I'm on the right and you're on the

Alan

no, that's the same.

Mario

Okay. So it changed for me. So, so I'm working on handling the screenshare functionality a little better now that I, I got some of it going it kind of basically now I'm working on better handling of the layout when you know screen-sharing is on and when it comes off and the screens should stay in the same position and not shift. So basically your own screen should always be on the top left and everyone else should be, you know, after.

Alan

Yup. Yup.

Mario

Yeah. And so another thing that I I'm working on is changing the number of total participants supported from four to six. So now it's going to be six, but with that comes the challenge of layout. So because now I have to support more screens and they have to fit and they have to all resize properly. So I'm refining that a little bit. I think some of that made it into production. When I did the screen-share resizing, but it needs to be polished a little more.

And now that I'm supporting six participants total I'm working on that, so that'll be the next update.

Alan

Very

Mario

And let's see, what else did I push oh, the older recording, like you saw it now. It starts recording automatically and oh, and the other nice little features I'm working on are status updates on the screen so that you can see who's muted. Who's cameras turned off and who's recording locally and who's not. So you'll see a little icons right below your name, where you can see statuses basically.

Alan

is looking really good. It's all really coming together. Yeah, you definitely need customers now.

Mario

Yeah,

Alan

You're ready. You're ready. I don't like this. There's no excuse

Mario

I know it's getting there.

Alan

No seriously, this is a, I mean, I think you're in the territory of, you know, like this is beyond a th that MVP level of being able to, you know, have meaningful users, all of these are just, you know, very nice improvements, but yeah, I think you'll, you're way beyond that point now of it being like you know, pre pre production.

Mario

Awesome. Thank you. Thank you. I, yeah, I'm trying to trick my brain into thinking that way,

Alan

Yeah. I mean,

Mario

for me, for, for me, it's like a like, oh I'm still, you know, in very much beta MVP, it's still not ready. You know, in my mind, my mind goes there, you

Alan

Of course. Yeah.

Mario

not ready. And then, you know,

Alan

No. I mean, I've, I've, I mean, exactly the same point now. So I'm definitely, so my goal was to get some people on board last week and and I didn't especially since the, for the weekend was I knew that I was, had to leave on Friday afternoon, so I'm like, okay, this is probably not the best time. Bye. Have fun. Yeah, exactly. So I'm like, alright.

And then, so I was, you know, looking at it fresh you know Sunday night when we got back and I'm like, Hey, what, what do I absolutely need to finish in order to get it out? And then suddenly you're like, I really need that. I need this and I need to hold on it. This is, this is not the point, right? This is that they know that it's pre-release, they know that it's early access, beta, whatever you want to call it. And they, they are understanding people.

So I'm like, but I really just need to finish at these things before it's suitable and it's so yeah, I'm going through that very much right now. And so there's no excuse, really. I can think of now to not give them access like tomorrow or Friday. So it's, I'm, I'm kind of, I've reached that point where I'm really running out of excuses.

I mean, as you, as, you know, th there's a million things, which I'm like, this is completely unsuitable, this is nowhere near finished, that this isn't ready really needs to do these things. But I'm reaching the point now where I'm like, hold on to that, that could go on forever. And I really just need to accept that and let people try and.

Mario

yeah, yeah. You should. You should definitely.

Alan

It's the harder it is. Literally it's I think is probably the hardest point of this entire process is just like getting over that hurdle. Right?

Mario

yeah.

Alan

Like, of course there's ongoing improvements, you know, starting the thing is it's not difficult. You just start writing code. Right. You, once you find that, the thing you're looking for talking to potential customers is not that difficult because people seem to be interested and want to try it out. It's just, it's literally that point of going all right. They go

Mario

Yeah.

Alan

The hardest part of this process.

Mario

Yeah. One of the, the. The last person that I onboarded, actually, he made a nice comment about it and he said, you know it, wow. He's like, it looks, it looks so complete. It looks so polished already. Like it's nowhere when I launched my product, he's like, it didn't look anywhere near what this looks

Alan

I'm telling you, it looks, looks fantastic. It looks really

Mario

And thank you. And and then he's like, yeah, just, just let me know. As soon as you're ready, he's like, I'll be your first customer. And like, oh, wow. You know, thank you. But yeah, in my mind, I'm thinking, you know, it's just yeah, it's not ready yet,

Alan

no,

Mario

but

Alan

every single day I'm going through this. And it's like, I can't, but it doesn't do this. And then I look at some of the similar products that are not even similar, but you know, vaguely related. And I'm like, yeah, they only do like half of what I was still like, no, it's not ready. It's not ready. It's like people seem to be using that as and paying for it. So whole gate, what am I doing here?

Mario

Yeah. Yeah. So let's see, what else so I'm working on those statuses. That'll be in pretty soon. I'm pretty much done with that. And also hoping to also include one more change to, to the next deployment is remote controlled recording in, in the sense that, you know, the, but I want to make it a flag driven feature so that if you choose to, to use it that way the record button won't be available to other participants

Alan

Only to the controller. Right, right.

Mario

Yes. Only to the host who controls everything. And so when they click record and automatically starts recording for everyone in the session. And so I pretty much got that working. I, I still need to tie a few loose ends, but it's pretty much working where, you know, I can do that. Just pretty, pretty much.

Alan

as I said, these are all nice to have, but not say not not essential, but th if there are any things that you need to do that is that will have a fundamental change to the way somebody uses it and not an incremental improvement, like, for example. So one of the things that I desperately wanted to get in to mind before led anybody on it was is, so you basically have like, be able to check ins people, respond, comment, whatever. I wanted to be able to show.

It's like the latest activity, kind of like an activity feed on your check-in. So like somebody commented, you know, view it. And so in order to support that, I needed to make some database changes to make sure that it was populated. So the feature is, is simple right now, but it's there. And even there's things that aren't exposed, but are being recorded and logged in the database.

So I do desperately wanted to get that in before I like started to let people on, even though the feature isn't finished, that the changes needed to be in there to be able to track it. So is there anything like that that's effectively need to be done? Like underlying architecture wise or is it like literally just features that are stacking up now,

Mario

huh? Well, in terms of, Hmm, in terms of architecture, it's more. More in the infrastructure layer that I need to make some improvements. Like I

Alan

So you've, you've got the managing of files that have been like temporary files you know, west of three saved and cleaned up and all the rest. So it feels, it feels to me like that's probably the bigger barrier to you. Longboarding 20 customers than having a feature that does something for them. Right.

Mario

yes, you're right. You're right about that. Because yes, the, these are, these are features that came about from the feedback that I got, you know, with onboarding some, some, some of the people. And and so I'm trying to push those because they're, they're really, really nice features that they pointed out that would be really useful to them. So, but, but yeah, they're, they're not must haves at this point, but in terms of.

Of changes that, that are preventing me from opening this up to more people, I would say it's more infrastructure changes that I need to apply. You know, bring in a load balancer and have at least two servers behind a load balancer for redundancy and you know, little improvements to maybe caching and more, more redundancy at the database level as well. You know, right now I just have one database. There's no replication. There's none of that.

So, so I need to make that stronger before I can feel comfortable bringing in more people. So that w I think that that would be it in terms of roadblocking, you know, things, but in terms of features, I think, I think you're right. It's pretty much. Ready. And these other things are more just enhancements.

Alan

Right. Exactly. Yeah. Yeah. So I, I think that if I was in your shoes, that would probably be my priority list. Like the order in terms of like, get those, those fundamental changes in, then there's nothing effectively stopping you saying, okay, like an icon on board, 10 extra people, I reckon, you know, like start to work through, whoever wants to go on it on cost, then you actually have to build them. So that, that would be my

Mario

Yeah. Yeah. I agree. Yeah. No, thanks for pointing that out. That's

Alan

I, again, I it's easy for me to say that it's much

Mario

totally appreciate that.

Alan

it's much easier to critique somebody else than it is yourself. Right?

Mario

Right, right. No, but that's totally true. And no, I really appreciate it. Cause. It. Yeah. And I think I need to really buckle down and and, and work towards that and make those changes instead. And and kind of postponed these other enhancements for later.

Alan

That would, it would definitely, but the thing is about them as well. There, I mean, I went through something similar, you know, a few weeks ago when I set up all the AWS stuff, you know, and I know, again, I was similar to you. I was running on. You know, mini stuff like that, you know, the free database layer and you know, like all the freebies to, to just turn development, work and market. Like, if I let somebody on, I can't do this.

So it's ripping off the band-aid is just like, I've got to go through Saturday of setting up infrastructure. And during that, so I did that and, you know, again, I made some, some changes to the deployments that the database, all of the DNS stuff and everything. So now it's that set up how I wanted to, and now it's like, oh, I've done that I can just deploy. And I can, it does remove one barrier. That is it always feels like, wow, but I can't do that because of these things.

And yes, I I'm just trying to work through all of those mentally, but what's to stop me just giving out a, a code. So

Mario

Removing those excuses,

Alan

yeah, literally it's it really is, is just working through those in your mind. Crossing them off one by one. So I'm going to get to the point where I'm like, I've got no excuses anymore, which is, yeah.

Mario

yeah,

Alan

that's not an easy, not an easy thing to accept, but

Mario

yeah,

Alan

I mean, it's, it's exciting, but terrifying I say is the hardest and the most I think it's, you know, we're all terrified of external input. Right? We need that, but it's terrifying.

Mario

it's hard to get over that, but yeah, I think in terms of changes, I think that's it for now. That's, that's what I have. That's what I'm working on. Yeah. How about you? What about DotPlan?

Alan

Yeah. So I, I kinda, I did a whole once I'd got those cha say I wanted to get this like activity tracking and things and just to make that feasible, because again, I'd hacked in a very very early way, just actually just hitting a database just for like, manually like the brute force way of calculating that. And it's like that isn't going to scale it's, it's fine. Just to, to see how it looks and to see how it feels. And to, for me to understand what I need to show and as, okay.

I need to actually make this something that will, that will work, you know, performance wise. Long-term so I did those changes last week. And now that's in, yeah, it's just a case of like, okay. I started to run through it as a new user and, you know, came up with another list of 20 things that are like, ah, okay. Like to address those. So there's, most of those are now addressed this, the biggest.

I think which is not code related, but is, is very I'm trying to figure out the what to do about it is as far as the onboarding process goes, it's, it's, it's pretty straightforward. You know, it's just SaaS, you sign up, you can add team members if you want, or at that later. And then it says we haven't made any plans, click here to, to make some plans.

And it's literally that explaining that, you know, there's a little bit, little bit of text above each one saying what you should do, but it's the fact that I need like some, I, I always, I never really liked that whole thing with the, you know, like the tool tip thing that moves around and says, you should do this, and this does that. And it's like, just go away. I'll figure. But I almost feel like I kind of need something like that now.

So the, the idea is, you know, you can fill in your to-do list and then you can literally check them off. It looking at it fresh as a a first user, it's not obvious that. You can click a like the empty check mark to make it checked, to move it, to make it done. So the moving things around on the page doesn't feel obvious. And again, it's something that I've been too close to to be able to see it.

And I think just going through the, the first user the, the fresh user experience, it doesn't feel obvious to me. So I'm trying to figure out whether I should do some kind of a tool tip thing that hovers over it and says, you can do this and then click that. Or whether I should do like a video or some text description. And I don't feel, I have a clear answer there. And so regarding the onboarding thing So I've got like three people, like, absolutely. I know I'm going to use these people first.

And I know one of them is like, just send me the email, I'll figure it out. Like, I don't need to walk through it. Just, just send me the email and, you know, I'll figure it out. And I'm like, so I, I, it would be easier just to talk them through it, but they're like, no, no, no, just, just let, let me figure it out. And I'm like, okay. So how do I make it so that it's obvious to them, without them coming back to me and saying, well, what do I do? Because I really don't. Don't want that.

So I dunno if you have any suggestions I'm all ears

Mario

Oh man. Okay. Let's see. So they just want to do it on their own

Alan

right? The main three ways I I'm considering. Literally doing like a, a mini in the corner video, which says like, you know, how to how to use the planning page in you know, it could be literally 20 second video that could probably cover it all. Just embedded in the corner, close it to make it go away. Or like a tool tip type thing, or have more of a like a, like a banner that says, you know, kind of an instructional banner that you can just dismiss entirely.

So those are the three things that I'm considering. And I maybe do all three. I don't know.

Mario

Well, I think you should not do all three because that would take longer. So, okay. So it's just to one of those. And I would think if you, so if you, if you do the video, if you go the video route, do you have a good place in your UI where you can place that? Would it, would it mess with your

Alan

right? The bottom right of the screen. If they're looking on desktop on mobile, then all bets are off. On desktop, the bottom right of the culinary is kind of unused. It's, there's a big blank space in the bottom, right? So that, that is a perfect spot to put a you know, an eight size video of that's just like click here and I'll explain how to use this page.

So that's one of the reasons the video is kind of tempting because it's like it would, it would also give, make a use for that blank space. It gives it something to do kind of balances the page out on the.

Mario

yeah, I think you should go with the video route because it's, it's, you know a picture's worth a thousand words and a video is like even more so and if you just, you know, it would be relatively simple to create, right.

Alan

Yeah. Oh, completely. Yeah. Yep.

Mario

you know, the, the, the steps and

Alan

I'll put like, you know, Burton, captions on it and stuff as well as, so it's clear. Yeah.

Mario

and that's something that you, you can, that that would be useful going forward. You know it's not just for this one person or, you know, it's not just for this phase of the product, but you could just make it a permanent feature of the product have having these little screencast explainers built, baked into the product.

Alan

Okay.

Mario

The only challenge with that is that if the product changes later on, then you kind of have to rerecord the screencast because the UI changes or the way the feature works changes. But but I think it's the clearest, you know, most straight away to, to explain and show someone how it

Alan

of, yeah, I was kind of li I was hoping, you'd say simply because it feels to me like the most personal version, right. It's again, I think I've said before a big part of, one of the things I want to do with this is make it a more like kind of homely personal product, not just a. Corporation. So that kind of plays to that advantage. Right? It's it's me explaining how to use it and if you have any feedback, then they can subscribe.

So it's, and it also, yeah, as you said, show is better than tell. Right? So it's, and if they really aren't interested, then just dismiss it and it's gone and they can figure it out.

Mario

yeah. I think that's the way to go.

Alan

I, yeah, I was kind of, as I said, I don't really like those, those hover boxes that move around, I'm just like, go away. I'm like, let me figure this out. So I know that if it creates that and a video of like, I don't care about if it's there, I can watch it. If I don't want to watch it, I don't have to. So it feels less intrusive even. It takes up more screen real estate it's it it's louder. Potentially. So yeah, I guess even though it, it feels heavier way of doing it.

It feels to me like it might be the right way, so I'm glad you

Mario

yeah, And it's, yeah, I feel the same way about those little those hover boxes or whatever that move around the UI. I don't really like them. And it's even worse when they don't give you a way out

Alan

right. Exactly. Like just go away.

Mario

through each, each one of them, you have to, you know, keep going. You can't bail out of those. So yeah, I'm not a big fan of those either.

Alan

Yep. I couldn't understand why. I mean, there's a lot of, it's interesting going through this process. You know, it's a long time since I launched my own product as I've done it before, but it was, you know, a long time ago. So there's a lot of things now in the current state of web applications that I felt more like aah that I hate this trend.

I don't like what, you know, what certain new aspects, whether it's almost like, you know, the flat humans in terms of landing page stuff, whether it's these hover states, things, all this kind of stuff. And it's funny going through the process of now having to do all of these things myself, So many of them, I now know why they made those decisions. I don't know. Probably I, I'm not not saying I like them either, but you almost end up at the same end point, right?

You're like, well, you know, I don't, I don't want to put photos on my page because that's very, it's very, like, people have different reactions to different things and you know, you have to, there's a lot more to consider if you go in the photo route. Right. And then you're like, yeah, but I don't want to do like, cartoons feels a little not right yet until I have more confidence in my branding and all the rest.

So, and you're willing to stand up at this point while you're like, wait, it's a purple, flat picture of a pure Mohnish kind of thing that'll do. And it's like, ah, I've, I've fallen into the same trap as everybody else. And the same thing with these, these hover things as well. I don't want to be heavy handed. I don't want text on the screen, but I need to tell them that they should do this. How do I do that? Well, if I just did that and I'm like, no, no, no, what am I doing?

So, yeah, I'm kind of, it's, it's revealing. But I also don't want to fall into the same trap as anybody else. Not, not trap. I don't want to default to what everybody else doing without understanding why I'm doing it. Right.

Mario

yeah, yeah. That's exactly it. But yeah, dude, I think if you go the screencast route that would know what else.

Alan

and I can always change it. Right. I can, I can always say be the AB test these things in the future, but for this initial pass, it feels like a, an obvious route, right? Well, if you don't want to spend half an hour on a call with me, watch this video instead,

Mario

Yeah.

Alan

and it's only 20 seconds long and it'll tell you what you need to know. So it, it feels like a nice way of doing it to me.

Mario

yeah,

Alan

Thank you for

Mario

yeah, definitely.

Alan

affirmation of my, my feelings,

Mario

yeah. There's a part of Fusioncast where I need to do something similar to that because of the nature of of the problem which is when you first go into a Fusioncast URL and, you know, you're trying to connect or whatever, or basically any, any part of the app where it needs access to the camera and the microphone, a browser has to allow the app access to those

Alan

of course.

Mario

devices. Right. So, and then for privacy reasons, the user has to sort of see that and, and allow access. And so, but if there is if the user selects decline or I mean, if they say like block to block access, right. At some point if they select to block, it goes into a mode where it won't show you that anymore. It'll just,

Alan

you can't re get it right?

Mario

Like you can't regret it. So like the browser is already blocking it and that's it. And so you can't see that prompt anymore, but the way I did it with Fusioncast, it detects the fact that it's gotten into that mode and it, and it brings up a dialog box that says your browser is blocking. Like, there's nothing I can do about it. Basically. You need to unblock it. And so the way to unblock that it's different for different browsers. So

Alan

You have to go into

Mario

have a, like a. Yeah, but there's a way to access it on the, on the bar, on the address bar, that little icon right next to it. You can click on that. But if, you've blocked it completely, then in some browsers that doesn't even work, you have to go to a little icon that's to the right of the address bar where it shows like a little camera or whatever, or a little microphone, and then you have to go in there. So it depends on the browser and it might even depend on the platform.

I need to do more research on that, but right now I just have a sort of a temporary, you know, instructions at that point telling people how to get out of that mode.

Alan

That's not a block of a lunch, you know, that you can't use that as an excuse.

Mario

Yeah, no, no, no, no, not at all. You're right. You're right. No, no, I'm, I'm not gonna, I'm not gonna hold back because of that, but, but I that's an area where a screencast would be perfect to just show the person based on the browser they're using.

Alan

yeah, it's probably easier for you to make as well. Right. Because trying to explain where to click is a nightmare, but one of the reasons that this is, this is quite a nice solution for mine as well, because it's like go to here and click here.

Mario

yeah,

Alan

it's

Mario

yeah, much better.

Alan

Nice

Mario

So yeah. What else? What else do you have? What else have you been working on?

Alan

again, lots of small things, but as I say, the big thing is just like what I've got, I've got to get this out. So it's anything that's stopping me from giving a link to somebody, making sure all of the email invitations are working for it. So when you invite teammates to it, do you know making sure that signup process is fine, which again, this is not something. Hit very often because it's, I don't do that. Right. So that's one of the parts which I'm like okay.

I tried it again and I'm like, I need to look at this. Just improve it a little bit. So there's and again, setting up, I had to set up move to AWS email service from mine. I had to get approved by them. So you have to explain to them why you're going to send lots of emails, hopefully lots of emails. So it, it, all of those things take time. Right. And it's a say it, those are legitimate blockers.

It's like, well, I don't want to be on a temporary free email service that doesn't work outside of my own domain, so I need, need to make that happen. And so those things are all done now. So yeah, it's literally when I run out of excuses in terms of application development. So yeah, so I, I'm literally just going through and trying to make sure all of that. The, the first run stuff is working, which is how I hit this. Because everything else, as far as daily use, it's all fine.

Of course there's a million things, which I don't like about it and want to improve, but none of them are good enough excuses to not release.

Mario

Yeah.

Alan

So, yeah, it's, it's just finishing off this, this onboarding stuff really now is the thing which I want to get finished. So

Mario

okay.

Alan

for, for this tonight and tomorrow is, is okay. That's it? Those are, those are good enough.

Mario

So any onboarding this week, any plans to onboard?

Alan

hopefully if I can get this by making a video, then I've got zero. Excuse, cause I don't have to schedule anything. Right.

Mario

Yeah.

Alan

So if, if I can do that, then yeah. I'm going to send out a couple to the people that I've that I know don't want to schedule an interview so I can definitely get them on board. And if it seems okay with them, I might even be feel brave enough to send out to a few of those that I wasn't going to onboard yet, just because it's over, you know, in, for penny and for pound. Right.

Mario

Yeah. Yeah. Well, I say you do it as long as you don't have any braking, braking features anywhere.

Alan

That's that part of, yeah. I mean, one of the nice things about this, because I've avoided all real external dependencies, even to the point of late, I didn't allow a photo uploading. The obvious one is, you know, you want a photo for your avatar, but I even punted on that for now, just cause I'm like, I, I won't know, external uploading is always a pain and yeah, yours is entirely uploading, which is like crazy. So I even punted on that lumpy, I'll do that later.

There's nothing that doesn't stop you from using it. It doesn't stop. So I use the email address now to generate a hex CSS color you know, like a pastel color based on the email address. So everybody gets a unique color that stays with them. But a, you can't upload your own photo yet. And I'm like, just like, ah, that can wait. That's not, not blocking.

So you know, one of the nice things about this is there's no external APIs that it hits there's no apart from the obvious, like email and things. So yeah, that's, that's quite nice. So there's nothing breaking, everything works. It's literally just like, is it clear? What they need to do is, is, is there nothing that they're going to the obvious first things they're going to do, they all are obvious, right?

Yeah. As I said, it's getting to the point where I'm like, I can't can't delay this any longer now if nothing else, because my wife keeps asking me every day you got any did anybody yet, I just

Mario

When are you going to launch? When are you going to launch?

Alan

Exactly. And so I'm like, if nothing else, then I've got to say yes to that. Like it's done.

Mario

Yeah. All right. Well, good luck with that.

Alan

So that's the plan for this week anyway. So that's hopefully fingers crossed. Cool. Nice. All

Mario

All right. I think

Alan

Should I wrap it up? And

Mario

don't have anything else, we can wrap it up here.

Alan

cool.

Transcript source: Provided by creator in RSS feed: download file
For the best experience, listen in Metacast app for iOS or Android