Hi. Now, most companies like to claim that they design around the user's needs. It seems obvious, right? The problem is, very often they don't. Does anyone remember Sony's TV remote control for the Google TV? It had like 100 buttons on. It was impossible to use. Well, how about the Nokia N-Gage? A mobile phone and games console all in one. Sounds great, but the speaker and microphone one decides. So that means you had to make a phone call and it looked like you were holding a book up to your ear. It didn't work at all. Well, our next speaker has spent a decade developing his own methodology to create real user-oriented products. He is Vyacheslav Kovalevsky. He's Senior Engineering Manager at Facebook. Or do we say Meta? I think we'll stick at Facebook, right? And he's here with us today, so welcome. Thank you. You're actually right. It's now Meta. Yes. Are you all set? Yes, absolutely. I'm ready to go. It's 4am in the morning on my side, but I have enough coffee to keep me going. My goodness. You have your coffee. You keep yourself refueled. Well, you look great. Here, we're getting ready for lunch here, so we're getting nervous. So it's a tough time for everyone. Okay, okay. So I will try to stick to my schedule. Okay, thank you. Hello, everyone. My name is Vyacheslav, short name Slava. So full disclosure, I'm not officially speaking on behalf of my employer. And I came here to present a framework, a technique that I've been using for roughly 10 years now. But I have summarized all the learning that I got from building four big orgs. And what I mean by building four bigger organizations, I mean a group of team that at least have three teams with at least several hundred cross-functional folks. Now, the talk will be summarizing the partners for different reasons. I obviously cannot be very, very specific in examples, but I have put together a generalization that definitely will help. So for whom this talk, first of all, engineers who would like to go faster in your company and understand business better. For engine managers who would love to improve collaboration with your products. For engine managers who do not have a PM and they have to effectively work as a PM and define the vision, define the strategy for the product. And managers who just want to lead the product, not just execute what product tell them to execute TLs who neither have engine manager or they don't have a PM and they have to assume the troll for quite some time. And finally, anyone who wants to build and lead the product and be successful with that. Let me start with problem statement. And by the way, if you will get one thing from this talk today, always start with a problem. This probably one main thing if anything else you should remember at least that part. So in order to define the problem that user oriented development process is solving very, very quick prerequisite. Let me show you this chart. This chart is quite interesting and visualizes one of the problem in industry that you need to tackle even before you aiming to create a successful product. Now access here x axis here is time wise y axis is something you're measuring with your product doesn't matter doesn't matter what and I apologize, but does my slide moving it doesn't look like my slide that changing can someone confirm that it's actually changing yes okay now I can now I can see the apologize for that. Okay, so the why is something that you're measuring it doesn't matter matter matter what exactly that the green one is obvious success if you actually have this exponential growth curve and your product is showing that results obviously product is successful. Now the red one is obvious the end you need to close it, whatever you were building clearly it's not working out. Now the biggest problem in the industry right now is this don't be much. When you kind of have some usage, but since you never have defined what success looks like for you. It's not going. And to be honest, I've been long time in the industry to be an numerous amount of meetings where the product or PM or even CEO opens up with a chart that shows Oh for my feature my product we have X amount of users. Such meeting always resisting to ask, but how much have you expected is this is more than you expected or less. How much have you expected to call a successful lunch or successful usage. And without that number and without that number a number is meaningless you can call up front. It is huge success or a huge failure, because you don't have a reference point to compare us. So this talk that you when you're building anything actually have a good understanding of this particular particular part of the chart as a leader you'll have one specific job to define metrics and the expectation one particular metrics that's that important for the business that important for the org and specifically outline green field which means that product is successful and blue field here which means that we will discuss if we want to do proceed with this or maybe we need to pivot. And to be fair, as I like to say anyone who I support defining this chart is one of my p0 goals. And in fact, how I as a manager who support the group should be measured by growing income of the folks that working that working in my org, because if I define this chart correctly this means that they working on the things that important for the business. And if their income is not growing that means that either I messed up. I haven't defined this chart right and it's actually not that important for the business, or the work doesn't recognize the input from the folks, both of them need to be need to be fixed. Now, now we're ready to outline the problem that user oriented development process action aim to solve. Have this chart in place. The problem statement. When we are building product services features, we're often not connecting to the success of our customer success. That's a problem statement many of the folks might think no when we build our product we actually do connect our success with customer success. But in reality that's not the case and this is what you GP trying to solve I will talk later why people think that they doing it and why it's not actually true and how to make the true. So this is a problem. Now let's move to your GP and let's discuss how to solve it. So user oriented development process is a technique that consists different different steps and the simplest way to outline it is to actually take an example and walk you through very, very particular example how you developing product with all the stages that the UDP has. Now, I will be talking about task tracker. Let's take an example at task tracker. As I mentioned in the beginning user into the welcome process always starts with a problem. So, in the moment we will start outlining what problem we're going to solve. But for the sake of the story, I want you to outline what we will end up building so let's imagine that we end the universe where there is no task tracker, and we are building the business that need to build a test tracking system for our customers. So, let's do it your GP way and show how exactly it should be done according to the framework that I'm talking about. First step and then define the main problem that you want to solve and the metrics how you're going to measure the success. Let me briefly pause here and I want to define main problem. Main problem is a problem that customers want to be solved now and it doesn't have any problem that need to be solved earlier. Let me give you an example. I imagine that I can tell you that I can increase ratio of pet project that you developing that will reach the production. The reason open statistics assess that eight out of 10 pet project that any of us doing at home, never reach the light of the day and never reaches the production. That's the problem. And imagine for a second, I have a solution for that problem. And it will cost you $5 per month. Let's put aside right now whether you believe that the solution work or not, let's assume I do have it. Would you be willing to spend that $5 per month knowing that yes, instead of the eight failed projects per pet projects per quarter, for example, I can reduce it to two. So, eight out of 10 pet projects that you have will reach the production you actually will deliver them. Now, if you, if you're ready to spend money on this particular solution to solve this particular problem, that's the main problem for you. You might have many other problems, problem at work, problem for your customers for your business. But if you're ready to invest in this specific one is the main one. You don't have any other blockers. In our concurrent universe where no one have ever created Task Tracker, the problem would be like this. 60% of the software project are delivered with 60% time delays and usually 400 over budget. That's actually more or less real problem that existed in the market before the market starts developing different technique of developing software. And here's another problem. 80% of the project personal projects could not be delivering the delivered and released only two out of 10 pet project ever got released. So this is a starting point we have defined the problems. Now I want to mention that we probably we will progress in this talk towards the enterprise focus, due to several reasons. One, it's a lot of me to showcase a clear difference between user and customer. One enterprise markets quite often have much, much more money. The third one, the same technique can be applied for non enterprise market but it's likely similar way you can combine several of the steps so it's slightly more interesting to dive in the enterprise first. So we establish a clear problem. That's the problem that we want to solve and we now need to establish connection with the customer. So that we need to figure out for each particular industry we need we want to solve this problem for. If you don't know the industry that's fine just pick the broadest possible category for our example let's assume we're taking self driving car industries. So within that industry, let's assume that we have found two specific customers to whom we can talk to and confirm that they do have this problem that we want to solve for them. So usually the first point where people who doing more canonical developers starting pushing back and saying wait, we don't have a product, and you're already asking me to build the direct relationship with with external customers and the answer is yes. So the thing about this, the following way, if you cannot establish direct communication with the customer at this point and actually gets customer excited about the problem that you willing to be solving. Why you think that you will be able to establish relationship with the customer when you have a prototype. In fact, not many things will change prototype usually is not something that the customer can can can start using right away. So the interest level will not be higher. Therefore, a lot of the a lot of the products or a lot of the teams or companies using these things that they don't have a prototype as procrastination technique. Just to wait later that no one wants exactly the solution or no one actually has this problem later on when when so much money in time spent. The trick here to find several customers within the industries that can be more or less representative of the whole industry, you don't have to aim for this engagement for two biggest one. But someone who represented industry as a whole, and the same time would be willing to have a deep engagement with you. Let's assume you found the phone the folks and it's only you how but again let's assume now you have a deep engagement. Second step to identify restriction under which you working. The restriction usually imposed by government or by CEO or by someone who in this particular industry in this particular company can decide which standards you have to comply in order for the company to even look on your product. For example, it could be GDPR. And if we do solving a problem problem of task tracking, we very likely will have to store data that qualified under the data that GDPR governments or or HIPAA that actually have several requirements in the software that process store medical informations or other things. Now this is a very important point that often overlooked overlooked the key here that you don't have to build solution to the problem that better that any solution on the market right now. So what you actually have to build is a solution that's better than any other product that's passing these requirements. This is very important part because usually when, when people start doing start doing their products they looking on. All the competitors in the market and trying to compete with them, which is which is which is wrong. If the customers need to have to have GDPR approved products. They need to be better than any service that also support GDPR and that's usually much more subset of the products. Now, one of the last but not the least before actually talking with the user going to click your button is integrators. Imagine within the customer that will be in charge of taking your product and onboarding the whole company on your product. They will ultimately decide whether your product comply with the restriction that they have inside of the company. Imagine that you have a product that reduce project budget over on from 400% to 300% that we just mentioned that's the key problem for them. However, even though it's reduction it's improvement, it will take three years and five million stone board. And suddenly this team might start thinking and actually calculating if reduction reduction of budget over on from 400% to 300% is actually worse because now they have to invest years of years of work. And on top of that spend five millions. Now, they can enforce things like for example, Active Directory, let's assume that the company using Active Directory for the sake of authentication. When you never talk to this team and you delivered your product, you might not have this ability to might not need you might need to redesign this completely from ground up even to be able to integrate with Active Directory certification for your for your products. When you have established this direct communication you found all these restrictions, only now, you actually would be focusing on talking to the users that will be actually clicking buttons within your product, and figuring out the minimum viable solution for that users that satisfy all the requirements that we just have discussed. This is a very important point and I'm pretty sure that everyone, if you ever have worked in any big companies, you know this, this situation when you're looking at the tool, it doesn't matter I'm pretty sure there is a tool like that in any companies and you thinking, whoa, this tool is horrible. I know so many tools that are better, that are right now on the market. Why, why we're using this, why we're using this task tracker, why we're using this system for vacation tracking or whatever. This specific chart explained that because you are the user but you're not the customer, the customer should actually gave a green light might have a very specific requirements for the security of the tool that can be used within that particular enterprise that you are part of. Now, after going through all this process, and keep in mind we're trying to solve the problem of budget of runs and planning. The next step is to find the simplest possible solution that solve that problem. And this is a key part that also quite often overseen and I will speak later in more details why. For example, we can actually use Google Workspace Google Docs with Google Cloud platform that has the ability to implement identification through the active directory. Now together it's finally give you a platform where that you can use that is HIPAA compliant that is GDPR compliant to track tasks. You can also use a spreadsheet within Google Workspace where you can use the put a task where you can put assignee, and it actually will qualify as for everything that that is needed. Now I want to mention one thing in almost any groups that I ever have built we established the interesting pattern of reviewing designs because this is a part where you designing the solution with with your group. In many many cases, in the classical canonical development design doc will include discussion of the technical solution whether this particular long term solution will solve or will deliver required user experience. And usually proposing to to have a design doc that's specifically focused on these four aspects is the clear problem statement when engineering group actually designing something I want to learn if they do understand very clearly what the problem that they're solving prove that the problem is the main problem solution and finally prove that proposed solution is the simplest one. It's quite unusual to see a product on the market that got failed because they choose the wrong database, but it's quite often that the product have failed because they choose their own problem. And yet, on majority of the reviews we reviewing solution we reviewing all the time on the market, are we choosing the right database. Are we choosing the right system for sending the messages between between front and back and or different components of the system. Instead of your reviewing. Are we solving the main problem, or are we solving the main problem in the simplest possible way. What is this simplest possible possible way established and in our particular example turns out we don't even have to build anything we can use a workspace we can use a GCP service that integrates active directory. Now we can onboard user. As you can see there is no even quote unquote development phase here I always saying on board user because again in the processes that I would strapping I usually connecting directly developers who are developing solutions directly with the customers and hold them accountable to solve particular problem for particular customer, and if you have to build the service for that to solve the problem. So be it we will build the service, but time to time we might need to update dogs or we might need to build the just a solution time to time we just need to build the feature. And now after that you start cycling and repeating that after the first morning customer in our in our work and come to you and say okay how we can assign the task for the user. We will loop it again. Next question may be where I can see all my tasks and indeed Google Docs doesn't have the one page where you can go and see all the tasks that sign to you. At some point you will figure out that you're building completely custom UI using Google Docs as a back end and some point you will realize that you no longer need to use Google Docs in the back end fact this is a wrong back end if you now have your own site you redesigning back end from scratch, and you end up with something that looks like this. With this example, usually when I presenting it to folks that never work with me never see the success of user and development process don't know that the background, there are two reactions to the pushback or start using it in the wrong way. And I want to address both of them. First, why people think this is bad idea to do things with this framework. Now imagine the space of features that you can build you have this this this black screen right now is a space of features you have a starting point which is nothing you have we want which is a product that you can actually scale and sell on the market. In our example of moving to Google Docs first we actually moved away completely away from that product that we end up building we moved to Google Docs we build it then we build some task page that shows you all the tasks that you have. And at some point we actually arrived to be one. And when majority of the people looking at this, the first, the first question okay, why not to do this, we have time of the tons of the wasted work we we we're not going to use many of the things that would be will have to drop tons of them. So why not to design everything properly and directly go to be one as fast as we can. This is the most common question that you, you might be hearing a lot you also will try to start practicing your DP. However, if you will recall, and we actually honest with yourself and when you deliver your successful product and you will go back and start thinking where you wanted to go. You will realize that you would want you wanted to go somewhere like that. Your idea where we want should be was completely in different place. And after delivering it you would have to go back because suddenly you have learned that your customers absolutely need active directory sign in. And they cannot use it. But there was a design choices that prevent you to integrate with active directory sign in. So now you have to redesign tons of the things and go back. So, of course, people who ever been through this process with budget overruns with manual runs with processes when you kind of delivering we want and then spending a year or two fixing it to make sure that it's actually usable that it's actually successful product.  We have tons of this best practices that specifically prevent you from from doing this wrong wrong pattern of development you should go directly directly to be one less design everything correctly. And so on so on so on. There will be tons of the gatekeepers that will specifically emphasize that. So this is the first one and the reason and the reason why why people react to this is way because this scheme is optimizing learning. Even if you have some magical way of knowing where we want is so let's assume that you actually know precisely where we want is so you don't have this problem going to the wrong direction. That's what we saw on the previous slide. Even in this case, there is a time difference between you starting development and you actually reaching be one. And this means that the problem that exists on the market might not exist by the time you're delivering it. So even if you know where we want is you still need to go the route that allow you to have faster first delivery to your customers and start the boarding. And then they hearing quite often isn't this an over optimization one one particular customer. Are we taking and building something for just one customer that will be hard to generalize. Now, let's take up again the example of features so let's assume this is a space of the features that we can implement and this white circle is the set of the features that particular customer need in order to start using your solution into the problem. Now let's take second customer that the second customer and again set of features that you need in order that customer needs in order to start using your solution obviously sort of. If you have an amazing department that investigating the market very likely they can give you this. However, what will. I don't want to say fail you, but is this is the fact that each of the customer has these small nuanced requirements that while they are infrequent, they are blockers which are the customer to use it. So, again, active directory. What if only 10% of the market needed active directory yeah you can probably can say just 10% 30% let's move to V2 let's let's do it later. The same might be for requirements of supporting supporting GDPR, not because it's geographically location related, we can move it to V2. And you delivering product that covers 80% of the requirements but none of the customer can use it. What I found in the past and this rule of thumb work for the decade and I'm sure will work for the next decade as well. It's much simpler to build the product around one customer and end up having generalized solution, then to try to build generalized solution that actually can be used by at least one customer day zero. The second one is less likely, nevertheless, everyone trying to do so. I still not sure why. Now the second question is how about the long term projects. Oh, looks like what you're proposing some ways about taking small hacks putting them together releasing taking small hugs and and and repeat. This is not exactly the case. Let's take a timeline and let's see the same that you building three services for again solving three problems. In reality when you have a timeline you're building project one project to project three. You might find yourself that if you messed up it's least one of the project that takes more time and you have finished amount of the development team. So, yeah, you're still waiting to start project to UDP is about fixing this timeline and making look more like this, where you solve problem number one was just updating doc you found the hack. Then you found the hack for problem number two and you finally arrive at the problem that requires actually building a services. So if you do need to build the service you building them. This is a common misunderstanding problem doesn't mean the simplest possible way to solve the problem doesn't mean that the simplest way is always a day or week or quarters actually might be multi year effort and that would be a simplest possible way to solve the problem. In order to illustrate that I do need to provide the hierarchy of the problems, and I will do it quick because I quickly running out of time. On the lowest level you have a problem that customer facing with your product something like oh I don't like the color of the background. Now there is a middle level of the problem is problem that customers solving with your product. Why they even choosing your product. And finally, what I like to say is a problem behind the problem is in our case, 80% of the project missing the deadline that what they care about. And now is a subsequent they found that in order to fix that they need the issue tracker they don't have issue track. And you constantly moving in between this level you're solving the first level the smallest level when you run out of this problem you're taking the main problem from the next level and so on and so on. Now the main people, as I mentioned some of the people push back some of the people using in the wrong way, and only few practicing it right. So what does it mean to use your DP in the wrong way. First thing that I've seen the most. We have the amazing tool technology solution. Now let's find the problem that this solution is solving working backwards from the solution instead of working backwards from the problem I called it problem geniuses.  However, very smart people, they all like to do so. And I actually didn't know but I don't know why but every every really smart people in the market, they like to emphasize the problem out of the context. If you take any problem out of the context, you can usually sell it as a very important one because out of the context, yes, we all five problem at the key to the world, we all and we need to solve all five of them but again if you're taking any problem out of the context. In the example of the test structure let's say gun chart, we need a gun chart for task and yes this is very important problem you can find the customers who will tell you, we need a gun chart. But again, you shouldn't be solving gun charts visualization until you have active directory or if you have GDPR compliance, yeah that yeah that. But if you will take it out of the context. Now what happens. Imagine that you have a someone that that trying to push your work in towards solving this specific problem let's do a gun chart. Let's emphasize this feature. Time passes you have another team that delivered GDPR compliance later they delivered active directory solution. And now finally that team that has a proven track records of solving problem pragmatically will be the team that will solve the gun chart visualization. And now you have a genius who actually was predicting that we need a gun chart was telling you that we need to gun chart, but no one was listening to that person. And now you have completely another team that delivering gun chart visualization. This quite often makes people unhappy and you need to be aware of this and preempted by describing how you doing your prioritization, because this might lead to a very interesting dynamic in the teams, because people kind of saw that this needs to be done up front but nevertheless they might not be the one that end up doing it. And so on so on. Now the second one I put the word user my my goal and therefore now it's user re-empt. You can again say that user will be able to see the dependency we have a gun chart. It doesn't mean this user re-empted because as we saw the user has completely different beast of problem statement right now. Ignoring class mile integration. This is one of the important parts where you develop the product but you're not onboarding the customers. This is a key difference between UGP normal execution and normal execution is just delivering the product according to the spec you've done onboarding the customers include this last mile integration well you will encounter you will discover additional problems that you need to solve as you progress. Finally, using different audience for verifying the problem and delivering solution to it's one thing to ask a student which problem you have when you when you developing deep learning solutions and other things to deliver it and try to sell to a big enterprises, you need to have the same audience. I'm going to skip last part because a way over time. But if I would be to give one advice how to start revisits your tasks and make them a problem list. Never have a task list have a problem list figuring out how to solve them later. Connect your developers directly with the customers for whom they solving the problem. This is very specific to any org that they are built each software developer I see always connected directly with a customer and expectations for the AC. Solve this particular problem for this particular customer. And yes, if it requires to be able to service we will be able to service. I'm going to skip the cop and go directly to question time for system there is several small things, but we unfortunately don't have time so thank you. There is a link for Facebook Facebook group specifically dedicated to GDP when you can read more, ask me questions. Since it's five I am on my side, I apologize I probably wouldn't be able to hang up by a lot. Any questions that we might have and to be fair, I'm not sure where to check them. Okay, Slava, thank you so much for your time, especially at such an uncomfortable morning hour. So thanks very much for that. I would like to ask you, Slava, I guess this methodology of yours is primarily based upon your own experience and what you've seen with your own eyes over your career, but have you also been influenced by other people's work? So who would they be? Oh, of course, of course. So, mostly, it's, sorry, it takes me a moment to recall the authors, but I would highly suggest to read the books, antifragility, I would highly suggest to read the book.  I forgot, I forgot the author, I really heard of all of his names, but that idea of the fact that events with low likelihood has a disproportional impact on our life was the key idea here because the whole idea to prioritize learning and move as fast as you can, because the longer time between you start and you're delivering, the more chances that there will be a Black Swan that completely ruined your plan. Doesn't matter how good the plan is. And that's actually a foundation on top of which the whole framework got created. How about the work of Christensen, for example, and his jobs to be done framework? You're familiar with that? Actually, actually, I only heard and read several articles, but no, and thank you. Thank you for pointing out. I definitely will check it out. Much of what you were saying reminded me of that. In particular, his talk about his work with McDonald's when he was brought in as a consultant, and they had a specific challenge for him was that they wanted to sell more milkshakes, and they had tried lots of things in the past, like, for example, changing the flavors, changing the size, obviously changing the prices, merchandising, marketing plans, all kinds of things. Nothing had really boosted milkshake sales. And when Christensen came in, he asked the very question that you did to start with the problem. So why are people actually buying milkshakes? What is the purpose of the milkshake? Or what is the job that the milkshake is doing? It's the way he defines it. And there were some assumptions that, of course, milkshakes are drunk by kids.  But in fact, what he discovered is that people were often buying milkshakes in the morning as something that was nourishing and that they could put in the car and it wouldn't spill. And so actually, the problem that the milkshake was solving was very different to the one that had been assumed. So I could see how that was tying in with what you were talking about anyway. Absolutely. This is the key problem in people starting with a solution and trying to find the problem. And obviously that never works well instead of actually finally discover what the key problem, what the main problem, and start doing that. Absolutely. That reminds me also of a joke where there was a man driving. I think he wanted to get to the airport and he stops and asks for directions. And the person gives him directions by saying, well, if I were you, I wouldn't start from here. That's what came to my mind as you were showing this very nice chart with the start leading up to the V1. So Slava, thank you so much for your time. We are actually getting very nervous ourselves because we are overriding by 10 minutes and we have lunch. We have very hungry stomachs here in Spain. Lunch is absolutely sacred. So people are getting very stressed here. I wish you all the best. Thank you so much for this wonderful talk and for your insights. And to the rest of us.


