Procedures, Processes, Methodologies, Practices
SWEBOKv3.pdf (local copy)
“Software requirements express the needs and constraints placed on a software product that contribute to the solution of some real-world problem. ... It is widely acknowledged amongst researchers and industry practitioners that software projects are critically vulnerable when the requirements- related activities are poorly performed”
Both the process of defining the architecture, components, interfaces, etc. and the result of that process. “during software design, software engineers produce various models that form a kind of blueprint of the solution to be implemented. We can analyze and evaluate these models to determine whether or not they will allow us to fullfill the various requirements.”
“the detailed creation of working software through a combination of coding, verification, unit testing, integration testing, and debugging ... much design work is performed during the construction activity.”
“the dynamic verification that a program provides expected behaviors on a finite set of test cases, suitably selected from the usually infinite execution domain. Can also imply static testing.”
“all the activities required to provide cost-effective support to (previously delivered) software.”
“software products change or evolve ... once in operation, defects are uncovered, operating environments change and new user requirements surface.” These must be covered by software maintenance.
“The Disciplined Agile Delivery (DAD) process framework is a people-first, learning-oriented hybrid agile approach to IT solution delivery. It has a risk-value lifecycle, is goal-driven, is scalable and is enterprise aware.”
or ... all the things DAD has integrated
Take the good things to extremes
Methodology for effective modeling and documentation
Agile methods to work effectively with the data aspects your project
Lean thinking applied to software development
“People build solutions -- not processes, not tools, not practices -- people.”
Individuals and interactions over processes and tools.
“the one voice of the customer”, the stakeholder proxy
Produces the actual solution for stakeholders: developers, programmers, ...
Team facilitator, guide, servant-leader, agile coach (ScrumMaster).
NOT: boss, manager or project manager
Remember: agile teams are self-organizing
Owns architecture decisions, facilitates creation and evolution of the overall solution design. Often the senior developer.
The fundamental purpose of the Inception phase is to come to an agreement within your team and with your stakeholders regarding a strategy for the rest of the project.
=> Active stakeholder participation
=> Shared vision
But only hours or days, not weeks or months No BRUF!
As a type of user, I want some goal so that some reason.
(see Bill Wake)
Software Modeling & Design, by Hassan Gomaa Ch. 21
Use Cases can help with initial modeling
Some handwritten notes on UML: UML.pdf