Gender: Female
Status: Married
Age: 49
Sign: Aquarius
State: Pennsylvania
Country: US
Signup Date: 12/23/2006
|
|
|
|
Tuesday, August 07, 2007
 |
Category: Jobs, Work, Careers
Author: Geri Schneider Winters RUP describes a process for developing software systems. It seems there are so many variations of RUP, how do you know which is best for you and your organization, if any? What do all those acronyms mean? Where are these things coming from? RUP is the Rational Unified Process. This process is a combination of two earlier processes - the Rational Process and the Objectory Process. When Rational Software merged with Objective Systems in 1995, they began the work to merge their software development processes. This new merged process was released in 1997 as the Rational Unified Process or RUP. RUP was designed to cover everything known at that time about how to develop software - from very large systems to very small systems. It was expected that users of RUP would customize it for their project and work environment. RUP describes software development in terms of four phases: Inception, Elaboration, Construction, and Transition. RUP also describes software development in terms of nine disciplines: Business Modeling, Requirements, Analysis & Design, Implementation, Test, Deployment, Configuration & Change Management, Project Management, and Environment. Not everyone agreed that RUP was complete or correct. Scott Ambler in particular discussed a lot of what he thought was missing in the RUP. In 2005, he and his partners released a book called the Enterprise Unified Process or EUP. This book described the missing elements of RUP. In particular, Scott added a fifth phase - maintenance - to the project lifecycle. Unified Process or UP, was a request for proposal issued by the Object Management Group. They were thinking of creating a standard for a meta-model process - or to put it another way, a description of how to create a process. This effort was abandoned, so there is currently no UP standard. Some people use the term UP to refer to the core elements of RUP: risk managed, use case driven, architecture-centric, and iterative development. OpenUP is a customized version of RUP which is designed for small and agile projects. OpenUP is an iterative software development process that is minimal, complete, and extensible. It is based on managing risk in an iterative development, use case driven, architecture-centric process. OpenUP was donated by IBM Rational (I believe in 2005) to the Eclipse foundation and the open source communitee. You may download it free at http://www.eclipse.org. Here you may also download EPF, the Eclipse Process Framework, which is a tool you can use to develop your own process or modify OpenUP. EPF is a free, open source subset of the IBM Rational tool Rational Method Composer. EssUP - the Essential Unified Process - is a product of Ivar Jacobson International. It appears to have been released around 2006. EssUP is based on the idea of a Practice. These Practices are based on best practices from RUP, Agile, and process improvement. Practices are grouped into the categories of Iterative, Architecture, Use-Case, Component, Model, Product, Process, and Team. For example, a Use-Case Practice describes the work flow of collecting requirements in a use-case driven approach. Along with the work flow, the Practice describes the competencies that are required to do the work of the Practice. So if your Use-Case practice requires the use of class diagrams, then one of the competencies required is that someone involved in this process has to understand and be able to produce class diagrams. EssUP intends that a company would use the basic elements - Practices and Competencies - to describe their processes and to direct process improvement efforts. RUP, EUP, UP, OpenUP, and EssUp are all variations of a risk managed, use case driven, architecture-centric, and iterative development process. RUP tends to be popular in large, high ceremony projects. EUP is popular with those involved with Enterprise level concerns. UP refers to the basic process that the rest are built on. OpenUP is an open source variation for small, agile projects. Finally, EssUP is a variation focusing on the practices and competencies of software development, each of which can be independently implemented at a company. =============================================== Now it is your turn. Have you or your company considered the use of RUP, EUP, UP, OpenUP, or EssUP? Are you using any of these processes in your projects? ================================================ You are invited to re-publish articles from this blog, in your publication or website, as long as the article is intact and you include the following Byline paragraph (with live links) after each article you use… START BYLINE * Article used with permission from Wyyzzk, Inc.'s Resources for Business Analysts site at http://www.writingusecases.com This website of reports and tips contains information to help you succeed as a Business Analyst in IT. END BYLINE
Powered by  | | English | | Albanian | | Arabic | | Bulgarian | | Catalan | | Chinese | | Croatian | | Czech | | Danish | | Dutch | | Estonian | | Filipino | | Finnish | | French | | Galician | | German | | Greek | | Hebrew | | Hindi | | Hungarian | | Indonesian | | Italian | | Japanese | | Korean | | Latvian | | Lithuanian | | Maltese | | Norwegian | | Polish | | Portuguese | | Romanian | | Russian | | Serbian | | Slovak | | Slovenian | | Spanish | | Swedish | | Thai | | Turkish | | Ukrainian | | Vietnamese |
|
|
|
|
Friday, July 27, 2007
 |