but if they don't bear with me it's a practice problem. I tried to line everything up here, but we'll go to the payments. So let's see. This one was $12,000. So this $12,000 I entered with an expense form instead of a check form so we don't have the check number, but I could still tie out the $12,000 and I can see the date is pretty close. So I have fairly good confidence that that's the one. Again, if I wanted to look at the actual vendor, I can look at the vendor here and the canceled check, possibly go into my bank account if I needed to double check it there. So I'm going to then go back on over here and say, okay, that one is checked off. Maybe I'll do the whole thing here and make it green. Okay, then I have the $1,000 and the $4,000. Now these two I'm going to go over and say, hmm, those are not here. If I look through here, I don't see those and that's going to cause me some worry. That's the beginning balance problem. One of those issues, those are checks that we wrote last month in December in the prior accounting system, which were outstanding as of last time and now they're clearing. So what do I do with those? Okay, I'm going to deal with those later. Right now I'm just going to keep on pushing forward.  Let's go to the $16,000 on $1002 is the check number. And so we'll say, okay, $16,000 right there. I don't have the check because I entered it as an expense form. Okay, but I'm pretty confident that's the one. So I'm going to say that one is checked off to $7,114. So $7,000 is here. So that so again, I entered it as an expense form. Okay, so that one good. I'll say and then the $6,892 on $118,1005. So there's this one. And the check number actually ties out this time that is good. Again, a lot of people are I'm going to minimize this by the way, a lot of people probably are using electronic transfers these days. So you're not going to have the check numbers, but your dates will be will be more relevant in that case. Okay, so then we're going to say that one is is gone or done or checked off, let's say 72 1006. So we've got the 72 on what that's check numbers 1006. Okay, so that's good. And then I have the 3780 1007. So there's the 3780 1007 1004. Okay, that's the check number 1004. Notice over here, they're not exactly in the same order. And that's something to recognize. Why would that be the case? Because on this side of things, they have to put it by they're going to put it by date most often, right, they're going to sort their their transactions by date. But the date that the transactions cleared the bank might not be in the same order that we entered the transactions on our side, especially if you have check forms, because because it'll depend on the people that receive the check and how long they took to deposit the check. Now if they're all electronic transfers, again, it'll be probably pretty easy, because then you're probably just entering your information on your side from the bank, and everything will tie out like exactly right. So this this one's 1004 3780. Did I already do that one? I think I did that one. That one's done. And then this one's let's try to do two at a time. Let's get crazy 12,000 and 620. So 12,000 here and 620. Boom, leveling it up right there, leveling it up. Alright, okay, and then we're going to go back. I've done those two to do. And so and then the last one is going to be 15,000 15,000. Here we go. So that one has been found. And I'm going to say that one's good. Okay, now these two, I'm going to say I don't find those I don't see the withdrawal and I don't see the bank service charges. And if you were using bank feeds, you probably would see those because they would come in through the bank feeds, and then you would have to enter them from the bank feeds. If you're not using bank feeds, then you would reconcile either way, you could have a similar issue, you know, with those transactions, you're going to have to record them, you know, as they come through on the bank feeds. So as of now, we have these two, these two that we're going to deal with later. And we have these two that we're going to have to enter. And then we have all of these ones that are in our books, but not on the bank statement. What about those? Those might not be a problem. How can we check if they're a problem or not? Well, we could look at the bank state or the bank account online after January in February to see if these cleared. And if they all cleared in the following month, then they're not really a problem because they're just the outstanding items. They are the timing differences. They are the reconciling items between the bank balance and the book balance that will be on the report that will be generated once we finish our bank reconciliation process. So you can see what we're doing. We're finding everything on the bank statement on our books, but the stuff on our books might not be on the bank statement. That's okay. That will be the exact difference once this number gets down to zero. Okay, so now let's deal with let's deal with with these these two down here. So we have a withdrawal and we've got the bank charges. So what I'm going to do is I'm going to say let's leave this for now. I'm going to save it for later and enter those transactions in. And then I'll come back and be able to tag those off. So I'm going to I think the easiest way to do that is in the register. So I'll go directly into the check register and say where's that it's in the it's in the transactions check register close on the hamburger. We're in the checking account. I'm just going to go into the register and enter these directly into the register. Let's select the drop down and I'm going to use an expense type form because these are decreases. So I'll use an expense type form as of the end of January. That's what we want. So the first one we had was the bank charge. I could say it's what do we say chase or who's our bank. I don't know chase. Let's say and we're going to say chase is the vendor this time. And this is going to be bank charge. I'll put in the memo. It's going to be a payment of $15 I believe it was. And then I'm going to see if QuickBooks has a bank charge fee which it typically will. So because bank see if we have bank service charge. Hold on a second. Bank service. I know it has one. There it is bank fees and service charges. So it's a sub account of something on the general ledger. But there it is. Let's use that one. It's a sub account of general business expenses. Okay. So I'm going to say that one's okay. And then that should allow me to add the bank charges. So I'm going to say all right. Let's save that. And let's do another one for the withdrawals. So this one the owner took the money out. So I want to put owner as a vendor this time. And that's because it's not really a vendor but we can only have a vendor or a customer. So I'm going to say vendor because the money is going out. And then this was a draw. Now here's where the issue is. It's a payment. I know what the amount is. The amount is $150. $150. If they took that out of an ATM or of the bank then the question is what was it for?  It's for personal use. You're going to take it out and then you're going to use it to go to Disneyland or buy your personal dinner or go to the movies. Whatever you're going to do. What you don't want to do is take the money out and then pay for business stuff with cash. Why not? Because there's no audit trail then because we as the bookkeeper don't know where to put it on the expense side of things because we see the money coming out but we don't know where it should go. Now note that this idea of an audit trail for taxes if we're thinking about taxes in the United States on the expenses if we look at the income statement you have income minus expenses. Expenses are deductions for taxes. Everything's flipped on its head. The deductions are good. We want net income to be low on the tax return so we pay less taxes. So that means that the expenses are good if you have something that's a legitimate expense. You want the audit trail because if the government came back and audited you we would like to say


