Accounting for Costs Incurred in the Application of Agile Software Development
Background
Agile software development is an adaptive approach that emphasizes flexibility,
                    integrated customer involvement, and speed. Agile methods are based on iterative
                    and incremental development and feature requirements and solutions that evolve
                    through collaboration between self-organizing, cross-functional teams. 
                Traditional software development (the “waterfall” method or model) involves
                    planning out an entire project in advance. Before commencing work, the project
                    team understands how all parts of the solution are meant to fit together. Work
                    is then completed over a period of months to years in accordance with an
                    established project plan, and the entire solution is tested and implemented
                    simultaneously.
                By contrast, agile development uses time-bound increments (“sprints”) for
                    planning and execution. Although there is typically a goal in mind, there is
                    usually no large-scale, established project plan as there is in a waterfall
                    model. Rather, teams plan smaller-scale development goals, work for two to three
                    weeks, evaluate progress, recalibrate, and repeat. Typically, a product is
                    delivered at the end of each sprint, but the goal or destination may change many
                    times over the course of the project as a result of lessons learned. By placing
                    time constraints on each sprint, teams are able to identify and address issues
                    in a timelier manner and continually adapt plans to better meet the overall
                    goal.
                Using an agile development approach may have an impact on the finance and
                    accounting functions. In many organizations’ finance funding models, annual
                    budgeting is used as a key planning mechanism. Software development costs might
                    be estimated for the following fiscal year on the basis of the large projects to
                    be completed. As companies move into agile processes, these budgeting techniques
                    are no longer applicable given the iterative and incremental development methods
                    employed.
                Agile development approaches can also affect how organizations determine which
                    costs related to software development and the implementation of cloud computing
                    solutions (collectively, “technology development”) should be capitalized or
                    deferred. Applying the accounting guidance for identifying and classifying the
                    capitalizable costs incurred in agile software development can require
                    significant judgment and diligent records of the nature of the costs incurred.
                    This is because under U.S. GAAP, technology development costs should be
                    capitalized only during the application development phase of an implementation
                    project, but agile development activities tend to move through the
                    preliminary-project, application development, and post-implementation-operation
                    stages of development so quickly or even simultaneously that the identification
                    of costs specific to application development may be difficult. Inappropriate
                    application of accounting guidance or insufficient records regarding the timing
                    and nature of development activities can lead to incorrect accounting for these
                    costs (e.g., failure to capitalize all appropriate costs).
            Determining Capitalizable Costs
Users of either software development approach should be familiar with the
                    following key Codification topics and subtopics to ensure appropriate accounting
                    for costs incurred:
            - 
                            ASC 985-20, Software: Costs of Software to Be Sold, Leased, or Marketed.
- 
                            ASC 350-40, Intangibles — Goodwill and Other: Internal-Use Software.
- 
                            ASC 350-50, Intangibles — Goodwill and Other: Website Development Costs.
Software Developed to Be Sold, Leased, or Otherwise Marketed
Regarding technology developed for external use (i.e., software that will be
                        sold, leased, or otherwise marketed), all costs incurred to establish the
                        technological feasibility of the solution must be expensed as incurred as
                        research and development expenses. Software developed for external use
                        includes technology that is (1) licensed to customers (e.g., a term or
                        perpetual software license) or (2) embedded in products sold to customers.
                        Under ASC 985-20-25-2, technological feasibility is established “when the
                        entity has completed all planning, designing, coding, and testing activities
                        that are necessary to establish that the product can be produced to meet its
                        design specifications including functions, features, and technical
                        performance requirements.” This tends to occur toward the end of a
                        development project. Costs incurred after the establishment of technological
                        feasibility should be capitalized. In either case, costs incurred on routine
                        maintenance or bug fixes cannot be capitalized.
                Internal-Use Software1
When developing internal-use software and implementing cloud computing
                        arrangements, entities will have to establish processes to distinguish
                        implementation costs incurred during the preliminary-project and
                        post-implementation-operation stages from those incurred during the
                        application development stage. This is because costs incurred during the
                        preliminary-project and post-implementation-operation stages must be
                        expensed as incurred while certain costs incurred during the application
                        development stage must be capitalized or deferred.
                    In accordance with ASC 350-40-30-1, the types of costs that should be
                        capitalized or deferred during the application development stage include but
                        are not limited to “[p]ayroll and payroll-related costs (for example, costs
                        of employee benefits) for employees [or third-party service providers] who
                        are directly associated with and who devote time to” the technology
                        development (“to the extent of the time spent directly on the project”). In
                        addition, in a manner consistent with the requirements in ASC 835-20,
                        applicable interest costs incurred during the application development stage
                        should be capitalized. By contrast, any costs associated with data
                        conversion (other than software acquired for such conversion) as well as any
                        training costs should be expensed as incurred.
                    While the identification of the costs to be capitalized or deferred is
                        consistent for internal-use software development and cloud computing
                        arrangements, there are differences in how the costs are classified within
                        an entity’s financial statements depending on whether the costs are related
                        to software development or cloud computing arrangements (see Deloitte’s
                        October 29, 2019, Accounting
                            Spotlight for additional information). Further, ASC
                        350-50 provides additional guidance on accounting for costs incurred to
                        develop a Web site. In a manner consistent with internal-use software
                        development and cloud computing arrangements, the accounting for costs
                        associated with Web site development depends on the project stage at which
                        they are incurred.
                    The specific nature of costs that should be capitalized or deferred and the
                        fact that costs should be capitalized or deferred only during certain phases
                        of development mean that it is critical that users of agile software
                        development carefully track both the nature of the costs incurred and the
                        technology development phase to which they are related to allow for the
                        appropriate accounting treatment.
                Key Accounting and Reporting Challenges in an Agile Environment