Category: Jobs, Work, Careers
Author: Geri Schneider Winters Some of you may be working on systems with many complex relationships between the parts. These complex systems may be described as a system of systems, or may be described as a product line, or perhaps both at once. In these cases, you will often find that the requirements of a large, overall system are shared among a number of related projects, each of which implements some well-defined part of the overall system. In this environment, it is really good to have a team of Business Analysts who work collaboratively on all the requirements of all the projects. Another approach is to have one or more Business Analysts work on the shared requirements, then have Analysts on each project work on the detailed requirements for that project. If you do not have that kind of relationship between Business Analysts in your company, it is good for everyone to work informally with the Analysts on the other projects to share work as much as possible. This will lead to greater consistency and will avoid wasted effort in developing the same requirements multiple times. You can use tools such as DOORS or Rational Requisite Pro to show the relationships between the requirements in different projects. For example, you might define a ReqPro project for a set of common requirements that all the projects share, then put a folder in that ReqPro project to store the requirements of one software project. That way, all of the related projects can see what is common and what is specific to a particular project. By reviewing the requirements of other related projects, a project team may find some similarities they can take advantage of. If you have to keep one version of a set of requirements for one set of projects, and develop a new version of those requirements for another set of projects, then you would likely want to copy the first set of requirements, for example into a new ReqPro project, then edit the requirements in the new project. You can set up a trace relationship between the relationships in the two ReqPro projects. I do not know DOORS, but assume you can set up similar structures in that tool. A good book for project teams involved with complex projects is "Designing Software Product Lines with UML", by Hassan Gomaa. I have also written a paper with an example of a system of systems/product line approach to requirements. It is called "Requirements Structure in a System of Systems / Product Line Architecture. You can find it at: http://www.writingusecases.com/wordpress/index.php/ report-requirements-structure-in-a-system-of-systems-product-line-architecture/ =============================================== Now it is your turn. Are you working on a set of complex, inter-related projects? Are some of the techniques suggested here or in the paper useful to you? ================================================ You are invited to re-publish articles from this blog, in your publication or website, as long as the article is intact and you include the following Byline paragraph (with live links) after each article you use… START BYLINE * Article used with permission from Wyyzzk, Inc.'s Resources for Business Analysts site at http://www.writingusecases.com This website of reports and tips contains information to help you succeed as a Business Analyst in IT. END BYLINE
Powered by  | | English | | Albanian | | Arabic | | Bulgarian | | Catalan | | Chinese | | Croatian | | Czech | | Danish | | Dutch | | Estonian | | Filipino | | Finnish | | French | | Galician | | German | | Greek | | Hebrew | | Hindi | | Hungarian | | Indonesian | | Italian | | Japanese | | Korean | | Latvian | | Lithuanian | | Maltese | | Norwegian | | Polish | | Portuguese | | Romanian | | Russian | | Serbian | | Slovak | | Slovenian | | Spanish | | Swedish | | Thai | | Turkish | | Ukrainian | | Vietnamese |
|
|
|
|
Monday, July 16, 2007
 |
Category: Jobs, Work, Careers
Author: Geri Schneider Winters Another great question came from Adesh Sharma about whether or not he could write alternatives to alternatives in use cases. There is no actual standard for the formatting of a use case, just guidelines and best practices. Your primary goal in writing use cases is communication. No matter how you structure a use case, if the readers do not understand it, then you need to change the use case. In some cases, you will find that describing an alternative of an alternative makes a lot of sense, and actually improves the readability of the use case. In other cases, the use case will be more confusing. Here is an example I created specifically to show the use of an alternative to an alternative. I think in this case it reads OK, and may be a reasonable way to .. this use case. Place Order Use Case Basic Flow of Events ===================== 1. The use case begins when the customer selects Place Order in the order processing software. 2. The order processing software displays an order form to the customer. 3. The customer enters his or her customer id into the order form. If the customer does not have a customer id, go to the alternative "The Customer does not have a customer id", which is shown below. 4. The system uses the customer id to get the customer's account information from the customer database. 5. The system displays the customer's name and shipping address on the order form. 6. The customer enters a product code into the order form. 7. The system uses the product code to get the product description and price from the product database. 8. The system displays a description and price for the product on the order form. 9. The order form adds the price to the order total. 10. The customer enters credit card payment information into the order form. 11. The customer selects the Submit button on the order form. 12. The order form sends the information entered by the customer to the order processing software. 13. The order processing software verifies the information from the order form. 14. The order processing software saves the order as pending in the database. 15. The order processing software forwards credit card payment information to the accounting system. 16. The accounting system sends a confirmation to the order processing software. 17. The order processing software marks the order confirmed in the database. 18. The order processing software displays an order ID to the customer, and the use case ends. Alternative: The Customer does not have a customer id ====================================================== 1. The customer selects create account. 2. The system displays an account creation form. 3. The customer completes the name and shipping address fields. 4. If the customer is a corporate customer, include the alternative "Add Corporate Payment Information", which is shown below. 5. Otherwise, the customer enters his or her credit card information into the payment fields, and a billing address (if different from the shipping address), into the billing address field. 6. The alternative ends. Alternative: Add Corporate Payment Information =============================================== 1. The customer selects enter corporate payment information. 2. The system displays a corporate payment information form. 3. The customer selects the pay period, one of Net in 15 days, Net in 30 days, or Net in 45 days. 4. The customer enters the accounts receivable address. 5. The customer enters a contact person for the account. 6. The customer enters the PO number for the invoice. 7. The customer uses the note field to enter any additional information that may be required on the invoice. 8. The alternative ends. If my customer has trouble understanding this use case, I would rewrite it to incorporate the steps of "Add Corporate Payment Information" into the alternative "The Customer does not have a customer id" in this manner: Alternative: The Customer does not have a customer id ====================================================== 1. The customer selects create account. 2. The system displays an account creation form. 3. The customer completes the name and shipping address fields. 4. If the customer is a corporate customer, do these steps: 4.1. The customer selects enter corporate payment information. 4.2. The system displays a corporate payment information form. 4.3. The customer selects the pay period, one of Net in 15 days, Net in 30 days, or Net in 45 days. 4.4. The customer enters the accounts receivable address. 4.5. The customer enters a contact person for the account. 4.6. The customer enters the PO number for the invoice. 4.7. The customer uses the note field to enter any additional information that may be required on the invoice. 5. Otherwise, the customer enters his or her credit card information into the payment fields, and a billing address (if different from the shipping address), into the billing address field. 6. The alternative ends. =============================================== Now it is your turn. Do you have a situation where you need to describe alternatives of alternatives? What approach do you use to structure your use cases in that situation? ================================================ You are invited to re-publish articles from this blog, in your publication or website, as long as the article is intact and you include the following Byline paragraph (with live links) after each article you use… START BYLINE * Article used with permission from Wyyzzk, Inc.'s Resources for Business Analysts site at http://www.writingusecases.com This website of reports and tips contains information to help you succeed as a Business Analyst in IT. END BYLINE
Powered by  | | English | | Albanian | | Arabic | | Bulgarian | | Catalan | | Chinese | | Croatian | | Czech | | Danish | | Dutch | | Estonian | | Filipino | | Finnish | | French | | Galician | | German | | Greek | | Hebrew | | Hindi | | Hungarian | | Indonesian | | Italian | | Japanese | | Korean | | Latvian | | Lithuanian | | Maltese | | Norwegian | | Polish | | Portuguese | | Romanian | | Russian | | Serbian | | Slovak | | Slovenian | | Spanish | | Swedish | | Thai | | Turkish | | Ukrainian | | Vietnamese |
|
|
|
|
Friday, July 13, 2007
 |
