64 Bytes

just a few characters short of a code base.

Week 5 Question 1 - Requirements Gathering (Round 2)

clock February 10, 2008 04:24 by author josh

Question:

 The director of IT would like to know more about enthography, and suggestions on weather or not it should be used in the organization.

Response: 

    For starters, weather you know this term or not ethnography is a staple is business process analysis and review. Ethnography, put simply, is requirements gathering thru observation. Weather we call it ethnography, a work session, a focus group or any other number of observation techniques the key to remember is it’s an excellent tool for seeing how well a current process is working.

    One of the best BA’s I ever knew could sit down and observe two or three users of a business unit, ask a few key questions and peg the main roadblocks in that groups daily work (she was quite talented). Ethnography, based on some of the material I reviewed, has a multitude of methodologies. It can vary from a very formal, almost “academic”, approach of video tapes and avoiding contact as much as possible, to an extremely light and informal working session where questions are just kept to a minimum. Really it all depends on your goal and target audience as to how far you want to go. Perhaps if you are running a study or focus group the more formal processes may provide better insight into something like a consumer level product. Contrasting that extreme, a small team working with a business unit inside an organization may want to drop by a subject’s office and have a quick working session and take some casual notes. The key to remember is it’s all about what you want out of the process.

    As a recommendation, well ethnography is already in use. The process is a key asset in the toolbox of requirements gathering. Perhaps the name isn’t attached but, yes the method is already in use. That’s not to say the process couldn’t be optimized, and as such it is probably wise to review our techniques as they compare to the more structured implementations of requirements gathering thru observation.

Refrences:

  • ilikecake(2008), Ethnography retrieved on February 7th 2008 from ilikecake website: http://www.ilikecake.net/hci/requirements/ethnography.htm

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Week 4 Question 1 - Requirements Gathering.

clock February 3, 2008 08:32 by author josh

Question:

Propose what a team that will handle requirements gathering might look like, what tasks they must do and what resulting assets may come out of this phase of development.

Response:

Requirements gathering, possibly the most crucial step in software development, is often times the first “real” step a company takes in developing an application. That’s not to say that Scope Definition and problem analysis don’t happen. Its just that Requirements Gathering is often time considered the “kickoff” point from the perspective of most business users.  The goal of requirements gathering is to create a definitive description of exactly what the solution must do in order to resolve the business problem and be considered a success.   It is during this phase that we work most closely with the system users to derive these requirements. 

 

One reality about Requirements gathering that many don’t realize is that it is more likely that your business users and system owners don’t know their own business processes than it is that they do.   As surprising as that sounds it really isn’t bazaar,  many users are far too busy to analyze what they do plus get a strong understanding of how they fit into the organization as a hole.  And while system owners may have a strong high level understanding of what their business does, the minutia of the process that achieves that is often abstracted from them.

 

If this sounds like an uphill battle, that’s because it is. But if you assemble the right team,  excute the right tasks (often times over and over and over again), and diligently develop and manage the right artifacts;  then you can come out of requirements gathering with a solid foundation. Often times this leads to the requirements gathering team to have a better understanding of what the business does, then even the business users or the system owners do. 

 

The Team:

Project Manager:  The project manager acts mostly as a facilitator during requirements gathering, they will be working to get the right people together in the right room so that requirements can be acquired thru interviews, observation or other techniques.

 Business Analyst:  It is the responsibility of the Business Analyst to capture the requirements. They will work with the users to understand what they do, what they need, and how to put the system together to get them where they need to go.  Business Analysis is part art and part science and requires exceptional people skills as you help lift the fog surrounding what the system needs to do.

System Users:  System Users are the Business Analysts primary contact. The Business Analysts will meet with System Users as many times as it takes to get a solid and complete understanding of what is needed.

System Owners:  Often times there will be gaps in understanding between the various System Users; the System Owners are the best place to start to either fill these gaps or find out who will be filling these gaps. They are also an excellent “sanity” check. Its surprising how often one can hear “they do/want what?”  from a System Owner when a BA is explaining the process they have obtained thru their interaction with the  System Users.

 

The Tasks:

The tasks involved are really a cycle of specific tasks. Thinking of it like a mini process helps, below are the tasks involved in requirement gathering.

  • <!--[if !supportLists]-->Requirements Identification – Learning of a requirement and defining it in as much detail as possible.
  • <!--[if !supportLists]--><!--[endif]-->Prioritizing – Define how important the requirement as it relates to other requirements in the system
  • <!--[if !supportLists]-->Project Impact – New requirement means a new project plan. Fit in the new requirement and evaluate its impact on the entire project.

