Agile Project Management: How to build anything Digital | Alexander F | Skillshare

Playback Speed


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Agile Project Management: How to build anything Digital

teacher avatar Alexander F

Watch this class and thousands more

Get unlimited access to every class
Taught by industry leaders & working professionals
Topics include illustration, design, photography, and more

Watch this class and thousands more

Get unlimited access to every class
Taught by industry leaders & working professionals
Topics include illustration, design, photography, and more

Lessons in This Class

    • 1.

      Introduction

      1:44

    • 2.

      Waterfall Development

      3:05

    • 3.

      Agile Development

      3:35

    • 4.

      Agile Ceremonies

      2:57

    • 5.

      Your Team Members & Skills

      8:38

    • 6.

      The Ideation Phase

      3:53

    • 7.

      The Discovery Phase (Technology)

      4:13

    • 8.

      The Discovery Phase (Design & Roadmap)

      5:08

    • 9.

      The Development Phase

      4:51

    • 10.

      The Testing Phase (#1)

      4:14

    • 11.

      The Testing Phase (#2)

      4:40

    • 12.

      The Launch Phase

      4:33

    • 13.

      Conclusion

      2:11

  • --
  • Beginner level
  • Intermediate level
  • Advanced level
  • All levels

Community Generated

The level is determined by a majority opinion of students who have reviewed this class. The teacher's recommendation is shown until at least 5 student responses are collected.

292

Students

1

Projects

About This Class

Who is this course for:

  • Beginner Project Managers interested in agile software development
  • Junior Developers and Designers wanting to switch into a (project) management position
  • Innovators with a great ideas for a digital product, but unsure where to begin or what skillset is required

Requirements

  • No programming or design experience is required.
  • You should be curious to find out how to create a digital product from start to finish (e.g. as a project manager early on in your career, or the desire to build out your first startup)

The Objectives of this Course are:

  • Understand the difference between Waterfall and Agile Software Development
  • Define the Roles and Responsibilities of an Agile Development Team
  • Get to know the Software Development Lifecycle (SDLC) from beginning to end
  • Internalize the importance of regular Customer Testing and adapting your Product accordingly

We will be covering 3 key themes:

Theme 1 - Software Development Project Management Approach: Waterfall vs Agile
Waterfall and Agile are the most prevalent methodologies of processes. Waterfall is a sequential methodology where tasks are handled in a mostly linear process. Agile, on the other hand, is an iterative methodology which incorporates an iterative and collaborative process. Selecting the right methodology for your projects will depend on preference and the nature of each project. We will have a look at both.

Theme 2 - Your Agile Cross-Functional Software Development Team
The Agile cross-functional team is comprised of the Scrum Master, Product Owner, Developers, Business Analyst, and Designers, to name just a few. They all come with a minimum definition of responsibilities and accountability to allow teams to effectively deliver work. Her we will have a more detailed look at each of them, without forgetting the crucial emphasis on your Customer.

Theme 3 - The E2E Agile Software Development Lifecycle
By adapting an Agile software development life cycle (in short, SDLC), you will benefit from an iterative approach to the design, development and testing of your software feature. We will have a more detailed look at each stage that your feature undergoes: from its initial ideation phase and fleshing out the initial requirements, to the actual build development and testing phases, prior to launching the product to the customer market

By the end of this course you will:

  • Know the difference between Agile and Waterfall Software Development

  • Learn about the benefits and drawback of each methodology

  • Be aware of typical Agile meetings to use in your daily work life: Sprint Planning, Standups, Demos and Retrospectives

  • Understand the key roles and responsibilities of team members

  • Recognise the importance of regular collaboration with your customers

  • Able to explain each phase of the Agile Software Development Lifecycle

  • Be confident in kicking off an ideation phase or initiating a creative process

  • Understand what it takes before any code development takes place - from writing requirements to sketching out designs to planning the technology infrastructure

  • Be mindful of the importance of regular testing of your software, both in a a manual as well as automated way

  • Know how to launch your application to friends and family

  • Be a champion in gathering feedback from your customer, and iterating your product accordingly, to improve and launch quicker and more successfully

Meet Your Teacher

Teacher Profile Image

Alexander F

Teacher

Alexander is a Senior Delivery Lead in London focused on delivering digital transformation across Retail, Financial Services and the Public Sector. Specialising in digital product strategy, planning and delivery, he has built new propositions and led major programmes of change for clients across the UK, Ireland, Hong Kong, Canada, and Austria.

 

See full profile

Level: Beginner

Class Ratings

Expectations Met?
    Exceeded!
  • 0%
  • Yes
  • 0%
  • Somewhat
  • 0%
  • Not really
  • 0%

Why Join Skillshare?

Take award-winning Skillshare Original Classes

Each class has short lessons, hands-on projects

Your membership supports Skillshare teachers

Learn From Anywhere

Take classes on the go with the Skillshare app. Stream or download to watch on the plane, the subway, or wherever you learn best.

Transcripts

1. Introduction: Hi there and welcome. Here's a very quick summary of this course. This is a course that will not teach you how to do any coding. A won't teach you how to design a shiny user interface. It will not demonstrate to you how to advertise and launch an app to go viral across the Internet. Now instead, this course provides you with an end-to-end overview of the Agile software development lifecycle that you can apply to any digital products you envision to develop. And it explains what team members and skill sets you need to point with you in order to succeed. My name is Alex. I am based in London, UK and over the last couple of years I've been working as a senior elite and project manager in big digital transformation projects, typically for banks, consumer, retail, and health care clients. By the end of this course, you will know the difference between Agile and Waterfall software development. You understand the key roles and responsibilities of team members and an agile development team, including your own in the form as a project manager. And you'll be able to explain each phase of the Agile software development lifecycle, which includes the ideation phase, fleshing out requirements, designing and building your software and showing it's tested on a regular basis and eventually getting to launch it to the market. The course is very much aimed at beginner, put it matches interested in software development. You may already be a junior developer or designer wanting to switch into a project management position. Or maybe you an innovator with a great idea for a digital tool. But you're quite unsure where to begin or what skill set is required, in which case this course is for you. If it sounds interesting, then let's kickoff and get right into it. 2. Waterfall Development: So the approach within the software development world, they tend to be two key ideas to key approaches to software development. One is the waterfall approach and the other one is the Agile one. Waterfall is a sequential methodology where task a little bit more linear. Whereas in contrast, agile is a very much iterative methodology, which includes a cyclic and collaborative process. It's a very heated debate what's best and what's better. In my personal opinion, it will very much depend on the preference for for your project, you skill set and nature of the project. And whether you need an iterative process or maybe emboss sequential one. Nevertheless, there's certainly a bias, I would say 20 as agile development in software development. And as a result, we will focus on that today. Nevertheless, let's dive into waterfall vey quickly just so you have an understanding as well. The waterfall model is definitely the oldest and most straightforward one. Basically we finished one phase and then we start the next page. It's very easy, very straightforward. So as a result or as an example on this slide, you may want to do all the analysis of the project first and then, and only then do you start your back-end development. They are definitely some benefits that can be, that can be argued for developers and customers agreed quite early on what will actually be built. In the very beginning, you define the analysis, you define the scope of work. And that makes planning arguably a bit more straightforward. In a similar fashion progresses quite easily measured. You have this full scope of work in mind. And as a result, you can quite easily say how much has been built already off that. As a result, software can be designed completely and very carefully based on the complete understanding of all the software deliverables. But once again, that's of the theory. And there are definitely a lot of drawbacks that have been seen in actual practice. Maybe most importantly, I'd argue is the lack of effectiveness of requirements. If you start, when you start a new project, the reality is you don't know anything. You don't know about the complexity, you don't know how to build anything just yet. You don't know what the customer wants, how the market is going to respond. So whatever you analyze in the very beginning, maybe completely not meaningful at the very end once you launch the product. So once again, any small details that may be left out, details that may be completely wrong. They will then hold up the entire process wants discovered. And as a result, a project gets not only delayed, but becomes quite costly. Also, once you launch something after a long time of analyzing, developing, and testing it well could be that the product in the end is completely undesirable or maybe outdated by the time it's life. So the possibility that a customer is dissatisfied with the delivered software product is definitely high. And once again, that becomes costly. 3. Agile Development: So when it comes to agile, a quick history lesson here is sort of around 2000, 2001 people got together, software developers got together and they very much shared the frustration about the current state of affairs, how software development was being tackled. And importantly, they all agree that the excessive planning and documenting of software development is inefficient. And really what matters is pleasing their customers and that is being lost. So as a result, they introduced and came up with the agile software development. Agile software development tends to or seeks to break up all the development work into smaller milestones. And you build your app, your product in a series of cycles. So once again, rather than building everything and then launching, you only focus on a certain feature that you then launch and then you carry on each cycle as seen on this slide, we'll include that you similar stages like a waterfall, you do some planning, you do the development tests and you review. But once again, crucially, you then ship, you then launch to the customers early on. And as a result, each release provides a testing ground where quite quickly you're meant to get feedback from the customer, from the real market. And based on that, you can then iterate and change your product to the actual customer and market needs. Really, the key consideration here when it comes to agile is that the customer is at the heart of the development team and the customer work very, very closely together. They collaborate, and it's the customer that guests to see and use the product early on and as a result, can provide feedback. And based on that, things change all the time. There's no linear plan that is being followed. But rather after a quick release, it is the customer who provides their feedback and the plan is being adapted accordingly. There are a few key principles that came up that we come up with as a result. And that is, we want to focus on individuals and interactions over processes and tools. It is the people, the customers that at the heart of everything, it's not processed or tools or you may have once established, we will adapt things all the time in a similar fashion. It's working software, actual stuff that's out there and working and being used. That is more important than overly comprehensive documentation, project plans and so on. Absolutely, it is important to write things down to share knowledge, but working software is the most important thing. I've sort of already hinted at it. The customer collaboration is key. The reality of life is, look, the customer doesn't know what they want. They probably won't get it right the first time and they will change their minds. And so working with the customers hard, but that's sort of the reality of the job. There's absolutely no point of having a contract in place and sticking to the contract. When it turns out that a customer is absolutely not interested was written. What's written in it? Yeah. So it's all adapting to the customer feedback to invest what they find. Instead of sticking to something that's been negotiated many, many years ago. And that really takes me to the last point. We're just, you want to respond to change. You don't want to follow a plan that's been set up a while ago, but rather, you respond to what the customer has perceived. If you're more interested, those principles have a look at the Agile Manifesto that's been established by the software developers in 2001. It is a fundamentals of key to effective software development is being used all the time across all the big projects. In software. 4. Agile Ceremonies: I really want to touch upon Agile ceremonies, which is a very fancy word for meetings. I will just touch upon 44 key ceremonies of key meetings that are being used within, within software development. And what a sprint planning, sprint planning. There's a lot more detail behind it, but quite abstract, quite high level, it would mean that you plan what you're going to be building within the next week or so. So all the developers, analysts, designers, and so on, especially the customers and product managers come together and they decide what is the next feature, what is the next thing that we want to build? A woman commits to that within that planning session. And the goal is to build something within the next two weeks and dies. And again, followed by release that we saw that we saw just now. The next thing is steer daily stand-up. You'll have to stand up. Having said that, I think most teams actually do. But within the name it is daily and it's the team coming together. And the emphasis here is very much on communication, regular communication within the daily stand-up. And it's really just a 15 minute session every morning, you communicate what you've done yesterday, what you're planning to do today. And importantly, whether you have any risk issues that you experience where you need help. And so every developer, analyst, designer, whoever is in the functional team, as part of the meeting. And as a result, quite quickly you get updates from each team member and understand where everyone is at and whether anyone needs help. When it comes to communication, visual communication is important. You want to visualize what is actually being built. You want to get feedback quite quickly. And as a result, you have a sprint demo can happen every week and happen every, every two weeks or so. But the idea behind that is again, you want to share off then he went to fail often you want to get feedback very often in a basin that want to iterate. So a sprint demo can be anything from some development that's been done, to a new design, to some customer feedback that you may have received. The idea is that across all the various functionalities, various functions within team, you want to have a transboundary share to the team members what is happening. Lastly, there's a retrospective. Really all that says is that the team comes together after certain time periods. It tends to be after a sprint that's been completed. Sprint can be anything from sort of a week, two weeks, four weeks max. But the idea is that team comes together and discusses what has gone well within that cycle of work and what has to be improved. Once again, it's very much a tool for communication. Making sure that people collaborate, making sure that everyone is happy, making sure that the team works efficiently. And really that any use of a risk can be mitigated in any future spreads. 5. Your Team Members & Skills: So theories, grade, methodology is awesome. None of them matter. If you don't actually have something to put into practice. To put something into practice, you need real people, you need a team. So in this section, we will provide a quick overview of what a typical Agile team looks like. Of course, don't be mistaken as always. Depends on the size of spending, on their complexity and maturity of your project. But the idea is to have an idea of sort of the typical team members. So very famous same software is easy, people are hot and I'll be fine. I personally find that to be true. So invest in your team. Let's have a look. First and foremost in the Agile world, that is the Scrum Master of a fancy word. If you want, you may forgive him to say the project manager, program manager. There are nuances to that, but for the sake of sort of high-level overview, I think we can say that maybe the case a scrum master is responsible to repeat a glue between everyone, between all the stakeholders, the people, developers, analysts, designers decline the customer and so on. It is then that managed the planning process. They drive multiple releases, they facilitate release planning. They're responsible for the scheduling of all the Agile ceremonies that we've mentioned. They provide access to tools and people. And as an example, anything that comes out of a daily standup meeting, really, the actions they are responsible for their own until they find the right owner. Scrum master is also report on the project status to all directions downwards and upwards. They call it coordinate release support. They are responsible for risk assessments. So look, as you can see, it's a very diverse work, diverse set of responsibilities that is hard to define. But really they want to help to protect the team and to unblock any problems and ensure that the Agile processes are followed to be, to be efficient and to be effective in your development. Every product with a product owner, somebody that is responsible for the vision for the short-term as well as long-term vision. And so the product owner typically is the CEO of the product really. They are responsible for the market and the business case for any sort of competitive analysis. They tend to be industry experts, knowing the industry and the customers inside out. They have an idea of the return on investment and net profit. They are representing their customers. So often more than not, it is the owner comes up with the requirements. Somebody who prioritizes work and so represents what the customer, at least what they think the customer wants. So a crucial, crucial person within the team. The business analysts often sits very close to the product owner. Because as I mentioned, requirements are often determined by body part on that. But really it's current in the name the business analyst is responsible for any analytical solutions. They increase the business value by collaborating with the product owner. They create a product backlog, which again, it's a fancy word of saying a set of requirements. They may develop a business case by working very closely with the part Maja. And then importantly, they write down the requirements. So they, they, they don't stop at the high level, but they actually go into the detail, write them all down and convey them to the rest of the teams. Often, more often than not, requirements should always be done as a team. But it is the business out of this responsibility to actually draft them in conveyed in doing, for example, a sprint plan. Lastly, they may support the Agile practices. They encouraged improvement of services and of course they become experts within certain functions. The UX and UI designer, there's an important differentiation between UX and UI. Ux designer, for example, may be conducting user research. They are creating user persona, which is a representation of that user research. They may determine the information architecture of a digital product. They may be sketching out user flows, or they may be sketching out what an app, what a design, design could possibly look at, love Look, look like. And then based on that, they create prototypes that are being tested. Whereas in contrast, but not always exclusively, a UI designer then puts that into an actual user interface design. I, high-fidelity design looks good and it looks like the end product that is being developed by the development team. So overall, responsible for journey mapping, the end-to-end flows are being defined and designs responsible to be sitting together with the customers. Try and understand what they are they after. And doing lots and lots of testing and then translating that into an actual design. A developer, again, in a name, develops certain, certain features, but I think importantly, there are additional responsibilities. That are often being overlooked. Developers are crucial in estimating the size of any new requirements in any evaluation of the technical feasibility. They helped understand what can be done, in what timeframe, how complex and may be, what may be required, and so on. So they oval together with a team, help implement the backlog items. They, they ensure that testing is being done for everything dies being done is being designed and defines. In addition to the actual development, they also ensure quality control. It's not just being developed, but it's also being tested thoroughly before, before it goes into the shipping stage to the market. And I mentioned testing, I mentioned before they're testing is often also overlooked. It is absolutely crucial that you test your application, that you test your new futures before it is being shipped to the market. And so QA testers quality ensure assurance. They are responsible for writing test plans, which enforced the overall acceptance of new features. They made it as mentally. And they also automate that overall approach. Developers and testers work very closely together and continually integrated codebase with these manual and automated builds that functional testing and regression testing and so on. And we will get into the details of testing later on just because I think it's so important. But once again, tests as they measure the quality that they find it in the first place to improve the quality. And they enforced a quality issue as and the best practices with that are being carried out all the time. Now, don't be mistaken. These are just some examples. Teams are small and big depending on the maturity and complexity and size of your project, you'll need a solution architects to define the overall technology landscape. You need to have certain environments available where you can test, write, code and then eventually deployed. You want to make sure that releases are being done in an automated fashion. You probably want somebody who manages your data. You need an operations team, use researchers, copywriters. You wanna make sure that end-to-end product is a safe, secure. And again, when it comes to, you may need some lawyers are some compliance advice and so on. So it doesn't really stop there. But what's important is that the typical cross-functional team, maybe comprised of these Agile team members that have been mentioned. We have forgotten the most important one and we've been emphasizing a few times and so we should one more time. It is your customer. You should be as close as possible to your customer as you can. You design for your customer, not yourself. And that is the number one mistake. We see all the time. We think we know what the customer wants, but really we only build towards our own needs and thinking. Yes, sure, there are other people like me and therefore should be the right thing we're building. Trust me, you do not know and you will be wrong or the building. So get your customer in conduct customer research all the time tests with the customers and in the Agile fashion that we have discussed, launch often do it early, do it all the time and learn from the mistakes. Learn from the feedback that a customer provides to you. 6. The Ideation Phase: Okay, We talked about the lifecycle of the software development lifecycle all the time. And it's very simple as it could be possibly visualized like so. You have an idea. You want to engage in a discovery phase where you flesh out the idea bit more use of defined requirements and you build up. So first set of designs. You then build it, you test it, and then you launch. Again, we within the Agile world here. So don't mistake this as the waterfall methodology, but rather you're looking at a certain future that you're building out. Yeah. And then you provide a release and you do it again and again over and over and again. We said before, every good starts with an idea. Chances that you may have one or you may have absolutely none, both as perfectly fine. In idea. It rarely happens when you just sit down, you have to work towards it. And if you don't have enough idea, then that's fine. The best place to start is to really train yourself every day and just think of, you know, what is the problem and what is a potential solution in my everyday life? You really want to ask yourself all the time, why do we do things in a certain way? Is there a better way of solving a problem? And if you can identify a problem or sort of a market inefficiency, if you will. You're already halfway there. Now. There are loads of ways of coming up with cool ideas and it would certainly go way beyond the scope of this course to explore them all up, I'll put something up into the description if I can. But, but what I like and always use is to creation and the use of the customer journey. The customer journey really is nothing else but a process that sort of looks at what the user undergoes. Let's say, for example, a user may be looking at your e-commerce website that you're building. At the very beginning, there's a discovery stage day. They need to find out about the fact that your website exists, wants to own or they may them browser, they go through what can be bought on your website. They do some thinking about it. They do an evaluation of like, is it worth my time and my money to make that purchase? And then eventually they do make their purchase where they potentially are quite anxious about it until they see their final self confirmation that payment has gone through. And that's the end-to-end experience. You want to look for each of those stages at the site of action that the user undergoes. So for example, at the discovery stage, you are in a sort of stage of awareness. You're trying to find out about the service that you're providing. The action may be that you open the app, the website you may view tutorial, and the sort of emotion of the user at this point is they're curious and then the baby, but skeptical in terms of what you're trying to sell them. But they're curious. Whereas an unconscious at the purchase stage later on, they are now convinced about your product and you're selling day. They have a desire to have it. And the action is to do the payment and then checkout. But the emotion here is much more than they're stressed and they're looking for affirmation that they absolutely indefinitely should be making that purchase dot payments and hopefully are then subsequently happy to have done so. And the point I'm trying to make here is within the customer journey itself, that is one ability to understand what the user is feeling, what they're all about, and crucially what you can improve within an existing journey. Or importantly, what you can create a new journey and a new product or new project is something that could delight the customer, something that makes them happy by understanding what the various processes, what the various stages are, by understanding what the customer goes through, is your ability, your opportunity to improve and make that process very smooth. 7. The Discovery Phase (Technology): Now, with an idea in mind for your project, you want to make sure to enter a discovery stage before you actually build anything. The idea behind discovery stage very much is to flesh out your requirements, to play around with the first set of designs to visualize what a product could look like. You probably are not surprised when I say you can even turn, should probably even tested with customers that already at this stage. And to also determine how the application is actually going to be built, what technologies are going to be used? So with that in mind, we'll start with the solution overview. At this point, it is the solution architect of tech lead and the various developers coming together. And they want to convey and determine the solution overview. It's very much providing an overview of how every component is going to be built and chewing That's going to be well-built. So a solution overview is a skeleton of a program, of a feature of a project by a missing an important element in that project architecture, you may endanger the success of your entire project. We can't emphasize this enough. Proper architecture will allow for saving a lot of time, energy, and costs in the future. You want to make sure that you get this right. Now, any, any architecture design usually comprises of multiple layers within application, such as the presentation layer at the very top. That is what the user tends to see that as the user interface to bears components, the interaction design, that is what the user actually tends to view when using your product. Beneath is a business layer which involves or includes all the business logic or the processes, all the flows. And then lastly beneath that is the data layer, which in turn includes all your old data logic, the database itself, and so on. That, that in turn is then being wrapped. You want to make sure that you have security in place, any sort of configuration. We're not gonna go into all the detail here is obviously a very complex job, and it's being done usually by a solution architect, by the tech lead and by the various developers in your team that together convey and envision how your product is being built from a technology layer viewpoint. As always doubt numerous approaches and technologies in their programming languages that can be used for, for building such a high level technical design or in short tech stack. And as always, they all have strengths and shortcomings. Some are cheaper to use, but maybe less performant. Others may take much longer to implement. It could be even overkill or be a better performing. As a result. The worst possibility is building on a dying or unreliable technology stack. So we want to make sure you don't do that. If you make that mistake, you might have to rebuild entire application again. Or you pay premium for developers moving forward. And again, without going into too much detail, there are so few key principles I want to highlight when it comes to the stack. And that is, you want to build based on the following principles. It has to be efficient. Yeah, so your application has to perform the tasks and performs the functions in any condition. So it has to be reliable with any sort of load, any sort of amount of users being on your, on your platform. It should be flexible. The chosen solution has to be easy to change. You can change elements and it shouldn't influence that the whole, the whole project automatically, in a negative way. You should be able to extend it. So you want to be able to add as many functions as you like 2D application. Importantly, it should be scalable. It should be always possible to extend. The architecture, should allow for direct development and several parallel threads. And lastly, testability. You absolutely should be able to test the architecture easily, which means that the number of errors decreases and its reliability increases. Once again, that is the job of the solution architect. 8. The Discovery Phase (Design & Roadmap): Going, going into a completely different sphere in terms of the work. Beforehand mentioned UX design. And again, this is of the visualization of what could the product look like. Yeah, So here in the discovery phase, we begin by creating designs and screens, and we start assigning each functions and data. It's completely okay that they live in multiple places. You have no idea where he just sits at the current moment, you just playing around. And more often than not, this process takes place on whiteboards, on paper, or as you can see currently on screen, some sort of scribble tool where you can make sure that you can play quite quickly and change things quickly without taking too much time. The idea here is you want to make changes, you want to do that now rather than later in the process. Currently it's much cheaper to erase something. Then later in the, in the library you have to rewrite entire coat. Okay. Workflows are the pathways, uses can travel within your app. Yeah, So again, within that, you want to consider each of the things that the user should be doing on a certain screen, how many clicks it takes them to complete an action. You wanna make sure that each click is a two additive that doesn't really take too much time or work to accomplish something. As you find problems with your workflow, update those wireframes. So what we see and those scribbles are called wireframes up there, then start again tests with a customer, makes sure it works before you go into some more complex designs. What you tend to do here is also use prototypes. So click-through model is where you put all those wireframes together and have the ability to just click through them as if it was a real app, but without having done any actual development. Once again, if fantastic way to test something on the phone very quickly for more realistic testing and getting feedback right away from there. This is a fantastic way of understanding what your requirements are. This is what a business analyst comes in. So say, for example, that a UX is on hazard determined a sort of UX design on the left side. As you can see, we have a menu wherever search bar we have some sort of filter at the top, you have various, various things. So click on such as workshops or marketplace or whatever may be in that particular application. And so was easily convey currently visually needs to be put into more detail in 3D, that becomes the backlog of requirements. So a business analysts will work together with the product owner, with designers, with the developers to ensure the vision and that the designs are now being put into actual requirements. And they are being defined with older detail that is necessary for developer then to actually build out. Lastly, and again, a completely different aspect of work is the product roadmap. This is what a product owner, the CEO of the product comes in. And within the discovery phase, you want to have a somewhat an idea. It doesn't have to be too precise, but you want to have an idea of the high priority themes that will help everyone really to focus their time and energy to do a few things. Va they well, agile product, roadmap is the idea behind that as a navigational tool. Yeah, it helps teams to focus on where they're at, where they're going, but also gives them the freedom to course-correct as needed. So for instance, if we are a key one at the moment, we understand what we're building at the next couple of months. But it's still the freedom to change and adapt what may be built in Q2, q4. So really an agile product roadmap is a high level strategy visualize, and it's focused on outcomes rather than outputs and talks of, and themes and epochs rather than feature. So nothing is defined at that point. So visualization and indication of what's to come. And that helps communicate the product strategy with the other parts of the organization and with a customer. And ensure that you get buy-in from your team and from key stakeholders. Overall, that was a quick insight of various things you may be doing in the discovery phase. As always, there is a lot more. It's depending on the project. But look, ensuring that you have a solid technology foundation and solution overview is absolutely crucial. You do want to have a sort of go at visualizing what the end product could look like and test it with customers. Early on. You want to have an idea of the requirements that are being built out in the first set of weeks to come being done by the business analyst. And you want to ensure that the CEO of the product, that product owner is able to convey the vision and where we go, not just within the next immediate few weeks, but really with a long-term vision says and what the end product is to look like. If that is done in addition to any other things you may have to do, then we enter the Bill phase. 9. The Development Phase: Okay, built probably one of the most interesting and intense periods within the project, arguably the ideation and discovery phase, as well as the launch phase towards the end, takes significantly shorter time than the build phase, may as well be 70, 80 percent of end-to-end project that you will deal with the Bill phase and as a result, in incredibly important but also where most things go wrong. And so I need to be improved. It's a long process and not want to be overlooked. We're going to have a quick look at the day-to-day working for the team, which is within the Agile world, you are going to be following. This workflow here is of high level again, which is you have the backlog of requirements that you have put together previously. And so each day really, you are going to choose which item you're going to tackle. You're going to put that into the OpenFlow. And then over time that is to be then selected for being in progress I is being developed. It goes into the QA column quality assurance where it's being tested. A base on that. If it's passive goes to done and if it has not passed, it goes back to the in-progress. More often than not, that actually happens physically on a wall, on a whiteboard, or the like, of course, can be done digitally as well. But they often, it's just a bunch of posters that are being handed from column to column. And it's a great way for, for teams to visualize what work is being done. And databases, especially doing a stand up to visualize and conveyed to everyone what is actively being worked on. And very quickly you'll be able to see if there's any impediment, if there's any so blocker. Why a certain ticket, why certain requirement is not moving forward? So that is the overall end-to-end workflow. You take a requirement and you work your way through the various workflow stages. And poor business analysis view point. It is now the objective to write the user stories, the requirements they are, they're called user stories. And as an example, if you take, for instance, the menu, be that now certain feature, certain requirements. You tend to write it in the following format, which is the, you define for whom it is. So in this case, it is a user who has already locked into your application as an authenticated user, you then define the objective for that particular user. So in this case, I want to access the side menu that is the desired as the objective. And then you say, well, why? So what, what is the, so what? And so you define that as a so that in this case, I can view any sort of additional features that may be available within, within the product. So once again, Diocese of the business out of this job. This goes into a lot more detail, but at high level it's listed as a user story. Where do you find who is the user? What do they want to do, what's the action and why? What is the objective? So as an authenticated user, I want to access a side menu so that I can view any additional features touching up on sort of a very high level tasky for the business analyst. In a similar fashion, a UX designer we've touched upon before has defined various workflows. Berries, UX screens, US experienced screens that may look up, look like this. At this point, can you scribbles and certainly nothing that you want to ship and launch into the real market. So it's now at this point the sort of tasks for the designers to put that into something a bit more shiny, into an actual user interface. And so it may, for instance, become something like that. Yeah, you go from a UX interface and that's then be interpreted by designers as of the end user interface or the developers are actually going to be picking up and developing Naturally. We then also have to build, we are absolutely not going to go into that in this particular course. Lots and lots of various ways of building code, going through different languages and so on. There will be a whole different, a whole different course. So we're going to have to skip that. But once again, keep in mind, we are following the Agile methodology in our particular example. Yeah, so we're gonna go through the workflow of analysis, billing the whole thing for a certain feature and they're releasing it very quickly so that we get feedback from the customer immediately. Before we do that though, there's one aspect I want to emphasize and that is testing. So we won't be touching on development today, but I think testing is something that we want to quickly have a look before any future gets released. It should go a food thorough testing, and it should do that all the time in ideally, it should be done automatically. So let's have a look at that. 10. The Testing Phase (#1): So testing, I have now I mentioned many times how crucial and utterly important I find tests and to be within any piece of software development lifecycle. Luckily these days technology allows us a much easier life of the capsule testing and lot of it can be automated, whereas some, some aspects of, of course still have to be done manually by the developers, all the testis, quality assurance teams or even business out of this, whoever maybe park managers and so on. If we're looking at the application, testing is crucial however, so let's have a look at the various type of testing is typically being done. One is unit testing, usually in a degenerate doing done by developers. They use either manual or automated tests and they ensure that each unit in their software meets the customer's requirements. So once again, you can either test those test cases, mainly that of course, is time-intensive. It takes a long time, it's repetitive, and therefore takes quite a bit of effort on. Good news is however, automated testing automation tools these days, they can allow you to record and save a test, and therefore you can replay it as many times as needed without any sort of further human intervention. So anytime new coldness being developed and deployed before the deployment, a developer is to write their unit test and is to execute the unit tests, ensuring that that particular new piece of code has been thoroughly tested based on the requirement. Next, integration tests, absolutely crucial. Think of it as individual models are being first tested in isolation as part of unit testing. But once that's been completed there then integrated. So if you were thinking, think of it as a building, a car, you may be unit testing the doors, you maybe, you know, testing the engine, that trunk, whatever is the color, whatever it may be. But then one-by-one, slowly integrating that too as one single system. And so integration testing ensures that any sort of new code change anything you add to the overall system, does not impact the existing functionality of the software. You want to ensure to check that the combinational behavior makes sense. You want to validate whether the requirements are implemented correctly or not. Often then this is followed by system testing, meaning we want to test a whole system. All models, all components are integrated in order to verify the system works as expected or not. Once again, if you think of the example of the car, It's great that you have thoroughly checked that each individual item it's been it's been unit tested. You didn't have checked that they're all integrated and integrated tested as you put together the car. But then lastly, don't forget the whole car itself still needs to be checked for all the various different aspects, requirements, and needs to be driven smoothly, has to have the right breaks and gears and needs to work for thousands and thousands of miles continuously. The color needs to make sense. So the system as a whole was also a crucial part to be tested and that is being done after the integration tests as part of system testing. I may have mentioned the customer from time to time in this course, and no surprise here then user acceptance testing is commonly referred to as in short UAT. And reward it means is, you know, showing the product or the feature to a customer and they do the testing forward. So real people, real customers determined whether they think that the software that you have created can be accepted in, can go live. This is therefore not as automated as the previous examples. Rather, these are time intensive sessions, but hopefully irregular sessions where real people, real users come together as part of small groups. That can be family in France, I can be early adopters, that could be power users, that could be people that you pay money for. And really you want to have various ways of testing that you want to at times just show them the software and ask what they think. And on the other hand, you may want to be very specific and write test cases and provide very specific samples to be explored by these particular users. And then they have plenty of opportunity to provide you with feedback. 11. The Testing Phase (#2): Really this gives you an opportunity to have a very open feedback by people who are going to be using your application in the end, in the real-world. Performance is, of course a crucial aspect. Imagining you build a website, but it doesn't load people who tend to click away after 2.5th of not seeing your results. So it's incredibly important to test both for the low testing do normal usage times and peak times, but also to stress test your application IE, you purposefully try and find ways to break the system. More and more users are you being a, being assimilated? And you want to check, does the system scale. There's very much comes back to the Oval application and architecture framework that we've discussed previously. You want to make sure that a technology that you have to design and envision, actually this work in is capable of dealing with all of the users are accessing your platform. Accessibility is usually referred to as surf the web content accessibility guidelines. It is an internationally recognized set of recommendations to improve web accessibility. That is a particular example for, for web design. But it really, it does apply to anything that really your app or whatever you may be building in a digital world, you want to make sure that everyone can and is able to use your end product. And so what I was comprised of is to make sure that the vision is very clear. Ie you have maybe, you know, severely sight impaired users. They need to be able to use your application. There may be people who are hard of hearing and maybe deaf. And they do have to have a particular tools to access the application mobility. Those who may find it difficult to use a mouse or keyboard, you want to provide them with alternatives. And then thinking, thinking of understanding people who have dyslexia, autism, any sort of learning difficulties. Again, you want to provide a simplified approach for them to use the application. As a result, even if it's legal or not, you want to absolutely think about accessibility from the very start. If you want to redesign our need to redesign in retrospect, trust me, it's going to take time. It's going to take an insane amount of effort and cost to do so. So think of it as an absolute key requirement from the very start, run all your accessibility tests from the Early on self-development. And you'll be off to a flying stuff. In a similar fashion. Compatibility ensures that your software is able to run on different browsers and operating systems. These days we have thousands of device sizes to deal with. They all look different on different screens. Think of it, of iOS, but particularly Android and have a lot of differentiated a device sizes and operating systems. So, you know, constantly, you want to ensure that the new software that you launch into any new future you're launching is compatible to these requirements that can be done manually, but more and more, most of it is being done automated in an automated fashion through emulators and simulators where you don't even need any device anymore. It's all done in the Cloud. And you can ensure that you knew code runs across all those platforms. And lastly, more and more crucially, I think for everyone and especially because it's received quite a few media scrutinise is of course, the security of the application. You need to ensure that you carry out regular pen testing. Are you security testing? Look, if you have an e-commerce store, for example, and you can watch online shopping, you'll be regressing person information, credit card information and so on. The user has to trust you. And if they don't, then you don't have any customers. And B, you may have a big problem with the authorities. But you're going to see there's no security means that any sort of authorized access is granted to protect the data. And unauthorized access is restricted. And you want to ensure that you don't have any vulnerabilities in any sort of your own code and custom code or any third party code. Keep in mind if your users of different supplier, you pop up with a third party, you absolutely want to make sure that they also are able to withstand any attack. Once again, that is just a high-level overview of typical testing being done. There is, as always, more. It is soft depending on pending on your, on your complexity and the size of your project in terms of how much you do of which. But it is crucial that testing is a sort of a key and monetary aspect of your software application. That approach. 12. The Launch Phase: And we are nearly there. The lunchtime, probably the most intense, maybe the most exciting part of the entire lifecycle that we've looked at so far. You've probably been thinking about your idea for, for years, if not longer. And now the last couple of months you've been building out your code, you developments, you design, and now you're ready to launch the first set of features to the market. When it comes to the launch, it's always a good idea to kick things off with friends and family. You have a bit more of a sort of friendly audience. And you can test and get feedback. Early on. Again, I'm repeating myself, but do not underestimate the importance of sort of initial friendly customer feedback where you can quite quickly iterate and improve your product. Also give mind when you do launch something to, for example, an App Store, it is always a process you want to make sure that the APSA properly configured for their release. You gotta fill out a couple of forms for each store you go to submit screen shows a bit of a marketing material, quite a description. So a bit of work has been done there as well. And then be it Google or Apple, they may Mallory review all these apps submitted to the App Store. Well, Apple actually there so more than, than Google. But it's possible that they won't press a bunch of changes based on your configuration. So keep that in mind when it comes to your timeline. Once you are live and the products out in the real market, there are of course, a few ways of promoting it other than their friends and family and sort of word of mouth. The obvious one these days is social media. Be that Twitter, tiktok, and whatnot. Professional networks like LinkedIn. That is one avenue data one is more so for the bloggers and vloggers, progress through affiliate marketing. And of course, if you do have the money, then you can engage in a more extensive campaign advertisement. Do so slowly in the beginning and obviously to more aggressively as to when you plan a full launch. But, but one thing I want to emphasize is that this is not the end, right? So app development doesn't stop at the launch phase. Rather, it is a continuous cycle of iteration, as we've now many times emphasized in the Agile development world. And so you wanna make sure that you monitor the app and the uptake by users. You want to make sure that you are able to access any crashes that may have been experienced. Libraries exist that do track those. And they tell you what the user was doing, the device that we're using, any sort of technical info that may be important to sort of replicate the problem. You definitely want to start understanding your users better. You want to make use of analytic tools such as Google or Facebook analytics. And that again, helps you understand who is using the app. What is their age, their gender, where they're from, what languages do they speak, and so on. How many times do they use the app when we're doing the day? How much time is being spent in the app, what screens are being viewed, predominantly, which ones are not, and so on. I'm fantastic, awesome opportunities out there. The creation of heat maps where you can see where people click, what screens. I'll click that most often and so on. But really the idea here is you are able to improve based on those analytics. You don't want to just build onto portions of the chapter there seldom utilize, but you want to invest where the action is, what is the largest potential for growth? And it is really those tools that provide insight, makes sure to measure performance. I mentioned before, people are not very patient when it comes to that. So you want to measure the technical performance and ease of system we deploy, has extensive performance monitoring in place all the time. That way you're able to track how many times an action has occured, how long it took. And, and again, you find that as a good opportunity to space for optimization. You can also put any alerts and place to know when an action is maybe taking a little bit slower whether your server, your environment is overloaded. So you quite cryptic and look to fix those as well. And then of course, even sort of manual monitoring when it comes to looking at the App Store, for example, do respond to customers cost comments. Take their feedback into, into account, make sure that the product manager does see them. And according the, that is the key feedback you need in order to improve and they quickly get other next iteration of your application. 13. Conclusion: That takes us to the conclusion where the end of the course. I hope those various stages of the software development lifecycle made sense and it was somewhat useful to you. Look, if there's one thing I would say at the very end is a one size fits all is not that. While the methodology of Agile development and that the process in itself does work and it can absolutely be consistently applied. Of course, it does heavily depend on the project, the complexity, the size, the, the, the, the funding is available to you, the skill set of the people, and so on. And every project is different. And in one, you may be heavy, heavy on technology and back-end systems and the business domain, whereas others, it may be very much more focused on graphic design and sound engineering and the development there. And you need to adapt as S required. And the one thing I would say from a project management perspective, or you being a product manager or a CEO of a small startup is duly by values. Because you as a, as a PM, as a project manager or somebody who's not involved in every single stage, but rather the glue between people. You are never going to be the expert in anything. Really more. It is you who provided a holistic overview, but you are not a domain expert. So duly by those values, I like the ones shown on the screen. Trust, empathy, transparency, and collaboration. Ensure that the teams can self organized, empower them, that they can do what's needed to solve the problem. And I think if you do lead by those values and if you establish that trust and sort of believe in the skill sets of people, then you too can build a killer prodrug, an awesome digital product that follows the software development lifecycle that's been presented today. That was it. I hope that was fun. I hope that was useful if there's any questions. Don't hesitate to contact me and we'll see you next time.