As businesses compete globally, enterprise goals seek to allay obstacles to project and organizational success. In a fluctuating economy among fluctuating consumer preferences, companies must sell services with applications, and innovation with reliability. Awareness and development towards relieving challenges to deployment that reduces cost to market and increases ROI becomes vital. Agile product development user stories initiate the solution to the issue of profitability in an ever changing and uncertain business environment.
Developing user stories is primary to delivering quality software. User stories form and formulate the foundational information which allows developers to initially estimate the effort and timespan in development. Stories start out with lean and high level requirements to clarify the project goal with the customer who will become the stakeholding user of the product. The definitive format for a user story is:
As a [type of user]
I want [to perform a certain task]
So that I can [achieve a goal, benefit, or value]
“As Vice President of R&D
I want to update CAD
So I can view specifications in 3 dimension”
The user story broken down in this manner simply, succinctly, and decidedly generates an undeniable understanding of the work to be done and how the work supports and advances enterprise goals. R&D feeds into new customer-engaging products, which feeds directly into the business ROI. CAD updates feed into R&D as facilitators of progress and process. A 3 dimensional view of specifications feeds directly into CAD updates as the manner in which the updates occur. Therefore, each incremental component or task of development sequentially feeds into and supports the enterprise.
The user story contains the subject or focal point of development -- the user; the desired manner of performing the work; and the focal point of desired results. Therefore the project stakeholder, rather than the developers, essentially writes the user stories -- many times on index cards and post-its, the simplest tools available.
Estimating with the Fibonacci Sequence
Developers break high level user stories into tasks, from which they can estimate in the form of story points the effort, and therefore anticipated relative timespan, for development. Story points use a Fibonacci-type formula of number sequences to estimate relative timespans. Story point number sequences are 0, 1, 2, 3, 5, 8, 13, 21, 34, 55, and so on, in which every number in the sequence is the sum of the two preceding numbers. The abstract aggregation of comparative magnitude in size and effort is illustrated below.
The figure is a size comparison that also specifies a number for each size. Viewing this for instance as set of rooms that need flooring, the floor layer estimates that it will take 21 hours to place flooring in the largest room. The next size room is a little more than ¼ the size of the largest room. With the same detail in a lesser area, the floor layer estimates a timeframe of 13 hours to place flooring (the next lower number in the Fibonacci sequence). A smaller room is estimated at 8 hours, and so on.
Translated into software development tasks, a larger task of setting up a 3 dimensional design may be estimated as a 21 hour workload. In comparison to the size of the 21 hour workload, a lesser task of sequencing specifications into 3 dimensional design may be estimated as a 13 hour workload. In continued comparative estimation, color coding the design format may be viewed as an 8 hour workload. When estimating all task breakdowns of the user story, developers are able to submit an initial timeline to the user/stakeholder. In the same manner the Fibonacci strategy can also be used in estimating task priority.
Comparative estimation using the Fibonacci sequence allows project development to present a time estimate to stakeholders, or project owners, which allows the enterprise to quickly gain an initial picture of project costs and time to market. Rather than simply hoping to balance the project budget, management observe from project start the degree and amount of investment the project requires, as well as projected profit margins.
The project manager, stakeholder sponsor, or team coach bear the responsibility of meeting enterprise requirements in project development. Agile teams usually produce in one to two week iterations, or sprints, allowing stakeholders to incrementally view progress and gain insight into procedure. Once a sprint is planned within the team, commitment to the plan remains throughout iterative development. Dedication to a sprint towards a shippable increment enables teams to view and determine what works or doesn’t, and why or why not. Deficiency issues that may have been missed in mid-evolution of a software component, can be viewed in entire format by both developers and stakeholders within the completed sprint.
Large projects have a number of user stories. The composite of stories determine the scope of a project. New stories can be identified, split, or removed during iterations. However, in respect to organizational investment, the full development function is pledged to stay close to the estimated timeline. As stories and tasks evolve overtime and are incrementally shared with stakeholders, they can become completely revised to achieve stakeholder goals or changing enterprise resolve.
The high level makeup of user stories requires the input of detail through conversations between stakeholders and project teams. Often the use of ATDD, or acceptance test driven development, allows developers to determine whether project iterations are meeting user needs. As well, methods that include screen sketches in which users actually become involved in the UI mock-up and acceptance validation criteria, assist in developers ascertaining the best development methods to satisfy project owners. ATDD functional tests verify the goal and purpose of the software increment.
Acceptance Test Driven Development
Image Source: Testdrivendeveloper
ATDD testing allows stakeholders as users to verify the operational integrity of software development in incremental units, rather than after full completion. Incremental deficiencies can much more easily be remedied than full levels of production. Innovation can be advanced without exaggerated risk. Investment can be allocated to a more stabilized development. Cost to market and ROI can be anticipated in more finite terms.
XP and ATDD
In Extreme Programming, or XP, the stakeholder or product owner defines the priority order of features the project team is to develop. While the stakeholder determines priorities, the development team chooses the task sequence. Task sequences seldom deviate from the selected priorities unless priority items do not fit well with the sprint. In the case of conflicting priorities between project owners and the project team, interactive communication smooths the programming process.
ATDD, TDD, test driven development, pair programming, focused automated testing, refactoring, and simple design are central engineering practices within XP. In depth analysis of priorities detects whether the sequence is valid within incremental planning, design, and development, as well as project goals. To determine the validity of XP priorities, stakeholders, enterprise management, and project teams collaborate on project goals and business advancement. XP is often driven by enterprise precepts to allay management concerns regarding risk.
The successful breakdown of user stories into tasks, or sprints, leads to:
- The enterprise goal having been met
- The “definition of done” leads to customer engagement
- Reliable and repeatable team processes
- Promotion of enterprise ROI
- Enhancement of enterprise standing in the market
- Few improvement issues within the Retrospective
A compromised breakdown of user stories into tasks, or sprints, reflects:
- Possible conflict or poor communication between the project owner and the team
- Failing to attain “definition of done”
- A retrospective with a high number of improvement issues
- Having a negative impact of enterprise advancement
However, even compromised sprints can bring certain advantage to organizations:
- An uncommunicative product owner may be replaced
- Cost savings may be realized with the early project termination of a project rather than failing to deploy after a long-term effort
- The team and organization draw out valuable information on ‘what not to do’
In a world economy that is undergoing unpredictably rapid change, business is finding it extremely difficult to anticipate consumer needs. The uncertainty within the fluctuating economic environment is both a distractor and an advantage. An enterprise that can quickly leverage ever changing circumstances with continuously impactive application, can gain significant market share.
Management must apply vision to enterprise goals to advance profitability in an uncertain market. Within sprints project stakeholders must track requirements throughout the development process unto completion. As the project evolves, stakeholders and management are responsible to analyzing the impact application development and deployment will have on enterprise goals and consumer engagement. In light of the challenging business climate, project owners must:
- Create the team goal
- Consistently review that development ties into the goal
- Trace the changes brought about through new development
- Analyze the impact of change
- Stay abreast of continuous changes within the market
- Assure that development consistently expresses business values
- Invest in the right tools such as enterprise test management
Agile culture focuses on continuous feedback to management. The breakdown of user stories adds detailed definition to the culture. With a high rate of user satisfaction and acceptance, agile is in a prime position to revolutionize software deployment. The incremental breakdown of user stories activates revolutionary process and purpose of agile methodology. The quick and incremental release of quality software products not only boosts business revenue and positions enterprise in favorable positions within the market, but also requires that management consistently maintain an overview of progress in development.
Breaking down user stories into incremental sprints iteratively clarifies the business value of project development and enables smoother testing of the application. Business analysts are able to delineate required enterprise expectations, while software developers can create optimal manners in which to implementing business requirements. Applying the breakdown of user stories to both agile and business development clearly brings agility to business.