Category: Jobs, Work, Careers
Hey everyone! My husband and co-author Jason works in Robotics, and just today one of his more expensive tools blew up with a loud bang. This is bad! Well, replacing tools was not in the budget, so I need to make a little extra money this month. So …. I'm offering you a two for one special on Rational Rose and Rational Requisite Pro self-study courses. Check this out quick, because Jason needs his new tool right away, so this offer is only good until the end of the day, Midnight, EST Monday July 16, 2007. So don't delay! Click here for Summer Special Thanks a bunch for helping us out - and enjoy the courses! Let me know what you think of them. Geri
Powered by  | | English | | Albanian | | Arabic | | Bulgarian | | Catalan | | Chinese | | Croatian | | Czech | | Danish | | Dutch | | Estonian | | Filipino | | Finnish | | French | | Galician | | German | | Greek | | Hebrew | | Hindi | | Hungarian | | Indonesian | | Italian | | Japanese | | Korean | | Latvian | | Lithuanian | | Maltese | | Norwegian | | Polish | | Portuguese | | Romanian | | Russian | | Serbian | | Slovak | | Slovenian | | Spanish | | Swedish | | Thai | | Turkish | | Ukrainian | | Vietnamese |
|
|
|
|
Friday, July 13, 2007
 |
Category: Jobs, Work, Careers
Author: Geri Schneider Winters I get my best ideas for these tips from you, my readers. This tip is a response to a question from Pete McNally on how to document requirements for reports and whether or not those requirements should be use cases. Use cases are really meant for describing a process or task. If you are going to use a use case to describe a report, what you really want to describe is what job or task a person is doing when he or she creates and views a report. Why is the person reading the report? What will the person do with the information? For example, assume someone wants to look at an application for insurance. The person wants to create and view a report of all the applications waiting for approval. Why? Because the person is reviewing applications to decide if they should be approved or not. So creating and viewing the report is one part of a larger use case - Determine Insurance Eligibility. A step of that use case would be to get a report of all applications waiting for approval. Another step would be to select an application for review (with any rules you have for which one to select, such as pick the application with the oldest filing date). Here is a bit of an example to illustrate this concept: Determine Insurance Eligibility ================================ 1. The use case begins when the Evaluator asks the system for a list of all insurance applications waiting for approval. 2. The Evaluator selects the application that has the oldest filing date. 3. The system displays the details of that application. 4. The Evaluator enters the applicant's age and medical information into the Health Calculator. 5. The Health Calculator determines the health index for the applicant and displays the health index to the Evaluator. 6. The Evaluator enters the applicant's age, city and state of residence, number and age of dependents, and the health index into the Rate Calculator. 7. The Rate Calculator calculates the rate to be charged for the insurance. …. There would probably be other steps here. Alternatives ============ Application is denied Now, what about step 1? What does that list of applications (report) look like? For that, you would use a report specification. A report specification is a document that describes a report. In this document, you will describe the information that the user will enter into the system, how the report information is obtained or calculated, and what information is displayed to the user. You might also include a page with the design of the report, showing the various fields and the layout of the report. You can include any rules or algorithms that are used to create the report. You can include restrictions on who is allowed to generate or view the report, or indications as to when the report is run (for example, whenever needed, every night, once a week, once a month, once a quarter). If there is no process that you can describe that includes creating a report, or viewing a report, then you do not need a use case at all. Just use the report specification to describe the contents of the report. It does not make sense to me to write a use case like this: Create Quarterly Sales Report ============================= 1. The use case begins when the Accountant selects Generate Quarterly Sales Report. 2. The system calculates and displays the report. 3. The Accountant selects Save Report. 4. The system saves the report. This use case provides me almost no useful information, and the little information it does provide can be put into the report specification with the other information about the report. There is no point to this use case, so why bother writing it? Alerts and notifications may similarly fit better into another format. Remember that not all requirements are use cases. Use Cases are great at describing tasks or processes - but not everything is a task or process. Reports are better described with a report specification document_ =============================================== Now it is your turn. How do you describe reports, alerts, and notifications? Do you have a template for those types of requirements? Do you see the usefulness of describing a task or process that includes creating and viewing a report? ================================================ You are invited to re-publish articles from this blog, in your publication or website, as long as the article is intact and you include the following Byline paragraph (with live links) after each article you use… START BYLINE * Article used with permission from Wyyzzk, Inc.'s Resources for Business Analysts site at http://www.writingusecases.com. This website of reports and tips contains information to help you succeed as a Business Analyst in IT. END BYLINE
Powered by  | | English | | Albanian | | Arabic | | Bulgarian | | Catalan | | Chinese | | Croatian | | Czech | | Danish | | Dutch | | Estonian | | Filipino | | Finnish | | French | | Galician | | German | | Greek | | Hebrew | | Hindi | | Hungarian | | Indonesian | | Italian | | Japanese | | Korean | | Latvian | | Lithuanian | | Maltese | | Norwegian | | Polish | | Portuguese | | Romanian | | Russian | | Serbian | | Slovak | | Slovenian | | Spanish | | Swedish | | Thai | | Turkish | | Ukrainian | | Vietnamese |
|
|
|
|
Sunday, July 08, 2007
 |
