 Welcome back. This is still why in the morning and on our first segment of the day on Sport and Tech, we want to talk about the software development life cycle. It might sound a bit technical, but don't worry to not come back and what it actually means in the simplest way possible because we have an expert with us here. He's the CEO of Yada School of Tech Technology. He goes by the name Taumon Mwakesi. Most welcome Taumon. Thank you, Stephanie. You've been here before? Yes. All right, Kareem Utena. Thank you, thank you. All right, so we want to talk about the software development life cycle. Give us a little bit about your background and then now that we get into the question. All right, I've done computer science, studied computer science, then now moved into the career field for over six years in software engineering. Yes, so I'm a senior software engineer in doing many things right now. We have the Yada School of Tech where it's a coding school that we get people who don't exactly know about coding or even know about coding and we give them the knowledge of software engineering at various levels. Yes. All right, so we'll get to that later on. First, let's tackle software, the software development life cycle. So tell us first, what is software development when we speak about software development before when we get to the life cycle? Software development is actually bringing something from an idea to an application that you can use, whether it be a mobile application, a web application or any other system. That's what we call software development. Okay. Yes. All right, so when you speak about technology, there's a lot of, you know, people have developed software and there's, there's usually something, there's another techie who came here and said that sometimes you confuse IT and tech. When you talk about tech, people think of IT. So what's your view on that? Yes, information technology is more general. It's like for everything about technology. Now, when we talk tech, more specifically coding or software engineering, we are getting now down to the software because there's hardware, there's software, there's information and security. There's a lot of things just like the techie said, like it's not one umbrella because many times I've also seen that where someone thinks, oh, you are a software developer. I have a machine that has a problem. Will you come in, fix it for me? Fix it. Okay. Just like any other field where you have a major thing but people go on specializing. Different things now. Yes. Different specialization. Yes. All right, so now what are the different cycles that are there in the software development? Okay, so the software development life cycle is basically the process of now delivering the software. Mm-hmm. You have someone who needs a particular software, a client or maybe it's yourself. You want to start from somewhere, you have only requirements. You only know I want to make an application that does ABCD. Let's say, for example, I want to make an application that allows you to order taxis and do everything. Maybe that's how they are thinking with Uber as they began. All right. So how do they get from there to the final product? Mm-hmm. So the life cycle enables us to be open and transparent in the process whereby you, as a person who is not technical, you know exactly what's going on at every face of the development. Okay, so as a person I'm supposed to know, if someone is developing an app for me, I'm supposed to know all that. Mm-hmm. All right. Yes, you're supposed to be in there now the whole time. It creates that transparency. Mm-hmm. Because many times out there I've had software developers get a bad rapport. Okay. Yes, because of not completing software. So someone comes, they say this software has been made by three people. It has never been completed. Mm-hmm. The software development life cycle enables us to mitigate those risks. Okay. Yes. So for someone who, you know, someone who wants to have a software developed by someone, what are they supposed to know about the different faces? What's the face one? What are the stage two, three to the last one? Okay. So the life cycle is divided into two. You can say it comprises of faces and models. Mm-hmm. The faces are common in all the models. It's like the face is like a manual. Okay. So the models define how you choose to implement them. Mm-hmm. So the faces are six. The first one is planning. Mm-hmm. So we sit down with all the stakeholders and we give me the requirements. We understand what it will take to actually build this software. So that's why the cycle becomes of help, because we're able to identify things early. Mm-hmm. And now we're going to need this much of a workforce. Yeah. And we can work with this much budget to deliver this kind of thing. Mm-hmm. So after you plan, then you go to designing. So the design part, you live to the technical people, because that's why they make the choices of technology. Like there are many programming languages. Why do I choose programming language A and not B? B. That is now in the design face of it. Mm-hmm. Okay. Mm-hmm. We're actually coding out the solution. Mm-hmm. Yes. So we plan. We have planned, we've designed. Now we are with the team. We are now coding out the solution. Mm-hmm. So after implementation, that's why you get to testing. Mm-hmm. Yes. So now we're just testing to know. You gave me these requirements. I want to see if these requirements are translating to this particular software that I wanted, even as we go on. All right. So that's where the transparency comes in. Mm-hmm. I can make one requirement, then come back to you. Okay. So the testing part, is it what we can compare to? What do we usually call it? A prototype. Yes. So a prototype, and then you test it, see how it's working. Yes. And then see if you need to do corrections to it. Mm-hmm. All right. Yes. And depending on the model. Mm-hmm. So I'll mention the models so that you see how they kind of play out together. So we've tested it. You've assured you as a client that this is what I wanted. Mm-hmm. Now we get to deploying it. The final stage. Yes. Now we're deploying it to a current version that you can access. Mm-hmm. You as a user. Now I'm not just showing you from somewhere. Okay. Now you as a user. If it's an app, I've given you a test lab. A test lab. Mm-hmm. For example, you find, people will tell you this is a beta version. Because this is the one that we have given you to test. Mm-hmm. So that we find out all the errors and we finish and we understand what is there. Okay. So normally even when you're deploying you have like two versions. You have the one that I use as a developer. The one that I use for testing. Mm-hmm. And the one that is in live. So that when I make corrections, I don't just put them on live. Oh. Because that can affect, can crush everything. Okay. Yes. Because when I put them, when I put it on test, I'm able to see how it will react. I'm able to test it. So by the time I deploy the solution and depending on the application, the repercussions are different. Imagine people like M-Pesa if they just rolled out every new change and kept disrupting people. That would be terrible. Yes. So that's why they test out something before they ever come to give you. Okay. Before that. Yes. Then finally it's just maintenance now. Mm-hmm. Now we are sure this is what you want. Now it's maintenance. I want an upgrade on a certain feature. Mm-hmm. Something does not work quite like what I wanted it to. Yeah. Because many times even clients don't know what they want until they see it. Mm-hmm. When they see it is when they're like, okay, this is not exactly what I had in mind. So which brings us back to ensuring the planning phase was good. So this life cycle enables you, because you'll have a document at the end of it that all of you are referring to. Mm-hmm. And say this is our document. This is how we are going to be building the application. Okay. So you'd say that the importance of going through the life cycle is to ensure, you know, the product is of good quality. Yes. That the delivery is good, right? Yes. Okay. That's how you end up building high quality software. Mm-hmm. If you go through without short changing the process. Mm-hmm. Because developers can build it either way. But with this one, even the customer satisfaction is increased because they can see what's happening. They can see where their money is going, where their resources are going. They've been through that process. Yes. Together with you, one way or the other. Yes. What about the models that you're mentioning? Okay. So the models are four. Okay. Yes. Just to bridge through them, there is one called waterfall. Mm-hmm. Now the waterfall model, just as it implies, makes sure that every step depends on the other. We cannot design before we plan. We cannot implement before we design. And so on and so forth. All right. Yes. So everything depends on the other. The other. Yes. That's the waterfall model and then we have. Now we have another call iterative. Mm-hmm. This one, we can take a small set of requirements and start building. It's when we require speed. Okay. More than everything. Because you can take, you can find that you can take even a month to just gather requirements and you don't have a month. Okay. Yes. Speed. Yes. Right now, we are in an era where speed is very important. Mm-hmm. Because if you blink, someone else has made that software. So you need to make your version. Mm-hmm. Put it out there. Okay. And what sort of makes one decide what model that they want to go with? Depending on the kind of application you're building. If you know all the requirements upfront, then the waterfall model becomes easy. Okay. Because upfront, I can just go from start to finish. Mm-hmm. I'll not find any surprises. But maybe you are dealing with something that's a bit more dynamic. Yes, you know the requirements, but it's a bit more dynamic. Mm-hmm. So you'll want it to be iterative so that I can always refer to the process. Mm-hmm. Do it again until I finish. Okay. Mm-hmm. How can you ensure effective communication and collaboration throughout the software development life cycle? Yes. Now, what happens is, normally when you're doing this, you have someone like a product manager or a project manager. Mm-hmm. So their work is to, this is the liaison between the developers and the stakeholders. Mm-hmm. So he's able to interpret the business needs and able to tell the stakeholders this is what is going on. Mm-hmm. So normally you have like one software that can help you to align all of you in the same place. So you have software like, maybe you've had a click up and things like that just to help you align your tasks. Right. So anyone can come in at any time, any stakeholder that is at the top there and see, today they are building the login page. Mm-hmm. So at the end of the week, authentication or logging into the system will be possible and they can test that. Mm-hmm. So they're able to be at par because everyone is, and when something delays, you can see why it has delayed. We needed a certain license from the government to execute, maybe it's a financial application. There are licenses involved. You can't just build your application there you want and do what you want. Mm-hmm. So as you wait, you can indicate there we are waiting for a certain certification from the government to do ABCD. We have been told it will take three working days. Everyone is on the same page. All right. So that, you know, there's effective communication throughout the whole process. Yes. That also promotes, what do you call it, reliability of the software throughout the process again. Yes. All right. Now, what are some of the common challenges that are faced during the life cycle, the development life cycle? One of the biggest challenges is something that we call scope creep. This is when the scope keeps widening and widening and widening. Mm-hmm. Because you are a client, you've sat down and you've decided no. The way I envision this working is not what I said. So I come back and tell you now, let's not do it like this. Let's implement it like this. I say okay. Then we start implementing it. Then you tell me, actually, this is not what I had in mind. So it becomes an ever-ending process, just iterating, iterating. Mm-hmm. So this enables us to stick to the plan to start with. And by the way, you can tell them now, remember the requirements you gave us, we are going to build those ones first. Then after we finish those ones, now we are going to add any additional changes and this is what is going to cost you. That's why you take some time to do the actual planning. So the biggest challenge you'll find is that scope creep. And you'll find that a client or the stakeholder is like, the developer is not doing what I want and the developer is like you, you're adding on additional requirements that we have not talked about. So it becomes an ever-ending blame game if this process is not handled properly. That is the biggest challenge you'll ever find. I can only imagine being a customer and you don't understand what is happening and the work that goes into it. You just wake up, you have a new idea and then you want it to be implemented. You've seen something. So I understand that that can be a challenge. So the solution to that is you first stick to the requirements and then the additions come later on in the process. What about the maintenance? How do you ensure successful maintenance of the software even after the development? Now that's why when you're planning there's a place for maintenance. So there's a contract or maybe an agreement where we've said, I'll give you maintenance at such a fee for X amount of time. And as I'm doing this, these are the tasks that are under maintenance. Like it just takes a lot of clarity. You say maintenance means, does not mean new requirements. It means making sure you have like 99% uptime. There is no time, your system will go down because I am here. So you can call me anytime and I can make sure your system is up. That's maintenance. Making sure there is enough space to handle your things. Maybe we started off and now the business has grown. Now we have more users. I'm there to help you scale. That is maintenance. As opposed to you've thought of a different direction. When you do that, we come and we make like an amendment on the whole process. And we take it through the life cycle again. Because we treat it as a new thing depending on what you want. But it's very adjustable and it takes two parties who are reasonable. Yes, to make it work. You've spoken on maintenance, you've spoken about system downtime. What usually causes the system downtime? The key cause is lack of proper planning. See when we sit and we plan and we say we are going to launch. By the time we've gotten to the design phase, remember the design phase where now we are choosing the technologies and we are saying because it's Uber we are going to use such and such a technology. If you didn't plan well, you'll use the wrong technology. Then you'll realize what I have here cannot sustain the traffic that is incoming. Proper planning means I have foreseen that even you're going to have 8 million users or whatever. And still it's not going to have downtime. For example, let's say you're dealing with something to do with elections and you're creating a portal for everyone to see. And maybe you envision only 1 million Kenyans can have access. Then shock on you, more Kenyans come on board. And you see like a system like that is very time sensitive. If it goes down you start asking why are we having system downtime, what is happening. So if we didn't plan well, we needed to have accounted for the fact that this could kill. So we put in the proper architecture to ensure that if it kills it's just a very minor adjustment and I can accommodate more traffic. Again, you've mentioned when you're speaking about technology in the design phase it's important for you to know the kind of technology you're using based on the kind of software you want to have. So when you talk about technology, are we speaking of the language, are we speaking of the model or are we speaking about it exactly? Now that's where software engineering comes into play. At the heart of it, many times the language you're using does not matter. What matters is the person behind it and seeing how everything is connected to each other. Then now it's about choosing the right tool for the right job because there are tools made specifically to help some kind of systems and not some other kind of systems. For example, my approach in creating a chart system will be different in creating a system that is an e-commerce system. So I have to factor that in as I'm doing that, yes. Okay, so what kind of, I want to get some sort of example. What kind of technology goes into creating a chart system and what goes into creating an e-commerce system? Okay, so when you are thinking a chart system you are thinking real-time exchange of information and data because I want to chart, you want to. So mostly you'll use some kind of architecture that allows for something we call events, meaning I'm responding to what is happening. And this responding uses a technology called WebSockets. So it's like they are just listening and waiting. It's like an open channel. When you drop a chart, it appears. That's why you find charting to be interesting. You are there, you are like on Facebook. You see someone is online. Why? Because there is like an open channel listening. The moment they get online, they tell you this person is online. Then you can chart them. The moment you chart them, the channel is open. Just waiting and listening. Your channel is open on your side, their channel is open. So I have to factor that in as I'm thinking because if I am building an e-commerce system I don't need to use that technology. Because someone will get in when they get in. They'll make a purchase when they make a purchase. They can order. Yes, for example, when you are using Amazon you are not exactly charting with anyone. You are going doing your research. Maybe even today you look at something. Like I don't want this. Tomorrow I look at it again. So when I'm doing e-commerce, I need to mostly support things like payments and security. I need to think that way more than chart. So even in my choice of database systems I need let's say more integrity when I'm using an e-commerce system. Meaning, I need to account for every transaction. That's how you're able to get a refund. That's why I know if you send money, let's be told send the transaction code. Because someone sat and thought, we need to be very careful with handling finances. Even if you send money to someone and it never reaches the person, we need to find a way. I don't know if that has ever happened to you. But I've withdrawn money from my account and it never arrived. Oh, I thought sending money to someone. Or even sending. Okay, so there's that kind of technology that has been put in there to help you get back your money and just focus on security. Okay, makes a lot of sense. Now, before we go to what you do at Yadda School, there are people who have developed software. What is usually the problem? Because they develop software or come up with an application but then it doesn't receive as much engagement as they would have wanted. What's usually the problem? Now you see now you're going to the business side of tech. Okay. Yes, you can make any tech, whatever you want. But if you don't have a client that is ready to use it, essentially any business you're doing, if you don't have a buyer, you don't have a business because you're not making money. Like any other business, the same way when you go out there and look at an area, you scout, you do a research, it's the same with tech. Before you come up with an application, you have to have users ready. Yes, there's something that we do that is called now research and development. I'm also very interested in the business side. So that's why, mostly programmers are just there to code and finish and give you the solution. Whether it works or not, that is up to you. Yes. Okay. So what you do in research and development, you look at your competitors, you look at what you're trying to achieve, what are you bringing, what is the unique factor you're bringing to the market. You're looking at all these things and you're gathering business knowledge and even possibly partnering with the right business minds. Because whatever you want to do, maybe someone has done. Okay. Yes, and whatever client you may want is someone else's client. So if you just study the behavior of how customers behave, you're able to arrive at the conclusion. So when you have that problem, either you have poor salesmen, you have a good product, but bad people who are selling it and they don't know how to market it. Because also how you market is also a difference. I remember there's a time, April, they went back to marketing. If you see how they came up with think different, that Steve Jobs was just saying, now we need to, people need to identify with our products uniquely. Let it be outside the fact that it's a laptop, it can do ABCD, it's superior. All those things are nice. But right now when you'll see that, there's a sense of a feeling in anyone using an iPhone or a MacBook or anything, they just feel like they are a class above. Yeah. Yes, because that was the idea. Trillian hack. If you see all the advertisements out there, when you see Nike, for example, advertising, you won't know they're selling shoes. You'll see an athlete, they'll tell you, just do it. You'll see Kipchoge, you'll see Cristiano, you'll see. So they already start and thought, people are buying what they are seeing. So they are selling a dream. They're not exactly selling you. And all they do is sell shoes and products like that. And they make money. But they don't tell you to buy shoes. Nike shoes are the best. They are like this. They are comfortable. They are this. They realize that's not what people are buying. Are looking for. Yes. So they sell a dream. Yes. Okay, very interesting. A good way to look at it. And now that you're also good in the business side of it, for people, we're usually told when you're looking for an opportunity, especially in business, then look to solve a problem. Then that works. But now how important is it to integrate that solution that you're creating with technology? If you see one of the things that technology does, it expands your reach. Like that's why, let me give an example. At the heart of it, Amazon is not an e-commerce business. It's a warehousing business. Where we trust. That's why you bypass everyone in Kenya and go ship something from Amazon because you trust them. Yeah. They have built that trust. Now, if their shop was just located, they were also located in America and just stayed there, then the range is limited because they realize, oh, we can do shipping. So let's build a site. These people already trust us. Let's build a site. So they have expanded their reach by, I don't know how many, because now virtually anyone from anywhere can use Amazon and can trust it. And there are many sites, but why are you trusting Amazon over other e-commerce sites? Okay. So that's what they have done. They have used technology. It's important. Right now, everything we're doing is technology based. Whatever you want to do, you want to make sure technology is at the heart of it. Okay. Because that really expands your reach. You can, in a moment's notice, you can gain the right traction if maybe I use the right influencer. One influencer who has many millions of followers. Millions of followers. It's like, imagine, I was seeing like, someone like Cristiano has, I don't know, a billion followers, can imagine. If he just mentions your product. You have shut up, instantly. Yes. Immediately, over one billion people know about your product. Imagine if you don't use technology and you say, I'm going to market it, I'm going to go door to door. You will still make sales. But how long will you take? Not as much as you would have. Yes. And in this era, you need to do both. You can't just depend also on technology only. Okay. Yes. Because maybe you are, the person that's supposed to use your product has the money, is waiting, but they are not tech-savvy or anything. Okay. They're old school kind of people. What have you been to do? So you need to use both approaches, technology and that old traditional ways. Yes. Now, apart from you having knowledge, you know, sharing knowledge on software development, you also teach that and you have a coding score that set a school of technology. Tell us a bit about that. Why did you see the need to have that? Okay. So why I saw the need is, it was, it started within our church. Yes. I just sat down and I saw like we, our church is a very young church of very many young people who are vibrant and everything. Very much on fire for God and everything. But on that side, I saw an opportunity that these people, if given the right skills, if equipped, they can be able to do something. And many times, people don't do things like coding because they think it's beyond them. True. It looks difficult. It looks like someone who's very techie, has to do coding. Yes. And many of us people who've gone to campus and graduated, we think it's automatic. You will be surprised when you interact with people how many people have not gone to school, not done a diploma. They just finished at form four, end of story. Yeah. So when I saw this, I was like, if these people are willing, they have the machines, they have the internet. They just don't know they can do this. But they are there searching for jobs and saying how the economy, the government and everything. So I said, okay, let's try it out. So I offered free because for the first court, I joined and said, if you want to learn computer science, join. So the poll would join. I told them, you don't need any prior coding experience. As long as you know your way around a computer, basically, let's even say someone's just done packages. You are ready. Because I saw that these people, most of them maybe even don't have the money to do that kind of advanced. Because right now, any cause we're going to do an average of 50,000, maybe even a semester. Not everyone has that kind of money. But surprisingly, they are around because they are on Instagram, they're on Facebook, they're on these places. At form. Yes. They have the bundles, they have the data, but they just don't know what to do with what they have. So I saw, if these people understood the power that they had, because personally for me, I studied computer science, but most of what I learned, I learned after school. Really? Yes. Because when I went to school and as it was being taught, sometimes our lecturers don't emphasize how important these things are, how you have to navigate that cause yourself. Which also is on the part of the students, not just entirely on the lecture. Yeah, on them. But I saw the power after leaving school. And decided to impact the rest. So basically, anyone can learn coding. You don't have to have passion, specifically, passion in computer science by how important is it to learn coding or what benefits does it have? Coding does not just teach you how to instruct a computer to do things. It teaches you how to think. Most people that are coding will tell you that. As a programmer, your core thing, your core, it's like you're paid to think more than anything. Coding is the easy part. It's just like someone who's paid to communicate. They communicate different from you and you're like, you listen to them and you're like, I like what he's saying. You have the same thoughts, you have the same words, you have the same everything. They're just doing what you could do but doing it better. They have studied it as an art and now they can communicate better. So it's the same thing we all might know coding but my solution might be very different because we think different. So this is just a simple process of teaching someone how to think as a computer programmer but you'll find that it boils over into areas of your life. Like for example, the systematic thinking I've broken down. This I'm doing for software but imagine any other project. I cannot do any other project without planning because now I'm used to designing, implementing. So I'll want that order in some way because I've seen that kind of forward planning and what it does and that kind of visibility between me and a particular other client. So in everything I do I am now approaching it like a problem-solving opportunity. Interesting. Interesting way to look at it because sometimes it looks a bit hard and how long does it take for you to learn coding? You never stop learning. I can say that. You never stop learning. Okay. Actually the more you learn the more you realize the things you don't know because let's say someone there is an Indian somewhere right now who started coding at 10 years and is now 40 years. They're still coding. Yes. What they have seen and what I have seen for just over 6 years is very different. What they can do and what they can do is different. So there's always a higher level. There's always something that you can do. However, it varies like you're asking. For the basic level? Yes. The basic level it's more of your interest. So even in three months you can go from zero to a pretty good program. For three months I do nothing but code. 8 to 5. Code. 8 to 5 every day. Code, code, code and learn some bit of computer science because it's not just coding. It's learning the science behind computers that is going to help more than even coding. Because it's going to help you access various assets of a computer. That's what creates a difference. Alright. Interesting. As we wrap up on this what opportunities does it open for one to who learns this? Many opportunities like one you can right now for any business that you want to create and you want to have a technological solution it will cost you maybe 300,000 and above to just make the solution from a person who really knows what they are doing and everything. So if you go for cheaper people then keep complaining that's why you're complaining. So imagine first of all it can save you money and it can give you when you have an idea now you can code it yourself. Then also in the career field you can now do many things you can become a data scientist you can go into an eye you can go into many things you can go into just web development you can go into mobile development and they pay well but you have to be really good because no one is just going to give you money. Yes. Okay. Makes a lot of sense. Thank you. I think we are short of time so tell us where we can find you on your socials if someone wants to get to learn about coding from your school work and they get to pieces of your camera. Okay. So you can get us on Instagram at Yadda School of Tech it's our handle you can also visit our website that is yaddaschooloftech.com you will find all the information that you need to be able to start coding make a career in coding and anything else that you need and all your queries can be handled there my personal number If you are free if you want to call you then you can give it because I want to learn coding now even you see how this government embraces technology this is the time This is the way to go. Yes. Okay. So my you can reach me on 0727 13 64 85 that is 0727 13 64 85 Okay. And when you visit our handles you will get all the information that you need. All right. Thank you very much Salmond for coming and sharing the amazing insights. All right. That has been Salmond Mwakese the CEO of Yada School of Technology talking to us about the software development life cycle and this is where we put a cap on the tech segment and we get into entertainment I hope you are ready because we have amazing guests who are already in studio. We're going to take a short break and then we'll be right back. Remember the hashtag is