<!--[if !supportLists]-->·         <!--[endif]-->Update documentation – Once we have a full understanding of the new requirement we have to serialize it into documentation. To do that we must update our requirements documents and models. These documents are how projects are defined and the center of communication. It is crucial that these documents stay as up to date as possible.

The Artifacts:

The artifacts are those documents that are the center of communication between the different members of the project team. The key is to make these documents as throe as possible, while making sure that all members of the team understand them.  There are many different types of artifacts that can be used, and it is best to view different types of artifacts like tools rather than items that must exists. After all the goal of these artifacts is for communication, if an artifact isn’t successful with your team, don’t waste cycles using it.

Example Artifacts:

  • <!--[if !supportLists]-->Requirements document – A hallmark of this state. Often times these documents are hundreds of pages long and provide very detailed descriptions of each function of a solution. Sometimes this document is called the Functional Requirements document.
  • <!--[if !supportLists]--><!--[endif]-->Business Process model – A series of workflows and state or status diagrams and descriptions that act as a high level overview of how the different requirements interact
  • <!--[if !supportLists]-->Business Data Model – This document describes the data that the solution must capture and work with. It is often times that this document acts like a dictionary. Its description of different objects helps users understand what the other documents and models are describing.
  • <!--[if !supportLists]-->Screen shots or UI Model – These documents work to help describe how screens will function. Often times they include descriptions of every field that will be viewed or edited on a screen along with mapping information to specific points in other documents like Requirements or models.
  • <!--[if !supportLists]--> <!--[endif]-->Stories – Stories are used in Agile development and are like mini versions of all the above documents. The specifies of a story are much more laxed leaning more on the idea of the bear minimum to make a requirement understandable rather than a ridged and in-depth description.
  • <!--[if !supportLists]--><!--[endif]-->Acceptance Testing document – Sometimes it is easier to describe a piece of functionality by describing the test that validates it. In these cases, writing a few tests cases early is worthwhile. After all, any project worth its weight in salt will have one of these anyways.
  • <!--[if !supportLists]-->Use Case Models – These are often very high level graphical representations of requirements, defining all of the actors of the process and what the process will do.

 

 

 

References:

Whitten, Jeffery L., & Bentley, Lonnie D. (2008). Introduction to System Analysis and Design. New York: McGraw-Hill Irwin.

 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Week 2 Question 2 - System Modeling

clock January 18, 2008 03:13 by author josh

Question:

 Someone has asked you to define the models nessesary for the System Analysis phase of the process. What Models would you suggest and where would they be created in the methodology we are using.

*Note to protect the innocent I have paraphrased the question.

Response:

For system analysis to succeed we must enter this phase of development with a strong understanding of what the business goals are and edit the phase with a complete understanding on how we are going to achieve that goal in a technology agnostic  taxonomy.  

A few choose quotes from a former mentor of mine are especially apt here so I am going to paraphrase them before I continue answering this question

  • Software development is like asking a question and answering it.
  • A complete set of requirements is the question. Without a complete question , you don’t know what you are answering
  • Requirements should be unambiguous, understandable and testable. If you can’t test it how do you know you have met the requirement?

-Mentor (not going to use their name on a public site :-P)

System Analysis using our development methodology consists of Requirements analysis and Logical Design. By the time you exit Logical Design deliverables will include Business Data Requirements, Logical Data Model, Business Process Requirements, Logical Process Model, Business & System Interface Requirements and finally Logical Interface Model.  But not all of these are models and some may include “mini” models as to support the text in the documents. Below is how I would break down the models across these two phases with more specificity.

Requirements Analysis:  This phase will produce mostly documentation and not models, the documentation from this phase will be consumed to produce formal models. However some modeling will help support this documentation and make it easier to be understood.

-          Use Case Models: Use Case models are representations at a fairly high level of a requirement. They employ graphics to represent Actors, actions, inputs and outputs.

-          Sequence Diagrams: These diagrams can help describe how a process executes. The graphic representation of multiple separate processes and how they communicate and react to each other is the goal of this kind of graphic

-          State Diagrams: These can describe the various states of a business entity, interface or process and how that state may change its properties.

Logical Design:  The goal of Logical Design is take Business requirements and map them to a system. Maintaining a technology neutral stance these models may have the look and “feel” of what the system will do, they avoid implementation details or making decisions that could limit chooses during Decision Analysis. These models may also leverage more detailed versions of the above mentioned Use Case, Sequence and State models.

-          Logical Data Model:  This model describes all of the data needs of the application in maps that include field requirements and relationships. Logical Data Models are a lot like a dictionary of what specific business entity is.

-          Logical Process Model:  This model will be a series of flow charts, use cases models, sequence diagrams and other supporting material that turns business requirements into defined processes.  The end result of a Logical Process Model is to define each specific process and describe how that process will flow, and how decisions in that process will change the outcome.

