What it drove home to me was how little has changed in the 20 or so years since it was published. Good requirements are still central to the value IT delivers and we (as a society) still suck at them.
Tuesday, December 17, 2013
Classic Software Engineering Essay
What it drove home to me was how little has changed in the 20 or so years since it was published. Good requirements are still central to the value IT delivers and we (as a society) still suck at them.
Sunday, December 15, 2013
Service/Security Levels
For example when I'm doing security classification I like to use Titanium, Steel, Glass. This gets across that working with titanium is quite difficult, steel is easier, but if I want the service to be open and easily visible glass is a better choice.
It also gets away from the idea that more expensive is better.
Tuesday, July 17, 2012
GRACEful RAPID Decision Making
I love RACI matrices as a tool, but it always bothered me that governance wasn't covered and that the I for "Inform" was a little weak. Below are two alternatives, once if which I made up without meaning to, the other (far better one) focused on how to make operational decisions and changes.
I wanted to cover "Governance", and change Inform" to "Engage" which has the added bonus of being a meaningful word
- Govern: Oversight and stage-gate owner. May override decisions or act as impasse breaker.
- Responsible: Actually performs the activity and recommends preferred option.
- Accountable: Will be held responsible for the activity being performed, decision making authority
- Consulted: Opinions consulted in early decision stages, and kept aware of any outcomes
- Engaged: Made aware of decisions, issues and outcomes throughout project
Bain and Co also have a great model called RAPID that's better suited to operational decisons that setting up project governance:
- Recommend
- Making a proposal on a key decision, gathering input, and providing data and analysis to make a sensible choice in a timely fashion
- Consulting with input providers-hearing and incorporating their views, and winning their buy-in
- Agree
- Negotiating a modified proposal with the recommender if they have concerns about the original proposal
- Escalating unresolved issues to the decider if the "A" and "R" can't resolve differences
- If necessary, exercising veto power over the recommendation
- Perform
- Executing a decision once it's made
- Seeing that the decision is implemented promptly and effectively
- Input
- Providing relevant facts to the recommender that shed light on the proposal'sfeasibility and practical implications
- Decide
- Serving as the single point of accountability
- Bringing the decision to closure by resolving any impasse in the decision-making process
- Committing the organization to implementing the decision
http://www.bain.com/publications/articles/who-has-d-how-clear-decision-roles-enhance-organizational-performance.aspx
Tuesday, December 13, 2011
Easy to Use vs Hard to Misuse
- My HP12C financial calculator is simple for complicated calculations (Thanks to RPN) or financial calculation (Thanks to dedicated functions; but my wife can’t even use it to do simple arithmetic. It’s very easy to use – it’s just very easy to misuse it as well as normal people don’t think in Reverse Polish.
- My Blue HP is simple for my wife as she just types in the calculation, or for me when I’m learning new techniques as it displays everything on screen. It’s very hard to “misuse” this calculator as it feedbacks everything you’re doing to you, and uses the “standard” mental model of arithmetic.
- My Casio Calculator watch is simple for use on the go; despite the numbers being tiny and a lack of dedicated functions.
- Being hard to misuse generally comes from the systems metaphor matching to users mental model with the minimum of differences (My wife think of 1 + 1 = 2, as does my calculator.)
- Being hard to misuse is helped by copious user feedback – that is useful for keeping people calm that their operation is on track but may not be absolutely necessary (think confirmation screens, double entering passwords, etc)
- Being easy to use generally comes from dispensing with the feedback and cues and exposing only the information the user needs to know (Simple, powerful inputs. Command lines, etc)
- Being easy to use is enhanced by coming up with a different metaphor (Instead of “1 + 1 = 2” you get “1 push 1 +”) whose benefits are only obvious with prolonged usage.
- Easy to use is all about context. What makes my calculator watch easy is the tiny keys and screen which give portability – but in a desktop calculator this would be a major fault.
Wednesday, August 24, 2011
Little Change In No Silver Bullet
Thursday, May 5, 2011
Setting Scope in Dimensions
- In-Scope: My responsibilities as a project
- Out-Of-Scope: Things that will not be delivered or considered
- Dependent-Scope: Other people's responsibilities, that my project relies on
- Problem: User issues to address or ignore
- Functional: User facing features that are included or excluded
- Non-Functional Requirements: All non-functional requirements can be part of scope, either as area we are targetting to improve, or where we make no promises. (Note that I'm a big fan of phrasing these as negative NFRs - things we can do without is what drives intelligent compromise.)
- System: Which technical systems we are responsible for, or will not change
- Interfaces: System interfaces or integrations that we take responsibility for changing, or normally rely on others for
- Activity: User activity or tasks considered, or ignored (Useful as part of a process when you highlight activities to automate or stay manual)
- Users/Customers: Which user bases are considered, and which excluded
- Organisational: Parts of the organisation whose issues and needs are in scope - very useful when deciding stakeholder and interview lists.
- Legislative: Which parts of law are to be complied with, or whose compliance is a main point of the program
- Deliverables: What documents, sing-offs, or artefacts are included
- Detail: How much details (Descriptive vs Prescriptive) will be included
- Supporting: Which activities or systems will be able to function based on our delvierables. This one's quite useful to say you will produce just-enough to support a particular activity or example (say, estimation) but not enough for another (say, full-build)
Tuesday, March 1, 2011
Logo for Android
I am really enjoying having Logo on my phone. Making that little turtle run around takes me back to first learning about variables and sub-routines on an Apple ][e. Good times.
This is almost definitely my geekiest post ever.
This message and any attachment is confidential and may be privileged or otherwise protected from disclosure. You should immediately delete the message if you are not the intended recipient. If you have received this email by mistake please delete it from your system; you should not copy the message or disclose its content to anyone.
This electronic communication may contain general financial product advice but should not be relied upon or construed as a recommendation of any financial product. The information has been prepared without taking into account your objectives, financial situation or needs. You should consider the Product Disclosure Statement relating to the financial product and consult your financial adviser before making a decision about whether to acquire, hold or dispose of a financial product.
For further details on the financial product please go to http://www.bt.com.au/general/rse.asp
Past performance is not a reliable indicator of future performance.