Hi. I have a lot of thoughts running through my mind right now, and I probably should be doing a blog post about this topic that I'm going to be talking about before I'm making a video about it, but I was thinking I maybe want to do a video about it to get my thoughts together and then do a blog post about it.  Feminism's goal was to cause a huge divide between men and women. They wanted to smash the patriarchy because they felt men just typically abuse women, so they need to get rid of anything that has to do with patriarchy and abuse. And in so doing, these female influencers have essentially wiped out 1st Peter 3.1 and 2. Those verses can't not apply to women these days. And these verses are about women, wives being in subjection to their husbands, disobedient husbands, to win them without a word by godly behavior. And they believe these verses causes abuse, so they encourage their followers to throw away, create to be as help meat, and love and respect, and probably my book, any book that teaches women to try to win their disobedient husbands by godly behavior and living in subjection to them. And I was going through all the comments and researching and reading and they don't like Gary Thomas. And Gary Thomas wrote something about porn and women's, how women, I didn't read the post because he, he erased it, but he apologized for it and said, a wife never, a man looking at porn is never his wife's fault. And I was pondering that and what God has to say about that in 1st Corinthians 7.5, he said, do not deprive each other. Why? Because unless Satan tempts you for your lack of self-control. So I believe a wife can be responsible for husbands looking at porn. Does that mean she's responsible for him looking at porn? No, but she's responsible for denying him sexually consistently and causing him to be tempted by Satan. So then he goes and looks at porn. So she is partly responsible. You don't, but then there's men of course who watch porn, whether they're deprived sexually or not. Those wives have no responsibility whatsoever and their husbands looking at porn. And husbands definitely need to take, take responsible ability for looking at porn. Porn is destructive. It's destructive on marriages. It's destructive on masculinity. It's horrible, horrible, horrible. It's a tool that Satan is using to destroy men and marriages and children. So men need to flee porn. I'm not trying to excuse men looking at porn and I never will. But a wife who is consistently, consistently depriving her husband sexually is causing Satan to tempt her husband, whatever that looks like, however he, whatever that, however Satan tempts him or what the husband, how the husband acts upon that is his responsibility. But she, godly wives are not to deprive their husbands sexually. That's just a fact. And that's what God commands of us unless it's a, for prayer and fasting. And of course after childbirth or illness and godly good husbands, even husband, disobedient husbands will understand that.  Like only a cruel husband would force himself upon his wife when she was, had one of those issues. Most husbands are not cruel. So anyway, so after reading through all these comments and pondering and to all these women saying they're burning Debbie Pearl's book and everything, and they just, women don't want to take any responsibility. And these women influencers, some of them have been abused themselves. And so they see everything through the lens of their abuse. And they will talk about emotional, physical, spiritual abuse. And almost every woman, many wives can fit themselves somewhere into that core category of abuse. Abuse has been so watered down. I used to mentor women one on one, I would go to their house and almost every single one told me that they were being abused by their husband.  They weren't being abused. Their husbands just were not treating them the way they wanted to be treated. They weren't, some of them may have felt emotionally abused or whatever. But if, if you're feeling abused by your husband in any way, unless it's physical abuse, you call, you plan a way of escape and get out. If he's physically abusing you or the children, get out. But emotional, spiritual, all those other things. I feel like women need to seek the counsel of an older, godly woman to really decide because women are so free to call everything abuse today. Everything's against man and everything's for women. Women have no responsibility. Patriarchy destroys, has destroyed men and marriages. No, that's wrong. Not all women are abused. Not one woman I mentored was abused in any way. She needed to learn who she was in Christ.  She needed to learn to stop nagging and quarreling and manipulating her husband. She needed to learn 1 Peter 3, 1 and 2 if she was married to a disobedient husband. She needed to learn to win him without a word, living in subjection to him with godly behavior. No, this doesn't cause abuse. Cruel men abuse their husbands. God's commands do not cause abuse. Another thing is that these women don't think women should ever suffer. Suffer at all. If a husband isn't being as kind to them as they think or working too hard or whatever. And some women do suffer in marriage. They suffer because their husbands aren't godly, because they're not being kind or they're saying things that aren't kind or whatever. But read 1 Peter 2, the whole entire chapter, is about suffering for Christ and how we will be rewarded suffering for Christ. Yes, some women suffer in their marriages because they're Christians, because they're married to men that are disobedient to God's word. But then 1 Peter 3 begins with likewise. Likewise, there will be wives who suffer in their marriages. This isn't an automatic green card to leave and divorce your husband. It's not women. Many, many women have won their disobedient husbands without a word by living in subjection to them with godly behavior. The husbands decide to leave and divorce them. They need to let them go. There's a verse in 1 Corinthians about that, letting an unbelieving husband go if he leaves. But a wife should try to stay with her husband and win as long as she's not being physically abused. She's being emotionally abused or something else. She needs the wife's counsel, mentor, encouragement from an older godly woman. But I lost my train of thought. Whenever I'm thinking about what I'm going to say next, if I think about that, then I forget what I'm going to say. But anyway, we are called to suffer as believers in Jesus Christ. There's a woman named Connie Holquist, whose husband was in and out of jail for many, many years. But she never gave up. She always set a table, a plate, and everything for her husband.  Women need to remember this is a spiritual battle. One of my best friends, Dad, accepted the Lord practically on his deathbed. And he was a difficult man to live with. But her mother stayed with him. And he is now spending an eternity with Jesus Christ. We need to keep eternity in our vision.  On this earth, if we are believers in Jesus Christ, we're promised persecution, we're promised tribulation. There is no pain for life. But fighting for your marriage is a good thing. And if he's physically abusing you, like I said, you need to seek a way of escape and to get away from that situation. But if he's not, if it's a difficult marriage, find a godly older woman. Seek wise counsel from her and encouragement. And fight on your knees for your marriage. Win him without a word. God's ways work for most marriages.  But even still, I just don't, God, you know, and God can break the hardest heart. So faith can grow. I had that poster on my bedroom wall when I was a child, it was a picture of a rock split in two with a little flower. God can break the hardest heart. There's wives I know who are fighting for their marriages and wives who have won their marriages. So don't throw away those books. You know, a lot, they have good things to read. Don't read the books. Don't be influenced by those women influencers who are throwing out those verses and kind of encouraging all women to think that they're abused and that patriarchy is bad. And they're essentially saying that God's ways are bad and have gone full-blown feminism. We're promised persecution. We're promised suffering. We're not promised an easy life. But his ways are perfect.  Romans 8, 28. But he wants us to live in obedience to him. His will for us are his boundaries for us. So fight the good fight of faith. It's not easy, but hard doesn't mean bad. Life is hard, but do it for God, the kingdom. Do it for your husband, eternal soul.  Do all you can to stay together. Find a God of the older women and be mentored by her. Someone who will not speak evil about your husband but will just encourage you to keep on keeping on because you can do all things through Christ who strengthened you. Bye.


