humane assessment: taming the elephant from the development room
DESCRIPTION
I used this set of slides for a talk I gave at SI-SE Fachtagung in Zurich.TRANSCRIPT
taming the eleph
ant
from the developme
nt room
humaneassessment
humane-assessment.com
technical debt
technical debt
technical debt
development
http://www.humane-assessment.com/guide/assessment-costs
development
development
decisiondevelopment
decisiondevelopment
decisiondevelopment
development
assessment
decisiondevelopment
assessment
decisiondata
assessment
decisionanalysesdata
assessment
decisionanalyses modelsdata
assessment
decisionanalyses modelsdata
assessment
applyanalysis
interpretconfident?
hypothesize
existinganalysis?
applyanalysis
interpretconfident?
hypothesize
existinganalysis?
applyanalysis
interpretconfident?
craftanalysis
hypothesize
craftanalysis
activities
daily
spike
strategic
facilitator
stakeholder
skills tooling
buildup
throwaway
decisionanalyses modelsdata
assessment
NOM = ?
public class Library {List books;public Library() {…}public void addBook(Book b) {…}public void removeBook(Book b) {…}private boolean hasBook(Book b) {…}protected List getBooks() {…}protected void setBooks(List books) {…}public boolean equals(…) {…}
}
NOM = 7
public class Library {List books;public Library() {…}public void addBook(Book b) {…}public void removeBook(Book b) {…}private boolean hasBook(Book b) {…}protected List getBooks() {…}protected void setBooks(List books) {…}public boolean equals(…) {…}
}
NOM = 7 6
public class Library {List books;public Library() {…}public void addBook(Book b) {…}public void removeBook(Book b) {…}private boolean hasBook(Book b) {…}protected List getBooks() {…}protected void setBooks(List books) {…}public boolean equals(…) {…}
}
NOM = 7 6 4
public class Library {List books;public Library() {…}public void addBook(Book b) {…}public void removeBook(Book b) {…}private boolean hasBook(Book b) {…}protected List getBooks() {…}protected void setBooks(List books) {…}public boolean equals(…) {…}
}
NOM = 7 6 4 3
public class Library {List books;public Library() {…}public void addBook(Book b) {…}public void removeBook(Book b) {…}private boolean hasBook(Book b) {…}protected List getBooks() {…}protected void setBooks(List books) {…}public boolean equals(…) {…}
}
NOM = 7 6 4 3 2
public class Library {List books;public Library() {…}public void addBook(Book b) {…}public void removeBook(Book b) {…}private boolean hasBook(Book b) {…}protected List getBooks() {…}protected void setBooks(List books) {…}public boolean equals(…) {…}
}
NOM = 7, 6, 4, 3, 2 ?
public class Library {List books;public Library() {…}public void addBook(Book b) {…}public void removeBook(Book b) {…}private boolean hasBook(Book b) {…}protected List getBooks() {…}protected void setBooks(List books) {…}public boolean equals(…) {…}
}
NOM = 7, 6, 4, 3, 2 ?
public class Library {List books;public Library() {…}public void addBook(Book b) {…}public void removeBook(Book b) {…}private boolean hasBook(Book b) {…}protected List getBooks() {…}protected void setBooks(List books) {…}public boolean equals(…) {…}
}
your responsibil
ity
decisionanalyses modelsdata
assessment
analyses modelsdata
importers modelsdata analyses
importers modelsdata analyses
importers modelsdata analyses
engines
importers modelsdata analyses
enginesmoosetechnology.org
importers modelsdata analyses
enginesmoosetechnology.org
craftanalysis
activities
daily
spike
strategic
facilitator
stakeholder
skills tooling
buildup
throwaway
strategicmodel abstraction
public void doSomethingWithEntity( final int id, final String code) {
Entity entity = lookupBy(id, code); doSomething(entity);}
((model allAttributes select: [:a| a hasClassScope not]), model allParameters) select: [ :each | ('*id*' match: each name) or: [ '*code*' match: each name ] ]
public void doSomethingWithEntity( final int id, final String code) {
Entity entity = lookupBy(id, code); doSomething(entity);}
spikea JBoss memory leak
@Remote(...)@Stateless(...)public class XYZService { @EJB private ABCService abc; ...}
@Remote(...)@Stateless(...)public class ABCService { @EJB private XYZService xyz; ...}
@Remote(...)@Stateless(...)public class XYZService { @EJB private ABCService abc; ...}
(model allClasses select: #isRemote) cyclesToAll: [ :class | class attributes flatCollectAsSet: [ :attr | attr declaredType withSubclassHierarchy ]]]
@Remote(...)@Stateless(...)public class ABCService { @EJB private XYZService xyz; ...}
taming the eleph
ant
from the developme
nt room
humaneassessment
humane-assessment.com
Tudor Gîrbawww.tudorgirba.com
http://creativecommons.org/licenses/by-nc-sa/3.0/