Sunday, June 13, 2010

The Software Development Life-Cycle (SDLC)

There's much already shared on the Internet and in books regarding the software development lifecycle (SDLC), but the term still frightens even some seasoned I.T. professionals.  Really, it's very simple.  About the only scary part of it for the average Jane/Joe is the part where you have to sit down and actually write.

Any successful software project must be first well thought-out and planned on paper (or some other electronic means, if you'd rather.)  You've already begun following some crude sort of software development lifecycle process at this point.  Beyond this, there's researchers at Carnegie Mellon who've already written up volumes of theory and educational material to guide you to create the most fabulous and most perfect software product ever.  If you'd rather get on with your project, read on.

My simple (and more so fabulous) SDLC process would have you write the following documents (document titles are in bold; proposed contents are bulleted):

Business Requirements
  • Problem Description
  • Organizational Impact
  • Solution Requested

Project Proposal
  • Solution Proposed
  • Technical Details
  • Product Deliverables
  • Additional Features
  • Cost Analysis
  • Project Plan

Functional Specifications
  • Workflow Model
  • User Interface
  • Object Model
  • State Diagram
  • Database Design
  • Flowchart Diagram
  • Glossary

Implementation Plan
  • Algorithm Design
  • Code Samples

Maintenance Plan
  • Tune-up Schedule
  • Change Control
  • Upgrade Plan
  • Disaster Recovery

Verification Testing
  • Acceptance Criteria
  • Integration Testing
  • System Testing
  • Acceptance Testing

User Manual

Validation Plan
  • Standard Operating Procedures
  • Documentation Plan
  • Verification Plan
  • Acceptance Qualification

These last two documents really ought to be among the first to get drafted, though I list them last because they generally get edited or even rewritten after the code has been developed.  However, it's the documents themselves that will drive the entire SDLC process.  They are of utmost importance.  I will provide some guidelines on fleshing these out later.

Thursday, June 10, 2010

Introduction

I've programmed systems internals, designed database applications, developed business intelligence software, and set up corporate websites for multiple clients and employers for nearly 20 years. In this blog I want to share with you the expertise I've amassed--everything relevant to a well-rounded Information Technology specialist:
  • tips on several types of computers and hardware peripherals
  • the in-roads I've made into software development on various platforms
  • some complex software engineering tricks
  • simple desktop application software solutions to common problems
  • freeware/shareware and retail product software reviews
  • some business analysis and technical writing helps in support of the Software Development Life-Cycle
  • computer networking and router setup assistance
  • my supervisory experience with both onsite and telecommuting programmers
  • the management of testers and Quality Assurance personnel
  • and even my aesthetic and practical suggestions on how to write good user, testing, and validation manuals.
Knowing how challenging it is to stay on top of today's ever-advancing Information Technology industry, I hope this blog will help some other beginner or intermediate I.T. specialist make sense of his/her often daunting project responsibilities!