Hello everybody, and welcome back to Information Systems this introductory  course. You are almost done. We're in Module 10, already in week 10, and we're going to be talking about how we actually develop information systems and what goes on behind the scenes to get these technologies in our hands, in our  pockets, in our desktop and ready to use. So first, I would like to start off with a  prayer, if you'll join me, Dear Heavenly Father, I'd like to thank you for each and  every student who's come here to learn, and I hope that they have that every  student has their their mind wide open, their heart wide open, they're able to just understand what we're what we're learning, and be able to really apply it for the  betterment of their families, of their workplaces, and just to serve you better. So  in your heavenly name, we pray amen. We're going to jump right into the week  10 IS development, and we're going to go ahead and talk about the learning  objectives. Now that we fully covered the components of an information system.  We're going to talk about actually making them and creating them so upon  successful completion today, hopefully you're going to be able to explain the  overall process of how you develop a new software application. We're going to  explain the differences between software development and methodologies of  there's there's different approaches you can take for developing software. We're  going to talk about some of those differences. We're going to be able to explain  the differences between the different programming languages used to develop  software, and understand some of the issues surrounding development  websites and mobile applications. You know, some of the challenges that that  exist. And then finally, we're going to identify the four primary implementation  policies. So programming, programming is needed. There we go. I'm going to  put myself in that corner right there. Programming is needed to take ideas or  business solutions and bring them to reality. So if it's something that you're  imagining and something that you wish you could do with your technology, with  your hardware and software, programming is going to be needed to have those  those tasks executed. Small changes can be implemented in a short timeframe  with a streamlined process, and then larger changes are going to require a  software development methodology, and those are going to guide and manage  the process, and then we're going to talk about agile, we're going to talk about  lean methodologies, and those those ways that we can have a development in a really logical, patterned way, where it's it's comprehensive And it's consistent. So the systems development life cycle this SDLC, you're going to see this in the  book and in our slides. In this way, SDLC developed in the 1960s to manage  large software development projects still in wide use today. It's called waterfall  methodology. It's very structured. Each phase has an end deliverable that you  need to turn in before you go on to the next phase. And every phase has to be  completed before the next one can start in this waterfall methodology. And then  the phases are are written here. I'm not going to go over each one of them with  you in this in this waterfall methodology, from preliminary analysis all the way 

through maintenance. But if you would like, this is in your textbook and in your  supplemental readings that you can go through and look at each one of these  methodologies and the phases involved. And here they are. Next one there's  this rapid application development, RAD, this is going to focus on quickly  building a working model, getting feedback from users as it's going. And then  we're updating the working model in real time. This is best for smaller projects. It gives users the availability, availability to give feedback. So in real time, you're  asking those users, how's it going? What? What do you need? What could be  better? So the overall requirements are defined, the team is formed. We're  deciding how feasible it is. And then we go right around the right around the  phases here and again, I'm not going to go through. Each individual phase. But  if this is something that appeals to you in terms of developing an information  system and software development, this would be a place to start if you are  interested in either the waterfall approach or the rapid application development,  the R, A, D. Now we're getting into the agile methodologies, and this is a more a  more current method. I am personally a Certified Scrum Master, so scrum uses  these agile methodologies for an iterative approach. And so what you're going to notice here for Agile is that it's going to be small teams. They're cross functional, and it's done in some very small increments. So it's daily status meetings that  you're going to hold short little sprints or time frame increments for each change, and then a working project is completed at the end of each iteration. Each little  version that you do, you're going to demonstrate it to your stakeholders and  seek their feedback. So that's part of those, those agile methodologies, which is  when we're talking about, for instance, like a mobile application that's being  built, more than likely, it's going to be some part of this agile or some combined  method that will include some strong leaning on the agile methodology. Next  we're going to talk about the lean methodology. This is the last one we're going  to talk about. So this takes an initial idea and we develop a minimal viable  product. So the MVP, this works best in an entrepreneurial environment. So  we're going to, well, we could start anywhere in the cycle, but we're, if we're  building, then we're going to write some code and we're going to measure, then  we're going to measure the data. We're going to learn what happens. Once we  learn what happens, we're going to get ideas and start building again. And the  cycle just keeps repeating itself for that lean methodology. And so for this one,  it's going to be that just in time module, or just in time methodology, where it's  when we're talking about Lean, it's going to be just ultimate efficiency with  resources, whether those are human resources, financial resources, you'll notice on here that there isn't coding that happens until that measurement and the  learning takes place. So that is the lean methodology. And again, if you have an  interest, by all means, there's more about each one of these software  development methodologies in the supplemental readings. So as you're moving  through the feedback in this one, it's really important to get it's going to be the 