Category: Jobs, Work, Careers
Author: Geri Schneider Winters Many people write to me to ask how they can get started as a Business Analyst. Here are my thoughts on what you can do to get started in that career. An Analyst (Business or System) is typically in a leadership role on a project team. So the hiring manager often wants someone with some years of experience for the job. This does not necessarily mean experience as an Analyst, but some years of experience and maturity. I started out as a Senior Scientific Programmer, then worked as a Field Engineer in a sales organization, then became a Business Analyst. This gave me technical and communication experience, plus about 12 years of work experience before I started working as a BA. I know other very fine BAs who started as Project Managers, Newspaper Reporters, or experts in their industry (banking, insurance, etc). If you do not have years of experience, you can look for jobs that are related or that help you develop the skills you will need for an Analyst position. Skills that are important include: - Soft skills - listening, writing, meeting facilitation, communication skills in general, negotiation
- Domain knowledge - knowing a particular industry such as insurance, banking, or retail
- Technical skills - understanding software architecture, design, and development
- Leadership skills - project management, chairman or president of an organization
You do not necessarily need all of these skills to work as an Analyst. My own background is weak in any one domain (I know a little about a lot of domains, not a lot of one), but I have the soft skills, technical skills and leadership skills to be successful. Some jobs you can look for include: junior analyst, reporter, sales person, marketing, technical writer, field engineer. These jobs involve a lot of the soft skills. You can work as a programmer and develop your career through the technical ranks (programmer, designer, architect). You can volunteer to lead an organization in your community to gain leadership experience. Take a junior job in an industry and work your way up. For example, if banking is your interest, take a job as a branch teller and work your way up through the ranks of the bank, taking on different roles, and really learning the business. Definitely work with contacts, people you know in the business. Sometimes a project can use a junior analyst, but the position is not really advertised. If you know the senior analyst on the project, that person may be willing to bring you in to work with you personally. Look for internships. For example, Safeway Inc. used to offer internships for Business Analysts at their corporate headquarters in Walnut Creek, California. I do not know if that program still exists. You may also find professional development programs at some companies. For example, Johnson and Johnson hires promising college grads into a 2 year professional development program where you work in 4 different parts of the company for 6 months at a time, learning the business. The goal is to put you into a leadership position at the company. Look for large companies, and explore what options they have available. Check their websites and talk to people in their human resources department. Analysts work on larger projects, which are usually at larger companies. Banks and Insurance companies typically hire quite a number of analysts, but so do big retail companies (WalMart, Safeway, etc.) and companies in the defense industry (BAE Systems, Lockheed, Boeing). =============================================== Now it is your turn. Are you looking for a position as a Business Analyst? What have you done to prepare yourself to do that job? Are you an experienced Business Analyst? What would you recommend to someone just starting out? ================================================ You are invited to re-publish articles from this blog, in your publication or website, as long as the article is intact and you include the following Byline paragraph (with live links) after each article you use… START BYLINE * Article used with permission from Wyyzzk, Inc.'s Resources for Business Analysts site at http://www.writingusecases.com. This website of reports and tips contains information to help you succeed as a Business Analyst in IT. END BYLINE
Powered by  | | English | | Albanian | | Arabic | | Bulgarian | | Catalan | | Chinese | | Croatian | | Czech | | Danish | | Dutch | | Estonian | | Filipino | | Finnish | | French | | Galician | | German | | Greek | | Hebrew | | Hindi | | Hungarian | | Indonesian | | Italian | | Japanese | | Korean | | Latvian | | Lithuanian | | Maltese | | Norwegian | | Polish | | Portuguese | | Romanian | | Russian | | Serbian | | Slovak | | Slovenian | | Spanish | | Swedish | | Thai | | Turkish | | Ukrainian | | Vietnamese |
|
|
|
|
Saturday, July 07, 2007
 |