Because most of the guidance relevant to the accounting for technology
                    development, implementation, and acquisition was issued more than 20 years ago,
                    it is likely that many entities have accounting policies in place to address it.
                    This guidance is easiest to apply when there are detailed project plans and
                    milestones that might have been common in traditional large-scale software
                    development projects that followed the waterfall method. However, agile
                    environments are established to eliminate these structural barriers and foster
                    real-time development and testing and therefore may present certain challenges
                    for compliance with the accounting requirements. A few such challenges are
                    outlined below.
            Cost Tracking
All costs incurred in agile software development will need to be carefully
                        tracked to ensure accurate accounting records. These costs include but are
                        not limited to payroll and payroll-related costs, fees paid to third-party
                        service providers, costs incurred to obtain inputs from third parties (e.g.,
                        the purchase of on-premise term-based or perpetual software licenses), and
                        travel expenses incurred by employees that are directly related to their
                        work in software development.
                    Costs incurred will not only need to be tracked appropriately but also
                        categorized into the specific development phase in accordance with the
                        accounting guidance. Because stages of development are typically not clearly
                        defined in agile environments, users will need to determine the appropriate
                        unit of account so they can assess the achievement of accounting and
                        reporting milestones. Is the completion of a sprint an indication of a key
                        milestone? A group of sprints? An overarching program goal? This is an
                        important area of judgment given that each unit of account will
                        independently move through the phases of development.
                    Example
                                        Entity A uses agile software
                                                development across its software engineering
                                                department to quickly meet the needs of its
                                                customers. Under the agile model, development of
                                                features is divided into sprints, whereby new
                                                features and functions are individually developed,
                                                tested, and deployed. Once the features are deemed
                                                ready for use, they are incorporated into the
                                                overall solution. On the basis of this model, A has
                                                determined that, for the development of simple
                                                features, each individual sprint is a unit of
                                                account to be evaluated against the relevant
                                                accounting standards for capitalization given that
                                                each sprint moves through the key milestones laid
                                                out by U.S. GAAP. Within each sprint, management has
                                                determined, on the basis of detailed time and cost
                                                tracking, that 20 percent of time and expense is
                                                related to planning, 60 percent is related to true
                                                application development on upgrades and
                                                enhancements, and the remaining 20 percent is
                                                related to maintenance within the overall sprint.
                                                Therefore, management capitalizes 60 percent of the
                                                costs incurred and expenses 40 percent.2
                                            Entity A has determined that for the development of
                                                more complex features, multiple sprints will be
                                                used. Each sprint will develop and test a specific
                                                element of a given feature. Once all elements are
                                                tested and ready for use, they will be deployed
                                                simultaneously into the overall solution. In this
                                                case, A has determined that the group of
                                                interconnected sprints is the unit of account for
                                                accounting purposes. This is because the
                                                functionality created by each sprint is
                                                interdependent, and the intended functionality would
                                                not be available until all of the interconnected
                                                sprints were complete. Management must therefore
                                                perform an analysis for the interconnected group of
                                                sprints to determine the costs associated with each
                                                stage of development and thus the appropriate
                                                accounting for these costs. This may prove
                                                challenging because each of the sprints may be at a
                                                different stage of development.
                                        Entities adopting agile methods should consider which unit of account is
                        appropriate for their development process. Because each agile development
                        milestone may be different (e.g., composed of different sprints with
                        different complexities), entities will need to have policies in place that
                        evaluate each effort to determine the appropriate unit of account and to
                        identify the stages of development for each unit.
                Amortization
In accordance with U.S. GAAP, the assets established upon
                        capitalization of technology development costs must be amortized. Entities
                        should begin amortization of the capitalized or deferred costs once the
                        developed technology is ready for its intended use, which occurs after
                        substantial testing is complete. If the functionality of one module (or
                        sprint) depends on the functionality of another, amortization will begin
                        when both are ready for their intended use.3 Agile development adds complexities given its iterative nature. There
                        may be multiple units of account used in the determination of which costs to
                        capitalize, and interdependencies among sprints must be considered. Further,
                        there could be different amortization periods for the same technology
                        development project given that the project may be divided into multiple
                        sprints, each of which has been determined to be a separate unit of account.
                        This could result in additional complexities in tracking the various
                        amortization schedules specific to each unit of account within the same
                        technology development project.
                Impairment and Abandonment