Tom here from Lauren systems, and we're going to talk about firewalls So if you want to learn more about me and my company head over to Lauren systems calm There's a hires button up at the top if you like to hire short projects such as configuring firewalls If you want to help the channel out in other ways or find discounts and deals on products and service that we talked about We have some affiliate links down below Now let's dive into the firewall comparison This is by no means an exhaustive list of very firewall and existence that would just well be beyond the scope of what I have time to do right now and Also, I wanted to cover ones that we frequently talk about on the channel because these questions come up a lot So I just wanted to kind of make a little matrix across about how these work Now we'll start with which ones we chose pfSense untangle a usg pro udm pro and the edge router series Operating systems pfSense fully open source and based on BSD untangle open source based on Linux But does have paid features not every feature in the untangle world is free Some of them are kind of like a sold as a subscription service because it's more than just the software It's also some of the feeds that come with it I won't dive into what is or isn't paid on this list because that's all documented on her site I've done reviews of it But in if you're thinking about any of these you have to look at some of the pricing and what features come with them Now these are a little different over here. I do know I'm saying edge OS I do know there's somewhat Linux based and things like that But I'm they're not the same as untangle and pfSense because the two the things that make pfSense Untangle stand out they're both software that you can just go download and load on your own hardware or There's software that can come on the appliances that they sell and it's the same software either way whether you buy an appliance from PfSense you buy a net gate appliance, which is the officially supported ones It's going to be the same software you get when you download it and the same goes for untangle They have the ability to sell you an appliance and or you can just go download software You cannot download and load your own build your own router with any of the ubiquity line up So I left on there what OS are running But I do I am aware that they are on Linux, but there that is a defining difference Which you can download is the unified software to find networking controller the unified SDN for the USG The unified SDN is a little bit different on the pro and then UNMS now They go more than just firewalls obviously So the unified software to find networking controller in the USG line will control the Wi-Fi will control the switches as well as the Firewalls and it supports multiple sites and we'll talk about that in the dashboard part the unified UDM and UDM Pro are a little different because the software defined networking controller comes on the box It's more of a everything integrated type of box And it doesn't allow you to host the software to find networking controller externally to manage the boxes And then the edge OS comes a UNMS and that's where the centralized management comes in PF sense does not net gate does not officially have any type of centralized management That is up to you logging into the firewalls to manage them yourself Untangle via their website does have centralized management So you can tie untangle boxes to a central dashboard to manage all the your untangle installs If you're a business that's managing multiple sites or an MSP like we are These software defined networking controller we hosted ourselves, but you can host it wherever you'd like and that is completely Allowed to control many sites at once in a single controller making it fairly easy to manage all of them And like I said, it goes beyond managing just the firewall But yes, it does have central management That you have the ability to host or get a hardware cloud key and hosted on that if you don't want to run it on Your own hardware or virtual machine or however you want to set it up the UDM the imperial like I said, it comes integrated and Completely integrated on the UDM system. So it's part of the management there But it does have let's say you deployed several of these and you want to manage them You can manage them through the unified dashboard It's each one of these can talk to the unified dashboard So you can start at the unified dashboard and then get into each of the ones that you've registered with it Edge Routers have UNMS the UNMS system is not as extensive as the software defined networking controller that you get with Unify But it is a way to manage it. I've not done any videos or deeper reviews on that particular product I will also mention. I've not reviewed yet the unified dream machine pro That's why it's in front of me is on my review list. It's in process But I've still looked at it enough to finish this little firewall chart Open VPN server now you're gonna see me talking about command line features We ourselves at Lawrence systems do not support it this time Configuring a lot of these things where it says yes via command line. They're kind of fuzzy on the official support There's documents on unifies website or ubiquities website on how to do some of these things But obviously they're a lot harder to manage because you're just setting it up all from the command line following several work instructions So they can be a little bit more challenging But at least I'm not gonna say no they don't support it But it'll be yes via command line and this is where people get confused because they think that hey It's got a web interface. Therefore every feature that it has must be accessible via the web interface And that's not true for some of the other devices So open VPN server Completely supported in PF sense none untangle. This is both for site-to-site VPNs or for users logging in There are different user managements built into both PF sense and untangle so you can integrate your users build lists Etc. And for example You have like a radius server you can set up or different user lists or use external authentication from there's A ton of diversity and how you can configure the open VPN server on both of these devices But over here you're just doing it via the command line So it depends on your ability to set up open VPN from the command line and add the features that you may want and get things going Working as a client same thing really easy now What does that mean when you have a firewall as a client for example if you wanted to use a VPN service? Then you could have policy routing where you say hey I want my whole house or at least these computers to go out via the VPN to wrap everything in the VPN it can facilitate that That is both supported on PF sense and untangle once again that comes down to command line configurations on the other ones IP sec is supported in all of them L2P VPN supported on PF sense does not appear at least I through Google searching and look I did not see any support for it on untangle They do support though the IP second open VPN. I did not see L2P specifically on there But not me I don't recommend using the L2TP VPN It's usually IP second open VPN or the two more popular ones anyways But yes via command line on the edge router now policy routing kind of mentioned it with the VPN This is just where maybe you have multiple WAN connections or WAN plus VPN or some mixes in between They have really Complicated policies that you can do within PF sense They're not complicated to do but they can get complicated. I've done videos about how policy routing works That is completely Fully enabled with the web interface is extensible as you want to do You can get really granular with it with all the options same thing with untangle They have a lot of policy routing options. Once again, we're back to a command line over here It's not like you can do it But of course if you're setting up a VPN and you want certain devices to go out that VPN You've already set up for the command line. So yes the policy routing is not to go through the command line as well Intrusion detection intrusion prevention system Saracada or snort you actually get two choices with PF sense you choose which one you want Untangles baked in Saracada is part of their offering When it gets over to the USG I pretty sure and someone will correct me if I'm wrong But it's a Saracada under the hood, but they're not really exposing it and what I mean is it's very basic It doesn't have the fine grain show me the rules every little detail in there Where you can adjust the feeds and a lot of fine tuning So it's kind of just I should have put yes basic, but that's best I can do is say yes It has it so this is where things get a little fuzzy of does it check the box of yes I wanted an IDS system or does it really dive deep into giving me fine grain control over my IDS system? And it's not available on the edge router system And I believe it's partly because the edge routers don't have the ability to run it at speed I'm not exactly sure but it's even free a command line. It doesn't seem to be supported very well from anything. I've read I Didn't find any instructions on it DNS filtering I've done plenty of videos on PF blocker gives you tons of fine grain control custom feeds Etc for doing everything from blocking certain sites blocking lists etc It's all based on DNS filtering it is supported on tingle not pf blocker But just DNS filtering in general not supported that I can find in a USG USG pro as of right now It's a beta feature so it's kind of basic they've started building it into here doesn't give you a lot of fine-grain Controls so beta basic and no one here g.o.i.p filtering same answer It's the facility by facilitated by pf blocker inside of pf sense But untangle it's part of this part of the integrated baked-in offering that they have it's not a separate Anything matter of fact that all the modules from untangle are just untangles modules that you either get for free or buy as part of their Premium features not featured here the basic feature here web content filtering So yes squids quick guard is supported in pf sense I've done videos on why I'm not a big fan of it to me It's not a smooth operation and Generally speaking man in the middle SSL filtering just becomes a headache of figuring out which sites are broken Which sites cause you problems on it? Untangle has a deeper integration for it. I've done a video on it So I think they've done a nice job of wrapping it all together making a lot easier to do it Especially when you want to have listings of sites and stuff like that There's a lot of people if you spend some time in the forums looking at squid You'll know why I don't care much for supporting it It's kind of becomes a job of sorting out what things go wrong with and this goes for untangle to some extent as well The difference is as part of the premium feature of the web filtering They seem to have pretty good feeds on it But the web filtering in man in the middle SSL can sometimes be challenging. This is an advantage I will admit some of the larger commercial firewalls have because they actually will have a package They load on each workstation to help manage them at the same time So it's not just installing a SERP with a whole system around it So there's some trickiness to doing that. It's not my favorite way to do it at the firewall level It's usually something I prefer other applications to at the workstation level. This is not something supported by USG The UDM or the edge router. They don't have any man in the middle SSL now QS traffic shaping It's advanced on psSense. It's advanced on untangle You have a lot of options a lot of fine-grained control you have over all the different traffic shaping things you can do It's kind of basic on USG. They do have certain quality of service They have it basic on the UDM. There is some command line options where you can get a little bit more advanced with the edge router WAN failover Yes, son of psSense not just WAN fell over multi WAN multi WAN And I say that twice because you can have three or four connections if you want There's a lot of different flexibility because when you're defining how many ports you have whether you buy a neck gate appliance Or you build it yourself you can configure as many ports as you want to WAN. You're not limited to just that you are On the hardware for depending on the USG They have hardware fail have two hardware ports on there So yes, you can do failover one or the other on there and then the UDM pro You can the UDM the unified dream machine just doesn't have a second WAN port on there So I don't see a way to make it do WAN failover and of course in the edge router. Yes Load balancing that's a little bit different than failover where you when you want to share and do that once again You've got a lot of advanced controls For how you may want to do that because you can tie it together with policy routing for load balancing on psSense and on tingle And the USG has it the UDM pro. I believe I seen it in there I did not test it yet So this is pre review of it and it's obviously a very new product But it appears to be the same unify USG software. So I believe the option should be there. Yes via command line there Active directory integration. I added this because this question comes up a lot about when you want to build Complete integration now. Can you do a pfSense? Well? Yes, I know someone's gonna point out a work instruction where you load something like LDAP Connector inside a pfSense and then create an LDAP connector inside of there But I'm referring to like native integration for active directory That is something that untangle does have any other ones don't have so you can start doing I'm not gonna dive deep into it But you can start doing more when you have untangle you want to have it connected to the way your users are tied to your active directory captive portal yes on the pfSense yes on the untangle I Said yes via the software to find networking controller on these because just to make sure I'm clear It's not actually the firewall that this lives on So you do need the software to find networking controller up and running to get the captive portal to respond to captive portal requests So that's important distinction now technically on the unified dream machine series because the unified software controller runs inside the same box It's gonna be on at the same time because they're one and the same and this is not a feature inside the edge router So but it does have it those are our features Let's encrypt certificates and I bring this up because this Question is coming up more and more of you know, how do I install a cert and how do you automate that? Well, that is a plug-in for pfSense that is integrated I seen some people talking about how to put it in some of the other things But it is a native web interface enabled just turn it on it supports the ACME protocol for doing let's encrypt certificates and that's important because HAProxy this is a really popular package to create reverse proxies for things and it's natively built into PfSense so you can turn on let's encrypt to have your certs and then you can pass those search around to all the things behind there and Right now the way things are going with some of the different browsers They're getting stricter and stricter on the way they prefer certs and you know, not everyone wants to do the click-through Running those two things together HAProxy with let's encrypt is a great option to take and put those proxies in and of course you can set up in front of other services you have in there and this is where PfSense has those some really advanced features to sit in front of Servers and then balance between them HAProxy between them and all the features that comes with it So I'm not going to dive deep into that right now, but it is a pretty advanced feature So obviously something a lot more than home users might use but people building a home lab or even businesses I know that are using HAProxy for their systems in there So it's definitely a cool feature and yes, I will do a video on it at some point in time It's on my to that is on my to-do list. I just got to figure out when to get it on there So hopefully this was helpful. I will leave a link to the spreadsheet I will try to do my best to keep it as up to date as possible for you And I'll revisit it once more because these features could change new features could be added and some of these things could change They could suddenly have a new version of the software-defined networking controller that opens up a lot more features on these The unified dream machine is a very really recent release that I haven't even reviewed yet here in February of 2020 Like I said so there could be a whole lot more features coming down the road and that's kind of the beauty of software-defined networking with Reasonable hardware it just keeps getting better. And of course we have the new version of PF sense We'll be out and guessing when it's when it's done. I don't have a date of course But there's more features coming in the new version is gonna be some more enhancements So hopefully this was helpful or maybe you're more confused than when you started But these are frequent questions and hopefully this matrix helps and maybe later If I feel real inspired I'll find another firewall to add to this list and slowly build this list up and add it on there But as you can tell the challenge to is they're not always yes or no Answers they're kind of more in-depth because saying it does something versus does it do it? Well is a very loaded question and I did leave out Dashboards because I don't even know how to define that the dashboards look wildly different on these different devices And that is combination of personal preference and how you want to you know How fine grain you want to do that that would be its own video I started in that part and that actually took me a long time to think about But was very difficult to be concise on so I omitted it from the video Just so I can get the video done. All right. Thanks And thank you for making it to the end of the video If you like this video, please give it a thumbs up If you'd like to see more content from the channel hit the subscribe button and hit the bell icon If you like youtube to notify you when new videos come out If you'd like to hire us head over to laurancesystems.com fill out our contact page And let us know what we can help you with and what projects you'd like us to work together on If you want to carry on the discussion head over to forums.laurancesystems.com Where we can carry on the discussion about this video other videos or other tech topics in general Even suggestions for new videos. They're accepted right there on our forums, which are free Also, if you like to help the channel in other ways head over to our affiliate page We have a lot of great tech offers for you and once again Thanks for watching and see you next time