Category: Jobs, Work, Careers
Author: Geri Schneider Winters Alan Thompson wrote recently to ask, "How do we do a better job of estimating how long it will take to gather requirements?" This is a question that often comes up, so I want to share my answer with all of you. The bad news is that there is no good way to estimate the requirements gathering process in the general sense. You may be able to do a good job for specific projects, but there are too many variables to be able to have a good general purpose estimation method. You can make some guesses based on the type of project it is. If you are proposing a project that is a maintenance release, basically bug fixes and maybe a couple of new features, then requirements gathering is almost nothing. You just need to come up with the list of bugs that will be fixed in this release, and add details to the requested features. The amount of time for requirements gathering will be an estimate of how long it takes to detail the requirements for one feature (use your experience to estimate this) and multiply by the number of features. Determining the list of bugs to be fixed could be a matter of scheduling a one or two hour meeting of concerned stakeholders to settle the question of what is on and what is off the list of things to work on this release. If you are proposing a project that is very well understood, then based on the number of requirements, you can do a fairly good estimate of the time it will take to document them and approve them. For example, I once worked on a project to automate the processes of loan application, loan approval, and loan buying and selling for a financial institution. The team knew their business very well, and we documented everything in 2 weeks. All the use cases, a basic business object model, a basic architecture, storyboards, and a draft of a plan to divide the work into 4 projects over 2 years. I had over 100 pages of documentation. The team was me and another 1/2 time person doing all the interviewing, documenting, and organizing of information, and about 10 people from the company who were involved part-time by being interviewed and reviewing documentation. If you do have good, well-written, agreed on Business Use Cases, then then the time to write the detailed requirements should be the number of business requirements times the expected time to detail one of them. Which is basically a factor of the skill of the people interviewing and documenting the requirements. You may run into some cases where you find that the business use case was not as well thought out as you believed, and so the project use cases take longer to develop than expected. I would expect that situation to be the case fairly often the first couple of projects you try this approach, but the more experience you get, the better the Business Use Cases will be to begin with, and the less surprises you will find as you develop the detailed requirements. Now you get to the hard projects - the ones that are not well understood or where the stakeholders disagree on the purpose of the project. In that case, any estimate of the time to develop the requirements is just a guess. You can look at past similar projects to find out how long requirements gathering took, and use those figures as a rough estimate. But I have watched stakeholders argue for months about the features and requirements for a project, not because the requirements were difficult to determine, but because they had a basic disagreement about the purpose of the project. When I work as a consultant, the requirements gathering phase is always time and materials. I will not do fixed bids on that work, because my experience is that there is too much variation in that phase for me to be able to do a good job estimating it. All contractors I know who do this work feel the same way, though some have done fixed bids because that was the only way to get the contract. They have almost always been burned by it, because something happened to extend the requirements gathering phase well beyond what was expected. Another approach to reduce risk is to go with a true iterative approach. In this approach, you identify and specify just a few requirements, write and test the code, and demonstrate it to the customer. Determine what works and what does not work. Make a list of fixes, add a couple of new requirements, and develop the next bit of code. This way, you are only working on a small piece of the project at a time, which is relatively easy to estimate. But then, you do not have an estimate of overall cost to give upper management. You can use historical records of similar projects to get an idea of overall cost for your project. All estimation methods ultimately depend on your experience and an estimate of how long it will take to do some small task. Then various formulas are applied to turn the time to do a small task into the time to do the whole job. In the book "Applying Use Cases", I have a copy of a paper that shows a use case estimation method, but it is more designed for estimating the project after you have written the use cases. It is based on what are called Use Case Points, and is similar to the method of estimation with Function Points. But if you review that, you might get some good ideas for coming up with your own formula for estimating the requirements gathering phase at your company. =============================================== Now it is your turn. Do you have a need to estimate the requirements gathering phase on your projects? What method do you use to estimate that phase? ================================================ You are invited to re-publish articles from this blog, in your publication or website, as long as the article is intact and you include the following Byline paragraph (with live links) after each article you use… START BYLINE * Article used with permission from Wyyzzk, Inc.'s Resources for Business Analysts site at http://www.writingusecases.com. This website of reports and tips contains information to help you succeed as a Business Analyst in IT. END BYLINE
Powered by  | | English | | Albanian | | Arabic | | Bulgarian | | Catalan | | Chinese | | Croatian | | Czech | | Danish | | Dutch | | Estonian | | Filipino | | Finnish | | French | | Galician | | German | | Greek | | Hebrew | | Hindi | | Hungarian | | Indonesian | | Italian | | Japanese | | Korean | | Latvian | | Lithuanian | | Maltese | | Norwegian | | Polish | | Portuguese | | Romanian | | Russian | | Serbian | | Slovak | | Slovenian | | Spanish | | Swedish | | Thai | | Turkish | | Ukrainian | | Vietnamese |
|
|
|
|
Friday, July 06, 2007
 |
