Bookmark and Share

by
Jon M. Stout
June 18, 2010

Aspiration Software LLC and its principals have over 40 years of successful software development in the Federal Intelligence Community. Our record of success includes a broad cross section of projects for mission critical applications.

In all software development projects there are a number of customer objectives and concerns. Quality of products, timely delivery and schedule and budget control are critical. In addition, and equally important, protection of proprietary data in a competitive environment is often a priority.

Use of a scrum process is an effective way to deliver a quality product on time and within budget and the selection of Federal contractor with in depth experience in the Intelligence Community is an ideal way to protect proprietary and intellectual property.

Scrum Development

Scrum is an Agile Development approach and  “process skeletoPagesn” which contains sets of practices and predefined roles. The main roles in Scrum are:

  1. The “Scrum Master”, who maintains the processes (typically in lieu of a project manager)
  2. The “Product Owner”, who represents the stakeholders and the business
  3. The “Team”, a cross-functional group of about 7 people who do the actual analysis, design, implementation, testing, etc.

Management of the Agile/Scrum Development process relies on the development of “sprints” that involve active and intensive development efforts that are constantly monitored.

During each “sprint”, typically a two to four week period (with the length being decided by the team), the team creates a potentially shippable product increment (for example, working and tested software).

The set of features that go into a sprint come from the product “backlog”, which is a prioritized set of high-level requirements of work to be done. Which backlog items go into the sprint is determined during the sprint-planning meeting.

Frequent and Regular Meetings

During these meeting, the Product Owner informs the team of the items in the product backlog that he or she wants completed. The team then determines how much of this they can commit to complete during the next sprint. During a sprint, no one is allowed to change the sprint backlog, which means that the requirements are frozen for that sprint. After a sprint is completed, the team demonstrates how to use the software.

Scrum enables the creation of self-organizing teams by encouraging co-location of all team members, and verbal communication across all team members and disciplines that are involved in the project.

Empirical Approach

A key principle of Scrum is its recognition that during a project the customers can change their minds about what they want and need (often called requirements churn), and that unpredicted challenges couldn’t be easily addressed in a traditional predictive or planned manner. As such, Scrum adopts an empirical approach—accepting that the problem cannot be fully understood or defined, focusing instead on maximizing the team’s ability to deliver quickly and respond to emerging requirements.

There are several implementations of systems for managing the Scrum process, which range from yellow stickers and whiteboards, to software packages. One of Scrum’s biggest advantages is that it is very easy to learn and requires little effort to start using. In addition the Scrum process has been clearly established.

General Principles:

  1. Collocation of team members as much as possible- collaborative environment
  2. Team room with wall space for:
    1. Vision Statement
    2. High-priority product backlog items
    3. Software architecture diagram
    4. Sprint backlog
    5. Release Plan
    6. Sprint burndown
    7. Sustainable development pace

Product Owner:

  1. Usually a full-time job
  2. Leads creation / refinement of Product Vision, understands the Market (domain)
  3. Interfaces with customers (also the voice of) and stakeholders
  4. Manages the budget
  5. Manages (“grooms”) the Product Backlog (“requirements”)
  6. Active participant in Scrum activities
    1. Defines “what”, not “how”
    2. Collaborative leadership- team consensus, a member of the team
    3. At least one hour per day in team room
    4. Tracks and forecasts progress-
      1. Progress is only counted when item is “done” (tested and documented)
      2. Velocity is an indicator of how much work a team can do in a sprint (refined over time)
      3. Release burndown (cumulative sprints resulting in final product)
      4. Plans the sprint releases,
        1. Consider giving risk items high priority
        2. Determine highest priority: time, cost

ScrumMaster (facilitator)

  1. Responsible for “how” (ensures that Scrum process is followed)
  2. Runs Daily Scrum (15 minutes)
    1. Monitors progress
    2. Handles impediments
    3. Motivates team (coach-like)
    4. Identifies, estimates and manages tasks- with team
    5. Runs Sprint Retrospectives (process improvement)

Team Members:

  1. Participate in grooming sessions (e.g., weekly)
  2. Develop functionality
  3. Participate in Daily Scrum
  4. Conduct sprint demo

Vision:

  1. Who is going to buy the product (directly or indirectly)?  Who is going to use the product?
  2. Which product attributes are critical for the success of the product? (6 or less)
  3. What is the business model (cash flow)?
  4. Does the product vision pass the elevator test?
  5. Create personas and scenarios
  6. After initial deployments,  turns into Product Road Map (high level dates and features)

Product Backlog:

  1. DEEP:
    1. Detailed appropriately (fine-grained for “next” sprint, course-grained for “later” items)
    2. Estimated (all items have at least a course-grained estimate)
    3. Emergent- backlog evolves over time
    4. Prioritized
    5. Stocking the product backlog (brainstorming)- focus on minimum functionality
    6. Detailed items have associated user stories (name, narrative and acceptance criteria) and associated artifacts (business rules, sketches, spreadsheets, etc.)
    7. Estimates
      1. Story points (coarse-grained, relative measure of effort)
      2. Team-based estimation- consensus, not focused on personal capabilities
      3. Emergent changes result from grooming sessions, user feedback on releases, etc.)
      4. Prioritize by category / theme and across categories- often with cards / sticky pads
        1. Sacrifice others for this
        2. Try to keep
        3. Sacrifice these for others

Sprints:

  1. Visioning can be first sprint (incl. prototypes, mockups,  interface concepts, if needed)
  2. Sprint planning
    1. Choose a sprint goal (broad, but realistic)
    2. Goal can result in prioritization changes, especially if theme focused
    3. Just-in-Time detailing on pertinent product backlog items
    4. Decomposing backlog items into sprint-sized items
    5. Ensure that sprint item is clear, testable and feasible.
    6. Item Development
    7. Sprint review meeting

Protection of Proprietary Assets and Intellectual Property

Since software development has finite goals generally with a short-term duration, many companies tend to contract out the process to specialized contractors. While this may ensure quality, the use of contractors introduces a new element of risk.

In any development project there is risk of reverse engineering or other means of loss of proprietary assets particularly when persons outside the firm access proprietary data. This is true even when dealing with large established firms who are not above reverse engineering where it meets their financial goals. Special due diligence is required to ensure that the contractor is trustworthy and reliable.

Software developers who specialize in Intelligence Community projects rely on absolute trust as part of their value added proposition. As part of the security clearance process extensive background checks of the firm include litigation and reputation checks for both the firm and the individual. Any evidence of impropriety can result in loss of security clearance privileges or even prohibition from future contract awards.

In order to enforce the protection of proprietary interests, Intelligence contractors rely on proven Non Disclosure Agreements and other contractual devices to reinforce the safety of client data.

Capture the Conversation tells you what people are saying right now!