Identification of the appropriate unit of account is also particularly
                        important to the application of the accounting guidance for the impairment
                        or abandonment of capitalized or deferred costs. Specifically, ASC
                        350-40-35-1 requires that “assets” be assessed for impairment when “events
                        or changes in circumstances [occur] related to computer software being
                        developed or currently in use [that indicate] that the carrying amount may
                        not be recoverable.” Regarding abandonment, ASC 350-40-35-3 requires that
                        “[w]hen it is no longer probable that computer software being developed will
                        be completed and placed in service, the asset shall be reported at the lower
                        of the carrying amount or fair value, if any, less costs to sell.”
                        Impairment and abandonment events may be more common in agile methods given
                        that each sprint is used as an opportunity to evaluate progress and
                        potentially recalibrate or pivot. Therefore, the identification of the unit
                        of account for purposes of capitalizing or deferring costs is a critical
                        judgment that could affect whether and to what extent an entity recognizes
                        impairment or abandonment charges (e.g., at the end of a sprint determined
                        to be its own unit of account that was unsuccessful). In addition,
                        impairment or abandonment charges could exist if a sprint replaces existing
                        technology so that previously capitalized software has become obsolete
                        because it is no longer in use.
                Internal Controls Over Financial Reporting Considerations
As with any new process, it is important for entities to consider the impact
                        on internal controls over financial reporting. Entities using agile
                        development processes should evaluate whether (1) the risks of material
                        misstatement identified in the historical technology development process are
                        still applicable and (2) the controls in place appropriately mitigate the
                        risks associated with capitalization of costs in an agile environment. For
                        example, processes and controls related to the tracking of technology
                        development costs may need to be revisited to ensure that they remain
                        appropriate for the iterative nature of agile development, in which project
                        stages are not as easily identified.
                    Since accounting requirements pertaining to the capitalization of technology
                        costs are not specific to the application development method used in the
                        project (i.e., waterfall or agile), entities may not need to create new
                        accounting policies and control procedures. However, if these policies and
                        procedures have not historically been applied to agile environments, new
                        processes or adaptations to existing processes might need to be put in
                        place. Entities applying agile development techniques should ensure that:
                    - 
                                Cost tracking and capitalization are completed by those with the requisite knowledge of relevant activities together with personnel who have the requisite understanding of the relevant accounting requirements.
- 
                                Personnel are trained on the importance of time tracking and classification.
- 
                                All evidence is appropriately maintained to prove accuracy and completeness of time tracking.
Appropriate oversight and accountability will ensure that internal controls
                        are in place to identify and mitigate risk.
                Contacts
If you have questions about adopting agile software development approaches,
                    please contact any of the following Deloitte professionals:
                | John Celi Principal | Business Agility Deloitte Consulting LLP +1 617 437 3032 | Michael B. Dorn Manager | Business Agility Deloitte Consulting LLP +1 214 287 1827 | 
If you have questions about related accounting considerations or need assistance
                    with the following matters, please contact any of the Deloitte professionals below.
                - 
                            Determining the costs required to be capitalized by implementing a consistent capitalization framework and a policy application process.
- 
                            Developing an allocation method to track capitalizable activities of employees working on multiple projects.
- 
                            Developing robust documentation and process controls to facilitate a smooth audit and timely responses to regulators.
- 
                            Assessing real-time activities that represent capitalizable work through invoice tracking and reconciliation.
- 
                            Developing a cost-tracking mechanism to enhance transparency and integrity.
- 
                            Analyzing whether one-time and recurring costs related to payments to third parties should be capitalized or expensed.
- 
                            Considering the write-off of impaired or abandoned assets.
| Chris Chiriatti Managing Director | Accounting and
                                            Reporting Services Deloitte & Touche LLP +1 203 761 3039 | Rachel Grandovic Senior Manager | Accounting and
                                            Reporting Advisory Services Deloitte & Touche LLP +1 212 492 3664 | 
| Alicia Calcutt Manager | Accounting and Reporting
                                            Advisory Services Deloitte & Touche LLP +1 980 701 3270 | 
Footnotes
1
                        
ASC 350-40-15-2A states that internal-use software is
                            “acquired, internally developed, or modified solely to meet the entity’s
                            internal needs.” This includes software intended to be used in
                            connection with delivering a service (e.g., software as a service
                            (SaaS)). In addition, implementation costs incurred for cloud computing
                            arrangements are within the scope of ASC 350-40. Web site development
                            costs are subject to the guidance in ASC 350-50.
                    2
                                                  
This example is for
                                                  illustrative purposes only. There is significant
                                                  management judgment involved in the determination
                                                  of which costs can be capitalized, and they should
                                                  be evaluated on a case-by-case basis.
                                                3
                            
See ASC 350-40-35-6.