feedback is going to be given to two different forms, direct observation and  discussion with the users, so it's asking them how it's going, and then also  usage statistics gathered from the software itself. So people can say they love it, but if the statistics show they're not really using it, that's going to be, you know, a better glimpse into the real picture of what's happening usually requires several  iterations, as the team uses feedback to decide, you know, to make good  choices. That's why we do small little sprints. And then the team is going to  decide whether to continue in the same direction, or maybe pivot in the direction of a new, minimal viable product. All right, you'll notice in this course, we've  talked a lot about different kinds of triangles. This one is our Quality Triangle for  software development, and so we have quality time and cost and on this Quality  Triangle, so decisions are made during development that affects all three  factors, but only two of these factors can really be addressed that require  compromise or trade off, because you can't compromise all three points of the  triangle. So you can pick two and make changes and compromise without  choosing the three. So if we start on the left there at quality. You're asking  yourself for each one of those iterations of the software, does it meet the  requirements or doesn't it? Is the quality there? Are there minimal bugs? No  bugs? How's it working? We go up to the top of the triangle for time. Do we need to spend more time, or do we need to spend less time on this project? Are we on on our time budget, and then going down to the right we're looking at our  financial budget? Do we need to spend more money or spend less money on  this project? So there needs to be a balance among the three points of the  triangle. Here quality time and cost when we have a software development  again, focusing on two at the most, that you can really make some good  compromises programming languages. If you are familiar with programming  languages, you will know that there are, there are quite a few, and that this is an  area where you don't need to necessarily have a formal degree, formal  education to be able to make a very big impact in the field. If you do have the  skill set of knowing a programming language, there are were used. If you're  going to develop a new system, you would use these languages. And typically  there's multiple generations of a language. So looking here at the arrows, that  first generation, that would be something like machine coding, the zeros and  ones that we were talking about, that binary on and off switches. It's machine  dependent. As we move on to the second era, the second generation is going to be more of an assembly language, some English, like phrases, it is still machine dependent into the third generation, similar to a spoken language. So we're  really noticing some evolution and some maturity in the coding language. It's still machine dependent. This is going to be more of like your JavaScript, and then in the fourth generation here, faster development. It uses developer environments  that help generate the code. So when the developers are more involved in  setting the code, it is machine independent at this point in the fourth generation. 

And the examples of this one would be SQL, that we talked about, that SQL  search language, SQL and SPSS, if you're familiar with that. So that's going to  be that more of the fourth generation, fourth generation, machine independent  programming languages. All right, so when we are talking about software  development decisions, it depends how big your organization is, and it depends  what your goals are, but every new development project should decide whether  to create it themselves, using in house personnel, or whether to buy one that  has already been developed. So here's some if we're going to purchase one that has already been developed for us, there are some advantages and  disadvantages, and here they are. We see that it is less expensive to do it this  way. It's more quickly available. It's already been built. It's already been tested.  The bugs have been worked out. It already exists on the market. The  disadvantages of purchasing software rather than building an in house would be that the same software might be used exactly by your competitors. So if you did  have that competitive advantage of having the narrow focus that we talked  about, or your uniqueness, that might be really compromised here, of  purchasing instead of creating, then there's there's not really customizations that can be done if you're already purchasing a product that exists in the  marketplace, if you build that software yourself, and you use your in house  developers to do that for you, it's going to be completely customized to your  needs. So that's definitely an advantage. It's not going to be used by your  competitors. It's going to be proprietary to you and to your organization. So it's  going to help you keep that competitive advantage and the competitive edge  disadvantages, of course, is that it is more expensive. It's not going to be  available quickly. You're going to have to wait for a complete development  schedule and testing, and the bugs are going to have to get worked out, and it's  not going to be that ready to go off the shelf. Solution. End user computing. So  this is one of those steps right before testing, which we're going to be talking  about next, that others people who aren't in IT develop their own solutions that  aren't trained in programming or software development. This means that there  are programs that exist for let's say you are not you don't have coding  experience, you're not an IT professional, but you still have opportunities here  with this end user computing to go into a program that kind of has some guide  rails on it, even though you don't speak a programming language and you're not  familiar, you're still able to make some of these developments in information  systems. So advantages of doing this development is closer to those that are  actually going to use them. The end users have more input into the development of the information systems and the software, and another advantage is that you  may receive it sooner than. If you were to go through IT channels from the IT  professionals that might have a very full workload doing these iterative designs  that we talked about. Disadvantages, of course, several applications may  perform the same functions. It's a little more clunky. It's not as if you were going 