-          Logical Interface Model:  The interface model will help define how inputs and outputs will be parsed across the application. This will describe where data should be rendered and where it should be required. This may be described in State Diagrams, Screen mockups, and Logical Data Model based interface requirements with external systems.

 

So while I would have to make my describe these quickly, those 3 Logical Models and three types of supporting models are what I would  present as required for the System Analysis of the application.

References

Whitten, Jeffery L., & Bentley, Lonnie D. (2008). Introduction to System Analysis and Design.New York: McGraw-Hill Irwin.

Fowler, Martin & Scott, Kendall (1999).UML Distilled Second Edition, A Brief Guide to the Standard Object Modeling Language. New Jersey: Addison-Wesley.

 

Currently rated 4.0 by 1 people

  • Currently 4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Week 2 Question 1 - Capability Maturity Model Level

clock January 18, 2008 03:07 by author josh

Question:

What steps would you take to evaluate a companies CMM level and what evidence would you look for to validate that they met a given level?

*Note to protect the innocent I have paraphrased the question.

Response:

To analyze the current CMM level of an organization I would conduct a series of tests, interviews and sample for evidence. Based on the results of those I would be able to evaluate an organization’s CMM level with some level of accuracy.

Interviews: the goals of these interviews would be to evaluate both internal and external perceptions on what methodologies and tracking processes are in place for the organization.

-          An Executive that is not related to IT

-          A Business user not related to IT

-          Executive in charge of IT (could be a CIO or Director of IT)

-          Manager of Network Operations

-          Software Development Manager

-          Software Development Project Manager

-          Software Development Techical Lead

-          Software Developer

-          IT Support Desk Rep

Tests: The function of these tests will be to evaluate how competent the users are of their process. These tests may include further interviews asking specific questions about the organizations processes and comparing those to the documentation obtained. These test may also extend into watching users of the process actually enact tasks in the process.

Evidence: It’s one thing to talk the talk. But only with evidence can you prove that the organization is in fact using the process. Evidence will be asked for with little to no warning and will need to be pulled from the system with the evaluator present. The sample set for evidence to be pulled from will include all projects for the last 18 months plus at least 6 completed projects. We will be sampling for evidence that the software process is executed consistently and documented as such.  Evidence may include documents, emails, helpdesk tickets, reports derived from any in use Methodware, meeting notes and Groupware archives of scheduled meetings.

Evaluation: Once all of the data is received we would evaluate the results comparing interview notes, tests & evidence against the organizations published process. We would also compare the organizations published and actual process against industry best practices below is what we are looking for to reach a specific CMM level.

1)      Initial :

a.       The organization has completed at least one project and it has been deployed to production.

b.      The project includes at least basic documentation to validate that the application was requested and meet the business users needs

2)      Repeatable:

a.       The organization has demonstrated at least 60% of their projects use the same basic methodology.

b.      The organization has demonstrated that both the internal and external users are aware of the organizations endeded software development methodology and its general process as it affects them

c.       The organization has completed at least 3 projects that follow the accepted methodology with minimal deviation without documented explanations for deviation.

3)      Defined :

a.       Specific process documentation and or Methodware was delivered to the Review team at the beginning of the evaluation.

b.      The organization has demonstrated that all project have used the methodology since its approval date or documentation is provided with excepted explanations as to which projects deviated and why.

c.       At least 50% of all projects demonstrated execution of the documented process.

d.      All users of the process know where documentation is stored in the organizations systems and have a strong knowledge of its methods without referring to the documentation.

e.      The documented process has been in effect for at one quarter (3 months)

4)      Managed:

a.       The documented process has been in effect for at least 4 quarters (one year)

b.      Process evidence is primarly provided by a single system rather than a mixture of emails, meeting notes and other ancillary evidence.

c.       The organization has reports that demonstrate quantifiable details regarding a projects success or failure. This should include estimates vs. actual for man hours, cost, schedule, administrative overhead, defect tracking, customer feedback.

d.      All current projects are presented in the organizations tracking systems and are accurate to within a reporting period.

e.      At least 5 now complete projects used the tracking system from kickoff to completion of the project

f.        All users of the tracking system have logins to the system.

5)      Optimized:

a.       The documented process has been in effect for the entire sampling period

b.      Process evidence is provided solely from the organizations tracking system.

c.       Evidence is provided that the organizations process has been evaluated in accordance with IT policies.

d.      All users of the tracking system demonstrate consistent and repeated use of the system.

e.      The tracking system has enough data to provide baseline reports for comparison.

f.        The process includes a lessons learned and these are archived in the tracking system for every closed project