Category: Jobs, Work, Careers
Author: Geri Schneider Winters Almost every project will have to deal with requirements that change. I can imagine some maintenance type projects that are so well defined (fix this list of bugs) that there are no requirements changes for the lifetime of the project. Or perhaps the project is so short (a couple of hours) that there are no requirements changes. But all other projects will have some amount of requirements change. You could argue that XP projects do not have to deal with this. In XP, a developer works directly with a customer to implement a small amount of functionality. So that small amount of functionality will probably be completed without change. But as soon as the customer sees the results of that functionality, they will want something more or something different. This is one approach to dealing with changing requirements. Define a small amount of functionality, write the code for that, and demonstrate it to your customer. Get their feedback. Now define another small amount of functionality. This could be any combination of new features and changes to existing features. Write the code for that small amount of functionality and demonstrate it to your customer. Sound familiar? It should. This is a brief description of a basic iterative development process. XP is an iterative development process, as are RUP and EUP. All iterative or spiral processes were defined for the purpose of dealing with the problem of requirements that change throughout the project. The key to this is to *not* define all the requirements at once, but to only define enough of the requirements to be able to write some code so you can demonstrate it to the customer. "But", you say, "even though my company does iterative development, I am required to write all of the requirements at the beginning of the project and to get them signed off by the stakeholders before any development work is complete." Basically, you are describing a process that is waterfall at the beginning, followed by a series of development releases. This is really a modified waterfall. I think what drives so many companies to this process is that upper management wants an estimate of project cost up front, and to estimate the cost of the entire project basically requires you to describe all of the requirements of the project at the beginning. (Side note: Another way to estimate project cost is to compare what you know about this project to similar projects in the company's past, and use the final amount of the cost of the previous project as the estimate for the current project. Of course, this requires that the company keep information about previous projects in such a way that it can be found later.) In this situation, your project must either adjust to each change as it comes along, or define a process to allow you to bundle a set of changes and deal with those changes at well-defined points in time in your project. This latter way of doing things is preferred, since it minimizes the impact of change on your project team. An easy way to do this is to wait until the development team reaches the end of one of their cycles of development, and introduce the changes when the next set of functionality is being designed. This is less of a disruption on the development team than giving them changes whenever they are discovered. Another issue arises when considering the impact of change on the project timeline and budget. If you are required to accept every requested change, your project will go over time and over budget. If you cannot exceed your resources, then you will have to add to the change process a mechanism for deciding how much the change will cost, and what the project will give up in exchange. You have to pay for changes somewhere in the project. Either you get more time and money to develop the product, or you pay for changes by not developing something that was originally planned. This is just basic budgeting as we all practice it at home. If I have $5.00, I can buy a Venti Chai Soy Latte at Starbucks, or a Big Mac meal at McDonalds. But I do not get to buy both. I have to pick one or the other to spend my money on. The same is true on a project. If you have $10,000 to spend, then to add feature A which costs $10,000 you have to remove another feature from the project which costs $10,000. This is very easy to understand, but so many people want to believe that adding new features to the software is somehow free. I have had fairly good success at positioning requirements changes in terms of cost (time and/or money). So instead of saying, "If you want A you have to give up B" or "We can't do that within our time and budget", I tell the customer "You have so much money to spend on the project and it is all allocated to development costs already. This feature you want will cost $10,000 to develop. Where do you want that money to come from? Can we add $10,000 to the budget, do you want to give up something else worth $10,000, or is this new feature not important enough to spend $10,000 on?" Estimating the cost of the changes and presenting that estimate is part of my process for changing requirements. I do not tell the customer "No", I tell the customer the cost and the consequences and let the customer decide what to do. =============================================== Now it is your turn. What is the approach to handling requirements changes at your company? There always is an approach, even if that approach is to try to ignore the change requests and hope they go away. ================================================ You are invited to re-publish articles from this blog, in your publication or website, as long as the article is intact and you include the following Byline paragraph (with live links) after each article you use… START BYLINE * Article used with permission from Wyyzzk, Inc.'s Resources for Business Analysts site at http://www.writingusecases.com. This website of reports and tips contains information to help you succeed as a Business Analyst in IT. END BYLINE
Powered by  | | English | | Albanian | | Arabic | | Bulgarian | | Catalan | | Chinese | | Croatian | | Czech | | Danish | | Dutch | | Estonian | | Filipino | | Finnish | | French | | Galician | | German | | Greek | | Hebrew | | Hindi | | Hungarian | | Indonesian | | Italian | | Japanese | | Korean | | Latvian | | Lithuanian | | Maltese | | Norwegian | | Polish | | Portuguese | | Romanian | | Russian | | Serbian | | Slovak | | Slovenian | | Spanish | | Swedish | | Thai | | Turkish | | Ukrainian | | Vietnamese |
|
|
|
|
Thursday, July 05, 2007
 |
Category: Jobs, Work, Careers
Author: Geri Schneider Winters Any project that is started is started for a reason. There is some problem to be solved, or some opportunity to be met or a challenge to overcome. No matter how you word it, there is a reason for this project. Along with the reason, there is some person or group of people who have that reason for wanting this project to happen. In this tip, we will look at the use of imagination to elicit the reason for the project. You may think this is unnecessary. If the project exists, there must be a reason for it. Ah, yes. But is that reason well-defined? Does everyone agree on the reason for the project? If the purpose of the project is not written, it is very likely that different team members and stakeholders will have different ideas of what the project is about. And sometimes those differences will be so radical, that you will have no chance of project success unless you resolve those differences. You may find that the reason for the project is described in a document that was used to get approval for funding the project. This could be a Request for Proposal or an Initial Project Request. But the information in that document is not necessarily accurate, detailed, or complete. It is a place to start to get information about the reason for the project. Another thing you can do is ask the various stakeholders what they think is the reason for the project. Then you can write what they tell you in a Project Vision document_ But what do you do if the stakeholders disagree on the purpose of the project, or if you do not know who all the stakeholders are? In this case, you might invite the stakeholders you know to come to a meeting of 1-2 hours duration. In this meeting, you will invite the stakeholders to use their imaginations to describe the project. As they share results, you will encourage them to discuss and come to agreement on the reason for the project. You may find by the end of the meeting that you have additional stakeholders to interview. Be sure to include a meeting facilitator and a scribe in the meeting. You want to make sure to capture as much information as possible while you have the stakeholders together. Here are a couple of ideas for stimulating the imagination to find out more about the reason for the project. Ask the stakeholders to play a Future Think kind of game. They are to think to the future when the project is complete, and write a press release describing the product that is just being released as a result of that project. Here is a template: some future date - location of your company - company name is pleased to announce the release of product name. This product has been created to Benefit to the directly affected stakeholders. With this product who and the problem being solved. Further, Benefit to indirect stakeholders. Ultimately, Benefit to the stockholders and end customers; financial benefit. Here is an example press release: "August 28, 2010 - Seattle, WA - Wyyzzk, Inc. is pleased to announce the release of Gee Whiz. This product has been created to eliminate the need for washing clothes. With this product, anyone who spends time washing clothes will no longer have to do so. Further, there will be no need to buy a clothes washer or dryer, nor to go to a laundrymat to wash clothes. And this is good for the environment because there will no longer be the need to use water and soap to clean the clothes. Ultimately, this will save a lot of money for consumers, will protect the environment, and will generate substantial dividends for our stockholders." Another idea is to ask the stakeholders to pretend they are sales people who have to convince someone else to buy the product that was created in this project. Now when you are in sales, you have to think about the other person. So the stakeholders have to identify who they are selling to, what their problem is, and why this product is the best one to solve that problem. Remember there are always competing solutions, so what are they, and why is yours better? You can play this imagination game by having the stakeholders write a sales script, but even better, use role playing. Have one stakeholder take the role of sales person and the other take the role of a skeptical customer. You can use a recorder or video camera to capture the dialogue, then review the recording later to find out exactly what was said. These games provide a lot of insight into the thoughts and ideas of the stakeholders about the project. You will usually get much more detailed information from these kinds of exercises than you will get by asking a direct question such as "From your point of view, what is the purpose of this project?" =============================================== Now it is your turn. Have you tried any of these kinds of exercises on your projects? If you are working on a project where the reason for the project is not clear or the stakeholders disagree on the reason for the project, try one or more of these techniques for resolving the differences. ================================================ You are invited to re-publish articles from this blog, in your publication or website, as long as the article is intact and you include the following Byline paragraph (with live links) after each article you use... START BYLINE * Article used with permission from Wyyzzk, Inc.'s Resources for Business Analysts site at http://www.writingusecases.com. This website of reports and tips contains information to help you succeed as a Business Analyst in IT. END BYLINE
Powered by  | | English | | Albanian | | Arabic | | Bulgarian | | Catalan | | Chinese | | Croatian | | Czech | | Danish | | Dutch | | Estonian | | Filipino | | Finnish | | French | | Galician | | German | | Greek | | Hebrew | | Hindi | | Hungarian | | Indonesian | | Italian | | Japanese | | Korean | | Latvian | | Lithuanian | | Maltese | | Norwegian | | Polish | | Portuguese | | Romanian | | Russian | | Serbian | | Slovak | | Slovenian | | Spanish | | Swedish | | Thai | | Turkish | | Ukrainian | | Vietnamese |
|
|
|
|
Wednesday, July 04, 2007
 |
Category: Jobs, Work, Careers
Author: Geri Schneider Winters When you find an alternative to a use case basic flow, you have two different ways to handle it. One way is to put the alternative in the steps of the basic flow. That way of handling alternatives was described in a previous tip. Another way to handle alternatives is to make a new section of your use case document for alternative flows. This section generally comes after the basic flow in your document_ You write the basic flow to show the most common way of doing the use case, and the alternative flows list the other ways of doing the same use case. I start by making a list of alternatives, using names and possibly brief descriptions. Let us assume we are working on a use case for a customer to Place an Order. While writing the basic flow, we assume that the most common form of payment will be credit card, so we write the basic flow showing that the customer is paying by credit card. I list the alternate forms of payment in the Alternative Flows section. Here is the example: Place Order Use Case Basic Flow of Events ==================== 1. The use case begins when the customer selects Place Order in the order processing software. 2. The order processing software displays an order form to the customer. 3. The customer enters his or her name and address into the order form. 4. As long as the customer enters products, repeat these steps: 5. The customer enters a product code into the order form. 6. The order form displays a description and price for the product to the customer. 7. The order form adds the price to the order total. end the repeat loop 8. The customer selects the credit card payment type on the order form. 9. The order form displays fields for the cardholder name, card number, expiration date, and verification code. 10. The customer enters credit card payment information into the order form. 11. The customer selects the Submit button on the order form. 12. The order form sends the information entered by the customer to the order processing software. 13. The order processing software verifies the information from the order form. 14. The order processing software saves the order as pending in the database. 15. The order processing software forwards credit card payment information to the accounting system. 16. The accounting system sends a confirmation to the order processing software. 17. The order processing software marks the order confirmed in the database. 18. The order processing software displays an order ID to the customer, and the use case ends. Alternative Flows of Events =========================== Customer Pays by Check or money order Customer Pays by PayPal Customer Pays by Cash Customer Pays by some other method Now at some point in time, I will need to add detail to the alternatives to describe how each alternative will work in my system. One way to do this is to copy the basic flow of events and change the steps that are different. I prefer the second approach, which is to just list the changed steps. Below are the detailed alternatives for the use case. I am showing a couple of different approaches to writing the alternatives in the following examples. Alternative 1: Customer Pays by Check or money order ===================================== In the Basic Flow of Events, replace steps 8-10 with the following: 1. The customer selects the check or money order payment type on the order form. Alternative 2: Customer Pays by PayPal ====================================== Do the Basic Flow of Events, steps 1-7. 8. The customer selects the PayPal payment type on the order form. 9. The order form sends the order total and the company PayPal account name to the PayPal site. 10. The PayPal site displays a payment form to the customer. 11. The customer enters his or her PayPal payment information into the PayPal site. 12. The PayPal site sends the payment information to the order form. The basic flow resumes at step 11. Customer Pays by Cash ===================== This is an error. We do not accept payment by cash. Customer Pays by some other method ================================== This is an error. We only accept payment by credit card, check, money order, or Paypal. My basic rule for handling alternatives is this: If the alternative is short, just 1 or 2 steps, then put the alternative inline to the Basic Flow of Events as described in a previous tip. If the alternative is longer, then make a separate alternative flow of events. =============================================== Now it is your turn. How do you handle alternatives to the Basic Flow of Events? Add alternatives to your existing use cases. If your company does not have a standard, try different approaches to see what works best for you. ================================================ You are invited to re-publish articles from this blog, in your publication or website, as long as the article is intact and you include the following Byline paragraph (with live links) after each article you use… START BYLINE * Article used with permission from Wyyzzk, Inc.'s Resources for Business Analysts site at http://www.writingusecases.com. This website of reports and tips contains information to help you succeed as a Business Analyst in IT. END BYLINE
Powered by  | | English | | Albanian | | Arabic | | Bulgarian | | Catalan | | Chinese | | Croatian | | Czech | | Danish | | Dutch | | Estonian | | Filipino | | Finnish | | French | | Galician | | German | | Greek | | Hebrew | | Hindi | | Hungarian | | Indonesian | | Italian | | Japanese | | Korean | | Latvian | | Lithuanian | | Maltese | | Norwegian | | Polish | | Portuguese | | Romanian | | Russian | | Serbian | | Slovak | | Slovenian | | Spanish | | Swedish | | Thai | | Turkish | | Ukrainian | | Vietnamese |
|
|
|
|