to design it yourself, it would be much more customized. It's probably not going  to be tested and bug free. It's going to be something that is a little more  cumbersome and it's not always backed up the way it would be if it went through a formal design process with a professional designer, but it's an option. Testing,  this is going to be a critical part of any development. We're going to test it out.  We're going to check for bugs, fix them before the system is implemented,  before it gets rolled out. I currently work for a mobile application, and we have  been live in the app store for about a year, and live in the Google the Android  market for about nine months, and we are still all the time working out bugs,  being able to go through the software and find problems that we can fix before it  goes to a much wider audience. So we look at the different tests available, the  unit test, the system test and the user acceptance test. So again, of course, as  you drill down the unit test is done by the programmers who make it for their  modules alone. Kind of a hard way to test it, though, because you know if you  made it, you understand it. And so a better test would be when we drill down to  the system test. This is done once the individual units are bug free. It's  integrated with other bug bug free models. And now we test it as a whole. So it's not just one programmer testing the thing they made. Now it's the as a whole.  We're going to test the whole thing together. And then the user acceptance test  is going to be the most rigorous of the three, because that's the actual end users are putting it to the test, and we're checking usability. We're checking  functionality, bugs, errors, problems. It's going to get tested and retested. There  we go, until we get it right. So that's the testing phase of software design. So  okay, so let's say we have this product. We've We've tested it, the bugs are  shaken out. How are we going to implement? How are we going to implement?  Is the question of what we've made. So there's several implementation  methodologies that exist, and here's a list of them, the first one being this direct  cutover that you can see this is going to be a new system is turned on, the old  system is turned off. It's a direct it's exactly how it sounds. A direct cutover. It's  the riskiest, but it's the least expensive. Because the reason it's least expensive  is that you don't need to support two systems at the same time. You're just cold  turkey, turning one off, turning the other one on. And the reason it's risky, of  course, is that if there are any problems, you don't have that legacy system in  place to fall back upon. You are committed to the new methodology. The next  one on the list, here you see is the pilot implementation. And this is a small  group is going to use the new system first. It's going to have a smaller impact on the organization if something goes wrong and you still have the old system  running, just in case. So if you if the pilot group does decide, listen, this just  wasn't ready yet. We're still working out too many bugs. You still have the other  one in place for the vast majority of your enterprise or your organization, and it's  just that pilot group that is going to be affected now. It certainly has pros and  cons and the fact that it's going to take a lot longer to roll out something in a 

pirate in a pilot model than it would be to just directly cut over parallel operation  is the third way that we're going to be able to implement this new methodology,  and that's going to be all transactions are entered into the new system and the  

old system simultaneously. Very expensive to maintain two systems, so you  wouldn't want to do this parallel operation for very long, but it's the least risky. So depending on what type of computing you're doing, how sensitive the  information is, if you're prone to how catastrophic would it be if you lost all this  transaction data, this might be what your organization would really need, if it's  very risk averse, or if it needs this type of security, you can identify the bugs and  still go back to the old system if you need to without really risk, like you would in  some of the first the first two. And then finally, we have our. Phased  implementation, and this is our new functions are implemented as parts of the  old functions are turned off. So this is kind of even those people in your  organization who are really dragging their feet and they don't want to do the new methodology, eventually they're not going to have a choice, because the old  things are going to be in phases, turned off, and you're kind of forced to use the  new one until eventually you are you have slowly moved completely from the old system to the new system. I'm sure in your workplaces, you have experienced  one or more of these implementation methodologies as companies have rolled  out new forms of technology to you. I think I have experienced every one of  them. I would say my favorite is probably that pilot implementation group, kind of letting a few go first, see how it goes. You still have a bit more speed, but  severely less, a lot less risk. So I think that is kind of my style in terms of  implementation, but certainly pros and cons for all four methodologies. All right,  so how do we support when we're implementing methodologies, we don't just  say, Okay, guys, here's the new here's the new system. Figure it out and go. Of  course, not every implementation requires support in two key areas, and here  they are. Here on your screen, we have change management and maintenance. So look at the change management one that's going to be all proposed changes should be communicated to all affected personnel, including IT, and IT should be managing which code has been tested and signed off by the end users prior to  implementation. So it really takes the reins on this one and makes sure that  testing is happening the way it should, and that they are managing all parts of  that change over from one system, from the legacy system, to the new system.  The next area where your employers are going to need support is in  maintenance, and often newly implemented systems still need changes for fixing bugs and management needs to ensure that the system continues to run and is  aligned with the business priorities and is still working well in the day to day,  even though we have, you know, our new systems in place. So we have made it to our our summary here, hopefully, as we've gone through the different ways  that we can actually build a system, talked about the coding language,  explaining that the overall process of developing a new software application, you

can kind of talk, talk to that process, the differences between software  development methodologies and then the programming languages that are used to actually develop that software. And then, in some cases, like we talked about, not even having to know a programming language and still being able to  develop software. And then finally, understanding some of those issues  surrounding the development of websites and mobile applications and how  we're actually going to implement them once it is created. So we are coming  back next week for our globalization and the digital divide, and kind of what that  means regionally, when we are, you know, so connected, and what it means  globally to be so connected. We're going to talk through the pros and cons of  that and this digital divide that you may have been hearing about. That is for  some people will tell you it is shrinking. Others will tell you it is growing rapidly,  and we're going to look at the arguments on both sides of that for the digital  divide. So I am really looking forward to seeing you soon. Thank you so much  for your continued hard work and your just open mind to learn these new things,  and I will see you very soon. Thank you. 



Last modified: Monday, February 3, 2025, 8:32 AM