Jan 23
2012
By Ipek Ozkaya
Senior Member of the Technical Staff
Research, Technology, and System Solutions
Managing technical debt, which refers to the rework and degraded quality resulting from overly hasty delivery of software capabilities to users, is an increasingly critical aspect of producing cost-effective, timely, and high-quality software products. A delicate balance is needed between the desire to release new software capabilities rapidly to satisfy users and the desire to practice sound software engineering that reduces rework. A previous post described the practice of strategically managing technical debt related to software architecture, which involves deliberately postponing implementation of some architectural design choices to accelerate delivery of the system today and then rearchitecting at a later time. This blog post extends our prior post by discussing how an architecture-focused analysis approach helps manage technical debt by enabling software engineers to decide the best time to rearchitect—in other words, to pay down the technical debt.
Read more...
Dec 19
2011
Acquisition , Acquisition Dynamics , Agile , Architecture Documentation , Architecture Driven Design (ADD) , Binaries , Cyber-physical Systems , Fuzzy Hashing , Handheld Devices , Malware , Measurement & Analysis , Resilience Management Model (RMM) , Safety-Related Requirements , Security-Related Requirements , SEI Research , Software Cost Estimates , Team Software Process (TSP) , Technical Debt
By Douglas C. Schmidt
Chief Technology Officer
A key mission of the SEI is to advance the practice of software engineering and cyber security through research and technology transition
to ensure the development and operation of software-reliant Department
of Defense (DoD) systems with predictable and improved quality,
schedule, and cost. To achieve this mission, the SEI conducts research
and development (R&D) activities involving the DoD, federal
agencies, industry, and academia. One of my initial blog postings
summarized the new and upcoming R&D activities
we had planned for 2011. Now that the year is nearly over, this blog
posting presents some of the many R&D accomplishments we completed
in 2011.
Read more...
Jul 28
2011
By Nanette Brown, Senior Member of the Technical Staff
Research, Technology, and System Solutions program
Occasionally this blog will highlight different posts from the SEI blogosphere. Today’s post is from the SATURN Network blog by Nanette Brown, a senior member of the technical staff in the SEI’s Research, Technology, and System Solutions
program. This post, the third in a series
on lean principles and architecture, continues the discussion on the
eight types of waste identified in Lean manufacturing and how these
types of waste manifst themselves in software development. The focus of
this post is on mapping the waste of motion and the waste of
transportation from manufacturing to the waste of information transformation in software development.
Read more...
May 2
2011
By Ipek Ozkaya
Senior Member of the Technical Staff, Research, Technology, and System Solutions
As industry and government customers demand increasingly rapid
innovation and the ability to adapt products and systems to emerging
needs, the time frames for releasing new software capabilities continue
to shorten. Likewise, Agile software development processes, with their
emphasis on releasing new software capabilities rapidly, are increasing
in popularity beyond their initial small team and project context.
Practices intended to speed up the delivery of value to users, however,
often result in high rework costs that ultimately offset the benefits of
faster delivery, especially when good engineering practices are forgotten along the way. This rework and degrading quality often is referred to as technical debt.
This post describes our research on improving the overall value
delivered to users by strategically managing technical debt, which
involves decisions made to defer necessary work during the planning or
execution of a software project.
Read more...
Apr 18
2011
by Stephany Bellomo
Chief Engineer for Civil & Defense Agencies, Acquisition Support Program
This is a second in a series of posts focusing on Agile software
development. In the first post, “What is Agile?” we provided a short
overview of the key elements of the Agile approach, and we introduced
the Agile Manifesto. One of the guiding principles from the manifesto
emphasizes valuing people over developing processes. While the manifesto
clearly alludes to the fact that too much focus on process (and not
results) can be a bad thing, we introduce the notion here that the other
end of the spectrum can also be bad. This blog explores the level of
skill that is needed to develop software using Agile (do you need less
skill or more?), as well as the importance of maintaining strong
competency in a core set of software engineering processes.
Read more...
Recent Comments