SDLC: Systems Development Life Cycle or Software Development Life Cycle
What is SDLC? It is variously used by people as being roughly synonymous with software development and systems development and has close ties to project management as well.
Software Development Life Cycle
Wikipedia defines Software Development Life Cycle:
http://en.wikipedia.org/wiki/Software_development_process (September 2, 2009)
A software development process is a structure imposed on the development of a software product. Synonyms include software life cycle and software process. There are several models for such processes, each describing approaches to a variety of tasks or activities that take place during the process.
The Software Development Life Cycle is an important area for DS to consider though it should be done within the context of project management considerations. Here are a couple recommendations:
Recommendation: Use the agile approach evolving in CollectionSpace and in other projects (BPS). Note that this might not be appropriate for some projects. For example, enterprise projects and infrastructure projects might require a different methodology.
Recommendation: Cull techniques and templates and methods from Web Apps. Track their evolving processes and standards. Webapps SDLC site: https://calshare.berkeley.edu/sites/AS/Web_Apps/SDLC/DevProcess/Wiki%20Pages/Home.aspx
Agile SDLC link: http://www.ambysoft.com/essays/agileLifecycle.html
According to http://leansoftwareengineering.com/ksse/scrum-ban/
The ideal work planning process should always provide the development team with best thing to work on next, no more and no less.
In the meantime, the UCB SOA Governance group is having a good discussion about software methodology especially on the context of SOA projects and community source projects.
Systems Development Life Cycle
Wikipedia defines Systems Development Life Cycle:
http://en.wikipedia.org/wiki/Systems_Development_Life_Cycle (September 2, 2009)
Systems Development Life Cycle (SDLC) is any logical process used by a systems analyst to develop an information system, including requirements, validation, training, and user ownership. Any SDLC should result in a high quality system that meets or exceeds customer expectations, reaches completion within time and cost estimates, works effectively and efficiently in the current and planned Information Technology infrastructure, and is inexpensive to maintain and cost-effective to enhance.
It goes on to distinguish SDLC from Project Management:
In project management a project has both a life cycle and a "systems development life cycle," during which a number of typical activities occur. The project life cycle (PLC) encompasses all the activities of the project, while the systems development life cycle focuses on realizing the product requirements.
Given the nature of work being performed by Data Services, we do need to consider this usage of SDLC. For example, when a developed system moves from a development phase into production operation, the following issues should be resolved.
- Support Level Agreement written and approved by customer
- Production environment set up and tested
- Software code managed according to best practices (Subversion, SCCS)
- Bug tracking and help desk functions set up
- Technical and user documentation written and approved (architecture, build process, javadocs)
- Support resources assigned and resource forecasts adjusted
- Ongoing/production jobs (e.g., cron) taught to production support resource
Even before development happens however, it is important to know how and where production support is going to occur. For example, the BNHM-IST Partnership is considering language that will document when a production support team needs to have input to and insight regarding IT work that is grant-funded. In particular, if the resulting systems are intended to be supported by IST teams, then IST has to be able to support the developed system.