You will be able to more effectively guide the development team (coders, testers and technical writers) through all of the Software Development Lifecycle activities. Your development projects will be easier to plan, control and delver. Team productivity will go up while development risk goes down.
You will learn how to speed-up development through converting usual sequential workflows (coding, testing and documentation) into parallel workflows. This is a major factor in getting a great quality product to market more quickly.
You will learn how to do strategic planning for your project and how to avoid doing tasks over – get them correct and complete the first time. It is possible.
You will learn how to avoid unnecessary development risks such as:
·Incomplete or incorrect business requirements
·Uncontrolled requirement changes
·Not having a Software Requirements Specification
·Many other self-inflicted wounds
Everybody wants to get their software development projects completed as soon as possible. Unfortunately, some misguided folks want to complete their projects sooner than possible. That invariably leads to development taking longer than it should, usually with lower quality. If you adopt the guidelines set forth in this course you will recognize the signs of danger ahead in time to avoid them,
There is a persistent myth concerning software development. It is the notion that the fastest path to completing a project is to start coding as soon as possible. Too many people interpret this as no need to plan and design before jumping into writing code. There are many steps that should be taken prior to coding start. This course identifies them and discusses how to handle them in a preferred manner.
This lecture introduces the focus topic of the course - getting your software development project created in a fast and safe manner. We'll cover the typical activities of the Software Development Life cycle SDLC, and with some unconventional techniques. Along the way we'll see how to reap the benefits of performing the activities of developing code, performing QA testing and writing user documentation as parallel rather than sequential flows. This is a huge time-saver. It is the basis of getting to the successful conclusion of your project faster, without taking unnecessary risk or skipping important steps.
00:25 Get Your Product to Market Quickly and Safely
00:53 The Power of Parallelism
01:42 A Little About Me
02:14 Battle Scars - A scary picture - may not be suitable for children
This lecture is an overview of the SDLC. It contains a graphic that neatly summarizes the major workflow. Introduces the idea that a rush to start coding is the probable cause of many project development problems.
00:00 Course Covers Typical SDLC Topics
00:18 Overview of Major SDLC Activities
00:42 A Common Source of Project Problems
This lecture introduces the Software Engineering Institute (SEI). The SEI is a research organization funded by the Unites States Government. It resides on the Carnegie Mellon University campus in Pittsburgh Pennsylvania. One of its major goals is to help software development organizations get better control of their software development processes. This course does not require adoption of the suggested practices. With that said, software development organizations would generally benefit by becoming familiar with the suggested practices for each level. I suggest working towards incorporating the suggestions that make sense for your organization - you will benefit from it.
00:57 No Good Way to Make A Choice between government software project bidders. 0ne was needed
01:07 Capability Maturity Model (CMM) - There are five levels of maturity
02:10 CMM Level 1 - Ad-Hoc and Chaotic
02:35 CMM Level 2 - Repeatable
02:57 CMM Level 3 - Defined
03:26 CMM Level 4 - Managed
03:58 CMM Level 5 - Optimized
04:18 Maturity Level Rating
This lecture provides a macro view of the creation, value and use of a project plan. It does not favor either a Waterfall nor Iterative approach. I do favor a simple project plan without detailed task start and and dates.
00:25 Mis-guided Folks - Management and marketing people who create havoc with unrealistic demands
01:00 Miracle Not Needed
01:25 Foundation for a Successful Project
01:36 Project Plan - High Level
02:25 Work leveling does not make sense for software projects
This lecture focuses on the development and management of requirements. It discusses business requirements and their relationship to functional requirements. The subjects of User stories and Use cases are explored. The concepts of wire-frames, interactive simulation, and requirement validation are covered. Together. these are the elements of a solid SDLC foundation
00:00 Create Use Cases or User Stories
01:07 Elicit Business Requirements
01:51 Validate Business Requirements
03:30 Create Bi-directional Traceability Matrices
04:24 Create Interactive Wire-frames
06:15 Validate Functional Requirments
This lecture deals wit the Baseline. The Baseline should be thought of a snap-shot of the requirements and supporting documents at a particular point n time. Once the Baseline has been created it serves as the anchor point for configuration management. No changes to requirements are permitted without a formal approval of the Change Control Board.
00:07 Graphic portrayal of where the Baseline fits into the SDLC
00:36 Prior to the Baseline requirements made be made without formality since nothing is yet "official"
01:27 Ignoring the Baseline will result in lengtthening the time to market
This lecture defines and explains Configuration Management, and how to practice t.
00:00 What is Configuration Management?
00:08 Graphic portrayal of where Configuration Management fits into the SDLC
00:38 Software Configuration Management (SCM) process
01:32 Configuration Change Control
02:40 Change Review Board (CRB)
03:40 Change Request Submission
05:05 Change Request Review
06:12 Change Request Review Results
This lecture addresses the usual practices associated with database definition, construction, and population.
00:00 Common Database Practices
00:12 Graphic portrayal of where Database considerations fit into the SDLC
01:11 Provide enough instances of the database so each person can work withiout stepping on someone else's work
This lecture discusses an improved way to populate the development database.
00:00 Improved Database Practices
This lecture explains the necessity for a Software Requirement Specification (SRS) and how to create one.
00:00 Major Sections of an SRS
00:24 Create Software Rquirement Specification
This lecture discusses code construction and unit testing. It does not impose construction techniques nor languages to use.That s left to the student and their organization's norms.
00:00 Develop Code and Unit Test the Modules
00:05 Graphic portrayal of where Code construction fits into the SDLC. Please note that code construction and unit testing is one of three parallel development flows. The power of parallelism is a key to speeding-up time to market
00:50 Code review meetings
This lecture discusses QA testing, It is the second of three parallel workflows. The others are coding and documentation.The lecture talks about both writing and executing test cases.
00:00 Graphic portrayal of where QA Testing fits into the SDLC.
00:07 Write Test Cases
01:13 Graphic portrayal of a bi-directional traceability matrix showing functional requirements versus test cases
01:20 Execute Test Cases
This lecture addresses the user documentation with emphasis on the User Guide. Documentation is the third of the three parallel development workflows.
00:00 Graphic portrayal of where Documentation fits into the SDLC
00:05 Develop Documentation Plan
00:09 Write User Guide - It is an important part of QA testing
02:02 Write Balance of Planned Documents
This lecture addresses the recording and tracking of bugs through resolution. It also discusses the User Acceptance Test (UAT) and who should perform it.
00:00 Bug Capture and Tracking
00:07 Graphic portrayal of where Fixing and Finalization fits into the SDLC
00:39 A good bug tracking system is required
01:05 A Very Poor Practice
01:58 Executing the UAT
This lecture is the first of nine lectures that take a deeper dive into some of the of the SDLC activities that require more in-depth coverage.
The business requirements are the rationale for the project. While getting the business requirements correct and complete will not guarantee a successful product and project (there are other opportunities for mis-management), not getting them correct and complete will guarantee failure to meet the business needs.
00:07 Graphic portrayal of the topics that will be discussed in the deep dive
00:15 High level discussion of the Business Requirements
01:33 High level discussion of the Use Cases
02:18 High level discussion of the Interactive Wirer-frames
02:45 High level discussion of the Bi-directional Traceability Matrices
03:18 High level discussion of the SRS
04:52 High level discussion of Writing Test Case
05:20 High level discussion of Executing Test Cases
05:40 High level discussion of the User Guide
06:10 High level discussion of Change Control
This lecture addresses the Use Case. A Use Case is created from user and SME narratives that describe a flow of a business related activity, such as the steps of withdrawing money from a bank ATM. It is typically presented in both a text and graphical format. The entire business activities for a software application can (and should be) described as a set of Use Cases.
00:00 What is a Use Case?
01:24 A Use Case Development Procedure
03:17 Two methods of graphically portraying a Use Case
04:07 Prioritize Development Work
This lecture discusses Wire-frames, what they are, how they are constructed, and how they are used. A Wire-frame is a powerful tool. It can be used to help system users to validate a Use Case. It is also very useful in describing the desired look, feel, and behavior to t developers; all of this without writing any code.
00:00 Wire-frames to Validate Requirements
00:35 Getting the Right Requirement Set
01:37 Constructing an Interactive Simulation
02:50 The Development Team Loved It
03:36 Power Point as an Interactive Simulation Tool
04:32 UI Controls Library
This lecture discusses Bi-directional Traceability Matrices; what they are, how they are constructed and how thy are used. Bi-directional Traceability Matrices play an important role in Change Request evaluation and Configuration Management.
00:00 What is a Bi-directional Traceability Matrix?
00:18 Graphic portrayal of a Bi-directional Traceability Matrix
This lecture discusses the Software Requirement Specification (SRS). The SRS is a key document that people tend to avoid or ignore. There are a number of excuses given for not writing am SRS - they are all bogus. In my opinion, the real reason that the SRS gets such bad press is that it delays the writing of code. THIS IS A GOOD THING. The desire and pressure to write code prematurely is a major reason for project delays and milestone slips. You cannot get to someplace faster if you don't know where you are going.
00:00 About Joel Spolsky
00:41 Failing to write a spec is the single biggest unnecessary risk you can take
01:50 Save time communicating
02:52 It's impossible to create a meaningful schedule without a spec
04:28 Getting people to read the spec
This lecture discusses test cases. It mentions each of the attributes that a test case should contain, and several optional ones, It encourages obsessive behavior when looking for scenarios to test. It also talks about not shifting the testing to the users.
00:00 Write Test Cases
00:30 Software testing is the process of executing a program with the intent of finding an error
00:42 Attributes of a Test Case
01:12 Graphic portrayal of a bi-directional matrix showing functional requirements versus test cases
01:19 Test Case Optional Fields
01:58 Be Thorough
02:15 Do Not Make the Users Become the Testers
This lecture discusses the activities for a Test Case execution. The testing should verify the User Guide as well as the software. An automated testing tool will be a big help with regression testing .Record the results of each test in a database for possible future use.
00:00 Execute functions in accordance with the User Guide
00:25 Regression test each build - automated testing is not mandatory but is a big help
01:10 Attributes of a test instance
01:51 Record execution results in a database
This lecture addresses Change Control - what it is and how it is performed. It illustrates the importnce of the Change Control Board.
00:00 The Change Control Board
00:30 Change Control is tied to the Baseline
00:57 Elements of a Change Request
01:10 Use the bi-directional traceability matrices to assist in the evaluation of the request
01:54 Roll-back procedure
02:30 Implementing the change
This lecture discusses the construction of the Use Guide and when it should be created. It is usual for the User Guide to be written at the very end of the project. This is a bad practice because the document itself is not tested. Perhaps even more importantly, the User Guide is very helpful in all of the testing phases. Use the interactive wire-frames and Use Cases to construct the User Guide before any code is written,
00:00 The User Guide is basically a "how to" document
00:11 Graphic portrayal of a page from a User Guide
00:21 A good format is Use Case based
00:48 When the User Guide should be written
01:24 The Interactive Wire-frame enables the writing of the User Guide before any code is written
This lecture discusses Power Story. Power Story is a company that has created two Power Point plug-ins to help you build interactive wire-frames.This tool does not use hot-spots. It has an elegant alternative method of showing flow.
I do not have any monetary interest in Power Story or its products. The products are very modestly priced and will save you a lot of time
00:38 Overview of the plug-ins, powerSTORYBOARD and powerWIREFRAME
02:05 User Story example
02:15 powerSTORYBOARD steps editor
02:45 powerWIREFRAME screen builder
03:24 Built-out Use Case
04:27 Use Case Story Step with wire-frame
Software development professional with keen interest in improving software development processes and techniques. Hands-on experience as project manager, product manager, software developer, business analyst, documentation author, QA manager and data architect.
Deep experience in all phases of the software development life cycle.Familiar with CMMI for Development. Experienced in Agile and Waterfall paradigms.
Industries served include healthcare, finance, gaming, manufacturing, distribution, printing and association management.
Bachelor of Science degree in Business.