g.       Evidence is proved that lessons learned from all closed projects have feed into validate-able changes to the organizations processes (if applicable).

h.      Tracking System metrics & reports are ties to individual and organizational reviews not just process reviews.

Comparing the tests results to the above level qualifications would allow us to know which phase an organization is currently in and how close they are to the next phase of CMM.

So ya, I’ve been thru a few SOX audits (4 to be exact) so I am leaning a lot on how they test our IT department to make sure that we were meeting Sarbanes-Oxley controls as they relate to IT (and there are a surprising number of them that do!).

Whitten, Jeffery L., & Bentley, Lonnie D. (2008). Introduction to System Analysis and Design.New York: McGraw-Hill Irwin.

 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Week 1 question 1 - System Development Roles

clock January 18, 2008 02:48 by author josh

Question :  

There are multiple roles of responsibility for software development. Using your own research what roles are responsible for each phase of development in a project

*Note to protect the innocent I have paraphrased the question.   

Response:

Most people when they look to build a software development team will put together the “normal” group. This will generally consist of project owners, a project manager, an architect or technical lead, and a few developers. Reading over a few other posts it looks like some of the more formal development methodologies (like RUP) have been covered. As such, I am going to go a different direction with my post and cover the roles and responsibilities of the new darling of the methodology world; Agile.

The Agile Development methodology several other flavors as well, but, be it Agile, Scrum or XP they all have the same goal. The goal is to simplify development and bring the project owner in early and often! Now I won’t go much more in to those details here but just the loose structure of an Agile team will give you an taste for its less rigid style.

Agile really consist of between three to five roles. Below are five common roles; however there is overlap on some of them because some get rolled up into a single role or shared by multiple team members, in some cases.

  • Customer: These are the project owners (or their duly anointed representative). While I was at SigmaTel we called them clients, others may call them customers or sponsors. In short these are the people who want to what the project will deliver. They will be instrumental in requirement definitions (sometimes called stories), acceptance testing, and prioritization. These members are also tasked with managing the budget and the business case.
  • Developer/Implementer: These are the builders. Developers take a given requirement and turn it into functionality. This can include Architects, technical leads, coders or Database developers, Testers. Even members of the IT Ops team can be an Implementer if they are assisting in the completion of a project requirement. This is probably the most ambigous of all the roles, but that’s because Agile believes in removing titles and barriers inside a development team.
  • Facilitator: The easiest way of thinking of a Facilitator as anyone who is not described above. Project or resource managers are likely candidates for this role
  • Tracker (a type of Facilitator): The tracker manages time. Trackers are responsible for keeping track of deliverables, task completions, time estimates and well everything schedule related.
  • Coach (a type of Facilitator): Finally the coach. A coach is someone that helps the team keep to methodology. Coachs could be developers, customers, trackers, any role. What they are around to do is too help the team stay true to the process. This role is especially important when a team is first implementing Agile and its methodology is new to the team.

As you can see from the above roles Agile development is kind of the antithesis of structured development methodologies like Rational and while it may look “to loose” to work from here, but I’ll make sure to shed more light on it as the class progresses. (and subject matter dictates :-P).

Refrences:
Where Did All the Positions Go?
Agile teams means examining expectations and adapting skill sets
http://www.ddj.com/architect/187203749?pgno=1

Espresso Fueled Agile Development
http://blogs.msdn.com/mpuleio/archive/2006/05/24/606561.aspx

The Roots of Scrum:
How Japanese Manufacturing Changed Global Software Development Practices
http://jeffsutherland.com/scrum/RootsofScrumJAOO28Sep2005.pdf

Extreme Programming : Team-Based Development (Page 59-64)
http://www.oreilly.com/catalog/extprogpg/chapter/ch05.pdf

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Continuing Education

clock January 18, 2008 02:24 by author josh

I’m taking a class on System Analysis and Design. The goal of the class is really to cover SDLC’s and specifically the System analysis and requirements gathering aspects of the class.  Now it’s an online course so it’s mostly a project and weekly discussions. The flow goes like this, once a week we get a series of questions and we are required to respond by Thursday. Once we respond we are required to give feedback about other student’s responses.

Give that most developers consider requirements gathering a banal experience AND this blog is for developers, I am going to start posting my in class responses here as well.  I’ll frame the blog post with the class room question, then my response to that question.  With any luck I can share what we are learning (rehashing?) here and this blog can become a little more useful and in more than just a technical capacity.

To catch up I'm going to do a quick triple post to cover all of week one and week 2 questions. So expect to see those by the end of the week.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5



Calendar

<<  November 2008  >>
MoTuWeThFrSaSu
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

View posts in large calendar

Add to Technorati Favorites

Sign in