BluePrint Tool
Labels: business analysis, requirements, requirements documentation, requirements tools
![]() |
Labels: business analysis, requirements, requirements documentation, requirements tools
You probably need some sort of daily gauge letting you know where your project is in relation to your constraints. Some common project constraints are pages of documentation, number of requirements, hours, or budget. Try to keep track of these stats daily to maintain a dashboard both for yourself and for the stakeholders on your project.
It could look something like this:
These graphs will provide you with a quick easy to understand overview of where you are with your project constraints. With this understanding, you can better direct your work or your teams and when needed, go to your stakeholders and tell them that they may not get what they wanted with evidence why. It could motivate them to provide you with the additional resources you need to get the project completed right!
Labels: requirement documentation, requirements
Be wary the out of scope feature pile. Sure it is a quick and easy way to kill off an entire new project's worth of work, but did you kill it the right way? Make sure that when moving requirements to an out of scope status that the reasons for the decision are recorded and who made those decisions.
The best case will be where the feature has been mapped against a business objective that will not contribute enough to the organization's end goals. Can't argue when someone's favicon didn't make the cut since it would provide an estimated 2 cents to the yearly income from bookmark recognition.
The worst case will be a project's funder coming to you asking why his requested feature to save sales proposals in the system didn't make the cut while you stare blankly at your documentation looking for anything.
Labels: requirements, requirements documentation, scope control
Labels: business analysis, Business Objectives, requirements, scope control
This week I’m at the International Working Conference on Requirements Engineering: Foundation for Software Quality (REFSQ’09) and the Conference on Advanced Information Systems (CAiSE’09) in Amsterdam. The first two days are at REFSQ where there are just over 30 experts in requirements engineering in attendance, primarily from academia and a combination of Europe, USA, and Canada. It’s been great fun to catch up, share ideas, and find new collaboration opportunities with colleagues in the field. And after a few years of attending conferences with many of the same people, it’s really quite fun to develop a community of friendly people who I look forward to seeing at each conference.
I’m actually here to present a paper I co-wrote with James Hulgan, also from Seilevel titled Experiences with a Requirements Object Model (our ROM) - more on that a bit later. And as always in my “Live from…” posts, I’ll post a few summaries of talks or inspiring ideas that come up this week.
The format of the REFSQ workshop is really one of my favorites. Only about a third of the workshop is spent listening to presentations, with the rest focused on discussions inspired by those presentations (or other random stories). For each talk, there is a template for the last slide that everyone follows, including:
Then they have a discussant assigned to each paper who also read the paper, and this person presents answers to these same questions from their point of view about the paper. And this leads us into the Q&A or discussions.
As a side note: In case you don’t know how to say REFSQ, it rhymes with “rescue”. In fact, every time I hear it said here, I think they are saying “rescue” instead of “refsq” and perhaps this is a sign of what we are doing here!
Labels: REFSQ, requirements, Requirements engineering, software requirements
Labels: RE'09, requirements, training
I have got to be one of the biggest proponents of checklists, I literally live by checklists. I have a personal belief that people just cannot remember everything they need to do in a specific situation if it’s more than a few actions - whether it is going to the grocery store, kicking off a project, doing weekend house chores, or hiring a new employee. There are mindless activities we do every day, many of them habitual and easy, but without checklists as reminders, it seems reasonably likely that we’ll forget at least some portion of the things that need to be done.
For example, if I’m going to the grocery store and I need 30 things, then without a list, I may be able to remember 9 of them, or using categorizations of things like meats, vegetables, etc. even 25 of them, maybe even 29, but if I don’t get all 30, I feel inefficient because I’ll have to go back to the store again.
If I’m starting a new project, there are easily 50 things that I have done for years when starting projects, so you might think I can do them out of habit. But the reality is, it’s really quite hard to remember all 50 of them every time. And maybe doing 40 is enough, but I’m the type of person who doesn’t want to take a chance that one of the 10 tasks I didn’t remember is the one that will most impact the project success.
In requirements, I have lots of checklists for things such as: which requirements models to do at specific points in the project, which questions to ask stakeholders, which materials to take to workshops, which quality checks to do before delivering a document to the customer, and which information to ramp my team on first.
My theme of using checklists isn’t based on any novel concepts. From the 1950’s, we have Miller’s Magic number which says humans can remember only 7 +/- 2 items. It’s true – you can test yourself, or I can test you – it’s really hard to remember more than that without a formal model in place. Then there are concepts which David Allen presents in Getting Things Done who contends that writing things down and getting them out of your mind allows you to be more productive because you aren’t focusing brain power on trying to remember them.
But most recently, I read an article from The New York Times which made me light up. It is a recap of research that showed surgeons can save more lives if they use checklists. In this study, they found using a checklist “that includes steps as basic as having the doctors and nurses introduce themselves can significantly lower the number of deaths and complications”. It further explains the success - that by using a checklist with under 20 items, the average death rate fell more than 40% and complication rates fell by 33%.
Saving lives is certainly way more impactful than my checklists (at least so far!), but you can see why I was thrilled to find yet another point of validation behind the checklists that run my life.
(As a side note, my weekend checklist has 18 things on it to complete, and this was not one of them!)
Labels: checklists, millers magic number, requirement models, requirements
Labels: requirements, requirements patterns
Labels: business analyst, product manager, requirements
Labels: pass down, requirements, software requirements
Labels: prioritize, requirements, software requirements, traceability
Oh, and, as Mike implied, eating your vegetables usually won’t make the top 10; but, that’s no reason not to eat them.
Labels: objectives, requirements, software requirements, team player
You should use priority categories instead of an ordered list. The classic “high, medium, low” is easy, but doesn’t really map well to the real world. “Medium” is often just code for “not in this release, but not a bad idea”.
More realistically, you can use MoSCoW ratings (must, should, could and won't have). You may need to further prioritize the “should” or "could" requirements as “high, medium, low” so the team knows what to work on first when the “musts” and "shoulds" are done (wishful thinking!). Remember - these categorizations must be based on the business objectives.
So, what do you do when there is disagreement about the prioritization? I’ll cover that in Part II.Labels: prioritize, requirements, software requirements
Labels: business analyst, product manager, questions, requirements, software requirements
Labels: requirements, systems engineering
Labels: requirements, systems engineering
Labels: requirements, risk management, software requirements
The opening talk on Monday at INCOSE 2008, “Crossing Borders by Applying Systems Engineering”, was by Bert Klerk, the CEO of ProRail, who runs the railway system of the Netherlands. Behind Japan and Switzerland, this country is 3rd in the list of most densely used railroad networks. They have 6500 km of track and because they are a land of much water, 4500 bridges to cross. This is clearly a large system which has had great success from applying systems engineering principles.
This is not the first time I’ve heard a talk about a project for Europe’s rail systems. I find it to be a very interesting topic, and though I have never worked on a railway project, I can see the challenges so clearly. This talk highlighted an example of a track to be laid that in particular had to cross a small river. They put out bids to contractors to see who could most cleverly navigate this river while staying under budget; and the winner’s solution was implemented. But the point here is systems engineering on this scale involves hundreds of stakeholders. When dealing with these large scale systems – you cannot just think about the users at all, the scope spans way beyond that. It’s not just those people using the tracks, those operating and maintaining them, but also those who are impacted by the train system deployed – the town people who enjoy the river. And while they are not direct users, you cannot ignore them – they might actually put up big roadblocks to deploying the system.
Anyway, if you can imagine how hard it is to get 200 users aligned – now imagine you have 30 types of stakeholders with a couple hundred of each and most of them will never actually use the thing you are building. Try to keep that group satisfied!
Labels: requirements, software requirements, stakeholders, subject matter experts, users
I was giving some thought to what it meant to be a good product manager. There are many good posts written about the typical analysis skills found in a product manager, so I wanted to think a little outside the normal box. Here's what I came up with:
Labels: product management, product manager, requirements, software requirements
Labels: best practices, conflict, requirement documentation, requirements, requirements tools, software requirements
Labels: product management, requirements, requirements documentation, software requirements
Labels: quality, requirements, software requirements, technical debt
Unfortunately, most of us know about projects that had low user adoption because users found them:
How does this happen? Performance and usability requirements are missing or unfulfilled. Frequency of Use is part of the use case meta-data. A use case's frequency of use combined with number of users helps us determine the importance and benefit of writing performance, ease of learning, and ease of use requirements for it. (I’m assuming you have limited time and must prioritize which requirements you write).
Consider the following graph:
Labels: frequency of use, requirements, software requirements, use case
Labels: Business Objectives, requirements, software requirements
Labels: requirements, scope control, software requirements
Labels: requirements, scalability
I was doing some research to gather various industry opinions on a topic. So like any good requirements person, I thought I would check the BABOK! I headed out to the IIBA website to open it. I opened it online and remembered it was 329 pages, so I saved it to my hard drive, thinking that would be better for performance. And while it might have been “better”, it was far from usable.
I had to quickly jump into the document to get what I needed and close the PDF so that I could actually do other things on my laptop again. I checked my system resources and it was using 88% of my CPU and about ½ a gig of memory! And what should have taken about 2 minutes, took me 15 minutes.
This is my primary issue with the BABOK - usability. There may be fantastic information in it, but it’s so hard to find it, that I’m completely resistant to do so. The irony is that I think we all know how unusable 300 page requirements documents are. And we know how important it is to understand how your user will use a product in writing the requirements. Are we the shoemaker’s kids here? If you are going to have over 300 pages of “how to” data, surely there is a better representation of that than a flat file. For example, a navigable wiki-site would be more easy to use. It could be more of a tree-like implementation that allows varying views of the data and fast paths to get down into the details.
Now all of that said, I’d hate to just complain and not try to help fix the problem! The BABOK version 2 is coming out end of March for review, and so I hope to be able to provide my input if this has not been improved.
Labels: IIBA BABOK, requirements
When gathering requirements there is a natural desire on part of both the requirements analyst and the subject matter expert to “just get on with it.” Both sides want to see models, use cases, functional requirements, non-functional requirements and all the myriad other artifacts that are created as a prelude to the actual creation of the software. In the process of doing this one thing that very often gets a short shift is properly identify and defining ALL the actors – the people who will actually be using the software that is being built.
This point hit home last week when I was surfing the web looking to see if I might be able to refinance my current home mortgage at a lower rate. On the one hand, with the current melt down of the housing market, they tell us that the sky is falling on our head. On the other hand, the Federal Reserve seems to be cutting rates every 30 minutes. So, I figured that this might be a good time to see if I could save some money with a better mortgage rate.
The first site I went to was one that advertises heavily on any number of television channels. They had gotten my attention and I figured this was as good a place as any to see if it was possible to shave a few points off my current rate.
To my dismay, I was confronted with a one page form that I was asked to fill out BEFORE I could even get an idea of what current rates might be. I looked around in other parts of the web site to see if the information I was looking for was available. No such luck. After a few minutes of this futility I gave up and moved on to another site that did not make me jump through hoops just to see what rates were.
I was mouthing some choice expletives under my breath about the sheer stupidity of the first site and how many potential customers they were losing this way when I started thinking as to whether this whole fiasco could have been avoided in the first place.
I could not have possibly been the only person who had come by their site looking for some information before delving deeper. And again, my behavior was not particularly unusual or radical as to be a corner condition. Many, if not most, potential customers were likely to first check out the rates before they spent fifteen minutes or more filling out an online form. So, how could a company that spends hundreds of thousands of dollars on advertising get something so basic as who is using their web site so wrong?
One possible answer might be that they did not spend enough time fleshing out their “actors.” In the above situation if you describe your “actors” as people who are applying for loan, then the rest of the site makes sense.
On the other hand, they are missing a whole lot of potential customers like me. People, who, while they might be in the market for a loan are not yet ready to apply for one. These are people who want to see what you have to offer before they start giving you a whole lot of personal information.
If this is indeed the case, a little bit of time spent up front in properly fleshing out their actors would have resulted in a radically different user experience and web site. If this is not the case and they are really looking only for people who want to apply for a loan, then their site should reflect clearly the kind of “actors” they are looking for. So, you either have missing requirements or actors who were not properly fleshed out. Not good whichever way you look at it. The sad part is that this is eminently avoidable with basic requirements methodology and techniques.
The next time you are starting off a project, spend some extra time up front properly identifying your actors. A few simple tips / questions you can use when identifying your actors.
Obvious? Yes. Common sense? Yes. Rocket science? No. Done always? Unfortunately no.
Resist the temptation to just get on with it and pay attention to your actors. Actors are real people not much different from you or me in many ways. So, if you are part of a project building software that is likely to get under your skin or drive you up the wall, chances are that you are not alone. Stop them.
You are not a stick figure. Nor are the actors in your requirements models.
Labels: requirements
Labels: challenges, frustration, requirements
Labels: requirements, software requirements
Labels: requirements, software requirements
Labels: requirements, software requirements
Labels: requirements, software requirements
Labels: requirements, software requirements
Labels: context, requirements, reviews, software requirements
Labels: requirements, software requirements
Labels: requirements, software requirements
On yesterday's post, I covered how we can reduce the use of paper in requirements practices. Today I’m going to look at how we might reduce the travel as well.
Reduce travel
The second area for improvement is in reducing the necessity of travel. With the globalization of the industry, there is significant travel around the world, for teams to meet to elicit requirements. In large companies, there is even quite a bit of site-to-site travel within the same city.
Remote Tools
In order to reduce our travel (local or long distance), we need better tools for working remotely with teams. Video conference can work, as long as it’s a reasonable cost and internet bandwidths are sufficient. The technology needs to be seamless (i.e. easy to use, no delays). There need to be whiteboard solutions that make it possible for remote teams to see the same work on the board as the people in the room.
Videos
There is a time difference issue when teams are globally distributed. Currently, teams often document requirements separately and email the thoughts back and forth. They might send documents to share or emails with questions and comments. One suggestion would be to use videos to capture each team’s ideas to share back and forth. The body language and tone would not be lost as it is in text. Obviously this has to be very easy to use technology, or text will win out. Ideally some sort of voice recognition would minimize having to speak and type the thoughts.
Team rooms
For the teams in the same room, having a team room environment can work well. For some period of time, people could sit in the same building and the same room and get a lot of work done together. This would include main stakeholders, subject matter experts, requirements analysts and even the development team. The company can avoid shifting permanent desks around by just temporarily locating them to this environment. They will have more opportunities to whiteboard solutions. They could keep lots of diagrams and other thought up on the walls without having to print them to look at. It would also minimize the need for video conferencing if they were to relocate for a period of time.
Today’s take-away thought:What are your current successes and issues with video conferencing solutions you have tried? Post your comments here
It would seem that there are many opportunities that the requirements work we do could can be less environmentally impactful. However, I think much work has to be done on software and hardware tools for users to adopt such solutions.
Labels: environment, green, requirements, requirements tools, software requirements
The theme for IEEE’s RE08 conference is “Requirements engineering for a sustainable world”. The obvious topics that relate to this theme are about how we gather requirements for projects that are targeted at being “green”. However, I decided to look at the problem from a different viewpoint. I was curious about how we can reduce our impact on the environment when eliciting, documenting and reviewing requirements.
The two areas that jumped out at me were:
Today’s post focuses on the paper reduction and my next post will cover the travel aspects.
Reduce Paper
The first suggestion for greener requirements processes is to reduce the use of paper. It has been my experience that people print more “stuff” for requirements activities than for most other parts of the software development process. My initial thought is that we print so much because we need to see things next to each other that do not fit nicely on a screen. For example, we like to quickly flip between pages of text, look at large diagrams of a system, and draw on documents. A document is inherently linear in its organization. If requirements relate to multiple sections of the document, it’s hard to switch between non-adjacent sections. And, for whatever reason, it’s easier to read some things on paper than on a screen. A few immediate solutions come to mind around software and hardware tools.
Requirements Tools
A well-designed requirements tool that is widely adopted in an organization (over using Word and Excel) would reduce a lot of the need to print requirements documents. Ideally, a requirements management tool would manage text requirements and associated diagrams and allow you to link objects at any level, quickly and intuitively. Unfortunately, the requirements tools offered to date are not solving this problem well.
Bigger Viewing Areas
I recently increased the size of the monitor on my home computer. It’s amazing how useful the increased size is for working on large volumes of information, simply because I can view more items at once. Potentially, we could use larger LCD monitors in our primary working spaces. This would require less flipping around within documents and reduce the urge to print everything out.
Portable solutions
I sometimes see people print documents to bring to meetings to read once or share with others. The first obvious solution to this problem is to ensure the people creating requirements have laptops. Secondly, we need projectors to easily share information with others. I’d like to see a projection option built into a laptop so we can avoid lugging projectors around. Imagine you could run to someone’s desk and just project onto their wall without any setup. A final suggestion here is to use tablet PCs. I have no personal experience with them but, if they allowed us to easily sketch diagrams, move things around on the screen quickly, and jot notes on existing documents, tablets could be easier to use than the current common solutions (and require less paper of course!).
Reusable resources
When there is no option other than hand-writing and drawing things, we should use whiteboards as much as possible (ideally scanning ones that can capture your work electronically). We could also use sticky flip-chart paper that is reusable like a whiteboard. Heck, maybe even use reusable whiteboard-style sticky notes!
Disclaimer: There are some obvious assumptions here around the technologies being more energy efficient than the resources used in paper waste.
Take-away question: Notice every time you print something in the next week. Why did you need to print it? Post your realizations here
Labels: environment, green, requirements, requirements tools, software requirements