Who Knew - COBOL tops in security according the CAST CRASH Report

Thursday, December 15, 2011 by Arlene Minkiewicz
This week CAST released their second annual CRASH (CAST Report on Application Software Health) Report.   The summary findings can be found here . You will also find a link to the Executive Summary.   The report highlights trends based on a static analysis of the code from 745 applications from 160 organizations.  The analysis is based on five structural Quality characteristics: security, performance, robustness, transferability and changeability.  Some of the more interesting findings include:
* COBOL applications have higher security scores that other languages studied (meaning they have better security)  I personally found this finding surprising though it seems that the types of applications in their data set that use COBOL are mostly associated with banking and financial services so I suppose it has been fine tuned specifically for security concerns throughout its life

* Modularity minimized the effect of size on quality.  So while it has historically been true that larger software programs were likely to have higher defect densities – increases over time in the practice of high modularization have served to mute or mitigate this trend.

* The use of the waterfall development methodology produces code with better scores than agile for transferability and changeability – meaning these apps are likely to be easier to read, understand, maintain and address technical debt.

* Business applications have an average of $3.61 worth of technical debt for per line of code. – and this is, admittedly a very conservative estimate if you review the methodology used to calculate it
And these are only a few of the findings.  The report provides findings around technology, development process, modularity, software size, type of industry, release frequency and number of users.  You should check the link above to read the entire eye opening report or check out this webinar that summarizes it.

Is Open Source Software Higher Quality Software?

Monday, December 12, 2011 by Arlene Minkiewicz
Check out this paper   “The Economics of Community Open Source Software Projects: An Empirical Analysis of Maintenance Effort.”  In it the authors hypothesize that Open Source practices increase the quality of the software that gets produced and subsequently lead to code that is less costly to maintain. 

Low quality code must be refactored more frequently than high quality code and there is substantial evidence that maintenance interventions tend to lead to even more degradation of the quality of the code.  So not only are low quality applications more expensive to maintain, the unit maintenance cost also increases over time.  The authors use the term entropy to describe the phenomenon and introduce the concept of entropy-time as a means of creating a standard for measurement of this degradation over time due to subsequent refactoring activities.

The authors use this notion of entropy-time to conduct an empirical analysis comparing the maintenance costs for Open Source applications with the maintenance costs that come from a traditional maintenance cost estimating model developed through study of software maintenance efforts for proprietary software applications.  The data studied confirmed their hypotheses.  The study was rigorous and my intent in mentioning it is to pique your interest not to be comprehensive, so check it out if you’re interested.

What interests me are the conclusions the authors draw and their suggestions as to why these may be so.  The authors posit that Open Source Software may be higher quality software because it is being developed by people all over the planet where there is no (or little) direct communication requiring the development to be modular and very tightly coupled.  They further suggest that the interests of open source developers are more motivated towards quality because of the pride they take in their work or because they know that their work will be viewed by the masses.  The final factor they suggest might be responsible for this increase in quality with Open Source is the fact that schedules are self inflicted rather than in proprietary efforts where schedules are driven by customer or market demands.

I thought it was a great study with thought provoking results.  The authors ended with several examples where companies adopting a mixed public/private model has resulted in high quality software successes.  So maybe the software development community should look at where adopting open source practices might improve the quality of the software we are producing?

Know the Unknowns and Know how to quantify them!

Monday, November 28, 2011 by Arlene Minkiewicz
Check out this blog post  on project estimation.  The author discusses the practice of ‘padding’ effort estimates and how destructive this practice can be to healthy project management.  She suggests that project team members, rather than padding their individual efforts at a task level, should collaborate with project management in order to produce a good solid project plan with sufficient contingency reserves.  This allows for the project plan to reflect the most likely case but contains a safety net for those cases where the stuff that was unknown at the time of project planning disrupts the project.  The management should assign these reserves based on their degree of confidence that they understand potential unknowns and the criticality of the success of the project.

This is a great idea but how is management supposed to determine the right amount of reserves for a particular project.  A risk analysis exercise is a great way to do this since it provides an analytical way to translate uncertainty about the knowns and unknowns into a probability distribution that represents all the potential effort possibilities for the project each assigned a confidence level.  So rather than adding a 30% reserve the project manager who wants an 90% certainty that their project will finish on time and budget can develop a plan based on the most likely estimate (let’s say the confidence level on the most likely estimate is at the 70% confidence level) and establish a reserve equal to the difference between the 70% estimate and the 90% estimate.  This gives project management a means to credibly quantify their legitimate uncertainties into a sensible and defendable contingency reserve.
How do you handle the uncertainties associated with unknowns when you plan projects?

Taking the Pulse of the Estimation Industry

Tuesday, November 8, 2011 by Arlene Minkiewicz
Last week I attended the 26th annual COCOMO forum.  This meeting is an interesting combination of conference and working group and for me it’s a great place to take the pulse of the software and systems estimating community.  Lots of times you’ll go to a conference like this and feel as though the same old things are repeated year after year.  Not so with this conference – it is always a great mix of seasoned practitioners and graduate students with both groups providing forward looking information and inspiration on a variety of topics.  Not that some themes are not repeated year after year as there are some aspects of our industry that take a long time to change.  But there is also a preponderance of new and exciting (as exciting as math and statistics can get anyway) research.
The presentation topics were varied and included topics such as schedule estimation, requirements variability, very small satellites, design driven modeling and mobile application development to name a few.  In addition to many excellent presentations there were several workshops offered where attendees were able to participate in in-depth discussions about specific topics.  The workshop topics are very telling about what people in our industry think is important right now. The topics included Metrics and Estimating Models for Software Maintenance (this is a huge area for exploration and budget constraints are making it necessary to maintain and sustain systems for longer and longer) , Air Force Estimation Guidebook, DACS Data Repository Workshop (on-going effort to make software project benchmarks available to the industry), and Estimation Curriculum Development. 
There were also two panels where the future of domain modeling, estimation and improvement were discussed – one focused on the aerospace industry and the other on the commercial industry.  The best question I think for either of these panels was “What do you think we’ll be talking about 10 years from now?”  I think this was a great question because it speaks to the forward looking nature of the forum and it’s attendees.  What do you think we’ll be talking about in 10 years?

IT Project Failures

Thursday, October 20, 2011 by Arlene Minkiewicz
Check out this article.   “Why IT Projects May be Riskier than you Think”.  If you read through the comments you will see that this article truly resonates with many in the field.  In the article the authors discuss research of over 1471 IT projects (large projects with an average cost of $167 million) comparing budgets and expected performance with actual costs and results.  Their results were surprising in that the average overrun was only 27%.  Turns out that the average isn’t what requires study but rather the outliers.  The study found that 1 in 6 of these projects experienced average cost overruns of 200%.  This appears to represent a disproportionate number of projects with huge overruns.   

There is much about this discovery that is disturbing.  Nothing good happens when large IT projects go off the rails.  Money is lost, careers are ruined, and businesses tank.  And going forward – it’s not getting any better because projects are getting more not less complex.

OK – while this study is eye opening in some sense - unless you’ve been living in a cave it’s not really news that lots of large IT projects fail.  It seems to me the primary reasons for this are

* Failure of business leaders and IT personnel to communicate successfully about the problem to be solved and the plans for how to solve it.
* Project plans that evolve from optimism, bravado, or capitulation
* Failure to understand that change is hard and that technology alone will not effect change
* Refusal or inability to learn from history
* Inability to accept that changing or adding requirements to a software project can have far reaching effects that cost money and take time (seems like a no brainer but it happens all the time)
* Leadership that acts without introspection, self awareness, courage or good sense.

In other words there’s a very human element to most IT Project failures.  Some things that businesses can do to mitigate the likelihood of such failures:

* Business leaders should work collaboratively with IT on all aspects of a projects – conversations should be two way with both sides listening to the issues and concerns
* Organizational history on like projects should be studied.  If no history exists, look externally to learn what works and what doesn’t in your industry
* Tools and processes should be used wherever possible to support project estimation, planning and decicion making without emotion or bias
* Change needs to be championed from the top down
* Evolve the project in small achievable chunks.  Assess progress regularly.  Have a plan for how to identify problems as they arise and a criteria for when it is time to cut your losses
* Business and IT leaders need to act with knowledge of the business, knowledge of their teams, honest and realistic progress assessment, and courage to make hard decisions.

Certainly none of this is rocket science.  But it seems to me that any organization contemplating a large scale IT change initiative should first turn eyes on their organization and their past history to see how well or poorly they have addressed the issues outlined above. 

Quantifying Technical Debt

Monday, October 3, 2011 by Arlene Minkiewicz
Here’s an interesting article “Technical Debt as Metaphor for Future Cost” ().  In this the author discusses the acceptability of using the metaphor of technical debt to facilitate communications between business leaders and the software team when negotiating around the triangle  (time, money, scope).   And while the  author accepts the use of this metaphor good “short-hand” for communicating the fact that avoiding the work now is not sparing the cost but just rearranging the way the costs are incurred – and often increasing the overall costs that need to be spent. 

The caution this article carries about the use of this metaphor is not around the realization that decisions made to shortcut the process or defer functionality will cost in the future, but rather around quantification of how much they will cost in the future.   When we incur financial debt we basically know what we owe – within some uncertainty about future economic conditions.  But as the author points out in order for technical debt to successfully facilitate conversations with the business there needs to be trust established about the software team’s ability to quantify the magnitude of the debt. 

So how do software teams gain this trust and create successful negotiations around software project decisions. First of all they need a good language around which to have the conversation.  Using source lines of code or function points as a basis for describing the size of the debt is a good start.  An even better measure would be software size augmented by factors that indicate innate complexity and quality level (each of these is basically unit-less in the large but can be unitized within an organization) Good historical data is a great place to start understanding how size, complexity, quality all contribute to technical debt.  Teams that have shown successes through success software estimation are the teams who the business will listen to when the suggest that this shortcut will create this X hours of additional work effort in a future release or that the additional overhead associated with not fixing this problem now will be Y hours. 

How does your organization go about quantifying technical debt?

Some Random Musings on Technical Debt

Friday, September 9, 2011 by Arlene Minkiewicz

I have recently being following an animated thread on LinkedIn “Death of a Metaphor – Technical Debt.” It’s been live for 2 months with over 200 contributions from dozens of different people.  The discussion was launched by questioning whether continued use of this metaphor makes sense.  The discussion thread weaves and bobs around actually answering this question but it’s amazing how passionate the world is on this topic.  My personal opinion is that it’s a perfectly adequate metaphor because it helps create a discussion between IT and the business leaders in terms that both can understand – dollars and cents. 

Sometimes during software development decisions are made to forgo structural quality to meet some other objective – additional functional requirements, time to market, etc.  How many of us have been involved in a development project where it was more important to get the product out the door than it was to get it done right – we take short cuts with the intent to go back and do it right once the immediate fire drill is over.  The problem is that once the product is out the door and meeting the customers expectation - how do we convince the business that there is as much (maybe more) long term value in fixing a product that is seemingly working than in investing in new features that will make the product more appealing to more users.  What business leaders may not understand is the cost of continuing to maintain and grow a structurally questionable - sometimes brittle – application.  Technical debt is the monetization of that cost making it possible for IT to communicate the value to the business of creating and maintaining a structurally sound application.  Check out this blog for a good discussion of technical debt and how to prevent accruing it.  “Technical Debt gets the Message Across”. 

Software On the Move!

Friday, September 2, 2011 by Arlene Minkiewicz

The IEEE published “Top 11 Technologies of the Decade” in the  January 2011 editions of the IEEE Spectrum magazine.  It should come to a surprise to no one that the Smartphone was number 1 on this list.  The answer to the author’s question “Is your phone smarter than a fifth grader” was a resounding YES![1] 

 In 1983 Motorola introduced the first hand hell cellular phone.  It weighed in at two and a half pounds, had memory capacity for 30 phone numbers, took 10 hours to recharge and had a selling price of $4000 ($8045 in 2006).  The phone was the size of a man’s head and would sustain an hour of conversation before a recharge was required.  In June of 2007 Apple announced that it was launching the iPhone which would basically integrate all of the electronic gadgets teenagers carried around in their pockets into a complete package – phone, web browser, iPod and camera.  The iPhone 5 which should be available by Fall 2011 incorporates NFC technology, an upgraded operating system with cloud integration, music streaming, voice interface, 4G connectivity and an embedded social networking tool. NFC technology makes it possible to use the phone effectively as a credit card – making payments by swiping the phone near a device that can read its information. [2][3][4][5]

The proliferation of smartphones and tablets has led (and will continue to lead) to the proliferation of mobile applications.  And it seems as there are no bounds to the kinds of applications that are being developed for smartphones.  A sampling of some popular applications is listed below:

* Chase Mobile – which allows users to check account balances and review transactions
* Angry Birds – very popular gaming software
* Facebook - allows users to report their status from anywhere
* Yelp – allows users to locate places to eat, shop , etc. along with reviews from local patrons of said establishments

The list goes on but clearly if you can dream it – there’s an app for that (or at least there could be an app for that).  As practitioners in the art of estimation, all this mobile application development leads to the inevitable question of what does it cost to develop mobile apps and how is mobile application development different from more traditional forms of development? 
Mobiles apps can be categorized as either native applications – which run entirely on the device or web applications - with small clients resident on the device which interact with applications running on a remote server.  It appears that in general the web applications are less complex than the native ones, and thus less effort is required to build, test and deploy them.
While mobile application development is still in its infancy so a lot of what is going on in the industry now has a bit of the Wild West feel to it.  This stage of any technology is impacted by learning curve issues which may dampen productivity but at the same time there is the newness factor – where smart people are excited about the promise of new technologies and are willing to work extra hard to make things happen.  So while there is some effort/cost data available for mobiles apps, we must temper our enthusiasm.
Another concern when developing mobile applications is which platform(s) it is being developed for.  If an application is being developed for iPhone, Android and Blackberry the effort is significantly increased.  Although there are elements of the design that can certainly transcend platforms, each of these platforms has its own operating system and development environment. There are additional potential compatibility issues in cases such as Android where there are multiple companies manufacturing devices. Additionally, application developers need to determine which versions of OS for each of the platforms the application will work with.  They also need to be aware of and respect the user interface guidelines developed for the device(s) for which they are building apps.
Mobile applications may need to respond to various forms of external data from sensors, a real or virtual keypad, a GPS, microphones, etc.  They also may need to respond to movements of the actual device as well - so the screen adjusts when the user changes the orientation of the device.  There are also many instances where mobile apps will need to interact with other applications on the device.  Often the mobile application will need to share elements of the user interface with other applications. 
Mobile applications need to be developed in such a way as to limit the consumption of resources.  No matter how good your killer app is, if it drains the phone battery in half an hour no one is going to use it.  Along with all other applications that have access to the Internet, they should be built with a focus on security so that the users data is protected from malicious intrusions.
All of the issues listed above are likely to impact the complexity of the development effort of the mobile application – thus they have the potential to be an important part of the cost equation as well.  In many cases mobile applications are smaller than traditional applications so increased complexity may be offset because the projects and corresponding project teams are small.  Still this increased complexity is important to consider.
Another area where mobile apps are dramatically different than traditional apps is in the testing of the application.  Simulators and emulators exist and can be helpful in some circumstances but they are not always easy to use, effective or efficient.  There are also issues, with some platforms around the maturity of the technology that allows applications to be transferred from the development environment to the mobile device – further complicating the testing process.  Finally there is just the sheer magnitude of making sure that the application functions correctly on all the combinations of hardware, operating system and carriers on which it will be expected to perform.  The cost and effort associated with testing may present significant differences when being evaluated for mobile applications.
Smartphones are here to stay and more and more businesses will want (or need) to develop apps for them in order to remain competitive.  With the technology still relatively immature there is limited data that will help us develop cost models but there is feedback from the field on what issues are most likely to impact costs.  Though the technology is still emergent – there is some data available from commercially based mobile app developments – so at least we have a place to start.
Share your experiences with mobile application development by leaving a comment for this post.


[1] Ross, Philip E., “Top 11 Technologies of the Decade”, IEEE Spectrum, January 2011
[2]  http://www.motorola.com
[3] http://www.apple.com
[4] http://en.wikipedia.org/wiki/Mobile_phone
[5]http://www.ibtimes.com/articles/170418/20110628/quick-look-at-iphone-5-features-as-september-release-date-looks-probable-nfc-camera-8mp-lte-4g-displ.htm

Is Big Data the new Big Thing?

Thursday, August 25, 2011 by Arlene Minkiewicz

Check out this Report on Big Data from McKinsey & Company published in June 2011. 

Back in the day, when personal computers were becoming widely accepted and Microsoft Windows© was the new cool thing, SneakerNet was a common means of sharing data.   Certainly the introduction and subsequent improvements of networking technology and the Internet have made data sharing a whole lot easier and quicker.  But the concept of Big Data creates a whole new level of opportunity and potential for collecting and using data in ways heretofore unthinkable.

So what is Big Data?   According to the report referenced above – “Big Data” refers to datasets whose size is beyond the ability of typical database software tools to capture, store, manage and analyze.  The authors are cautious not to declare a specific size since lightening fast technology advances may quickly make their number wrong thought they do propose currently that datasets in the few terabytes to several petabytes (1000’s of terabytes).  (hmm… I just had to add petabytes to my Word® 2007 dictionary).  The concept of Big Data requires the collection of data from multiple sources (sensors, smartphones, GPS’s, social media postings, data collected by government agencies, etc.) and performing analysis of that data in ways that will make life better and bring more value to businesses, consumers, citizens, etc.
Some examples of Big Data types of applications include;

* Marketing  initiatives like Amazon.com’s “you might also want …” admonition based on information available about your buying patterns and the buying patterns of those purchasing the same item

* Applications like RedLaser which lets a shopper scan a bar code of an in-store item with their smartphone and get immediate price and product comparisons

* Improved supply chain management through access to data across the supply chain helping manufacturers optimize planning and delivery of new products

* Mobile phone apps that allow merchants to track customers from the moment they enter the store to determine traffic patterns and flows through shelves and displays

* Capabilities like OnStar ® where sensors in the automobile send real time data to the service if the airbags deploy or to alert that a system is malfunctioning.

* Capabilities like ShopAlert that sends coupons or offers to smartphones of subscribers when they are in the vicinity of a store, restaurant or bar

The report actually contains a lot more examples across various platforms and sectors.  They have specifically Health Care, Public Sector, Retail, Manufacturing and the ever growing business of using personal location data.  Within each of these categories – opportunities for creating value as well as potential barriers to adoption are presented.

While the technology and the possibilities create lots of excitement – there are also some areas of concern – how much personal data is too much and how close do we want “Big Data” to look like “Big Brother”.   Certainly there are lots of issues that need to be addressed at all different levels before Big Data goes wildly mainstream – but it seems to me that the possibilities for value and capability will, in many cases, be worth it. 

How have you seen Big Data used?  What possibilities can you see for Big Data applications?  Leave a comment to this post to share your Big Data stories.


Estimation Trivia

Thursday, August 11, 2011 by PRICE Cost Research Analysts
A Bell 430 Helicopter's rear blade spins 1884 times per minute; how many times for the main blade?  Submit your estimate in the comments section!

SYSTEMS ENGINEERING "META 'V'" - ON THE RIGHT TRACK?

Monday, August 8, 2011 by Quentin Redman

PRICE Systems is involved with the formulation of the total Life Cycle/Whole Life of systems of systems and is asking the question, "Is the META 'V' on the right track?"

INCOSE is considering the total life of the system, the traditional Development Engineering V must be expanded to account for the life of the system beyond Initial Operational Capability.  In this writer's opinion, we have to extend the development V to account for this with this Meta-V concept
.  The Affordability Working Group recognizes that IOC is:

·        The initial release of both the Primary and Enabling system; and the initial release of a successful system continues to evolve to meet environmental changes. Further, monitoring and feedback are integral parts of the evolutionary process.

                                                   


What do you think?  Post a comment or a question; we'd love to hear from you.

The Affordability Challenge and Cost Realism

Monday, August 1, 2011 by Bob Koury
After many years of working with systems engineers and design engineers it became apparent to me that the cost of the system they were designing / building mostly seemed to be an after thought. Maybe not by the Lead Systems Engineer or Program Manager but certainly down in the trenches. The engineers working at the subsystem, component, and element levels always expressed frustration with having too much to think about to add one more variable, such as cost estimation, to their work load. I posit that this can no longer be the case.

In September of 2009 the United States Government Accountability Office (GAO) submitted a report [1] discussing the lack of robust Analysis of Alternatives for weapons systems. The report indicated that …
“Cost, schedule, and performance problems in the Department of Defense’s (DOD) weapon system programs are serious. One key cause is that DOD allows programs to begin without a sound match between requirements and the resources needed to achieve them. That is, program cost and schedule estimates are based on optimistic assumptions, and a lack of sufficient knowledge about technology, design, and manufacturing.  Why do DOD weapons programs experience simultaneous cost growth and decline in program performance? The answer ultimately is found in four sources [2]:

1.     Programs start with poor foundations for developing realistic cost estimates

2.     Programs move forward with artificially low cost estimates

3.     Excessive requirements change

4.    Imbalance between wants, needs, and means

These four sources are outcomes of failing to meet the affordability challenge. What is the challenge? It is the ability of programs to balance requirements, cost, and budget. Programs which do not invest up front in affordability analysis will likely result in cost overruns.

This initial blog posting will be the first in a, probably disjointed, set of musing to raise the awareness of a need to think cost early and often during the development process. I hope you will find this interesting and useful enough to join in the conversation. And to that end stay tuned ....

[1] GAO Report, Defense Acquisitions: Many Analyses of Alternatives Have Not Provided a Robust Assessment of Weapon System Options, GAO-09-665 (Washington, D.C.: Sep 24, 2009

[2] GAO Report, Assessments of Selected Weapon Programs, GAO-09-326SP (Washington, D.C.: March 30 2009

INCOSE DESIGN FOR AFFORDABILITY INITIATIVE

Friday, July 29, 2011 by Quentin Redman

PRICE Systems is integral in the INCOSE Design for Affordability Initiative as a vital member of the Working Group Internationally.

The INCOSE Affordability Working Group’s definition of Affordability is:

Affordability is the balance of system performance, cost and schedule constraints over the system life while satisfying mission needs in concert with strategic investment and organizational needs.

The INCOSE Affordability Working Group’s definition of SE Design for Affordability is:

Design for Affordability is the Systems Engineering practice of balancing system performance and risk with cost and schedule constraints over the system life satisfying system operational needs in concert with strategic investment and evolving stakeholder value.

 

To meet the Affordability Working Group goals we need to move from the conceptual to the concrete (i.e., how do we demonstrate that the affordability of a system has been improved; or define the trade space).  To do this, we can decompose the definitions into their potential constituent parts.  The definitions lead to considering three constituents for affordability:

Which represent the central concept of affordability as “Cost of Capability over time.”

 

a.      Required Capability – what does the system contribute to the mission or the next higher System Context, or How does the system generate operational value? e.g., search, detection, rescue, transport

b.      Required Capability Performance – How well must the system perform the required capability, e.g., defeat X% of the threats, detect Y% of the targets, or top speed of N kts. How do we measure?

c.      Budget, Risk and Schedule – Resources, technical, financial & temporal available to provide the capabilities and needed performance (system value). How do we measure?

System Life Cycle or Affordability over time

It is important to note that there is a significant difference between the INCOSE approach and the Gate’s definition.  That is, INCOSE is addressing the entire system life cycle while Gate’s considers “conducting a program”.  This is a significant difference as the B-52 is a single system; however, there have been many programs over the life of B-52 system.  Since INCOSE is considering the total life of the system, the traditional Development Engineering V must be expanded to account for the life of the system beyond Initial Operational Capability.The Affordability Working Group recognizes that IOC is:

·        The initial release of both the Primary and Enabling system; and

·        The initial release of a successful system continues to evolve to meet environmental changes.

Further, monitoring and feedback by PRICE Systems as a member of the INCOSE Working Group are integral parts of the evolutionary process.


Open Source Software @NASA

Wednesday, July 27, 2011 by Arlene Minkiewicz

Open Source software is software that is distributed publically with all of its source code.  Users of open source software are encouraged to review the source code, make changes to it and share those changes with the rest of the user community.  The value in open source is that providing the source code to the user community allows those in the community who are willing and able to make improvements, add features, and fix bugs. Open source takes the notion of peer review to the next level.   It means that instead of just a development team, the entire user community can potentially be collaborating to make the code better.  Even those members of the user community that are not technically savvy are encouraged to contribute to the quality of the software.  The premise for open source is that the more varied views and perspective that go into crafting and growing a software application, the more that application will deliver customer delight.  Eric Raymond in his essay The Cathedral and the Bazaar  likens the model of developing open source software to a “great babbling bazaar of differing agendas and approaches".  

Given this you would think that government organizations would be hesitant to venture into the use of open source but I was pleasantly surprised when I happened upon this website .  The NASA Open Source Agreement is an Open Source Initiative (OSI) approved license to allow public release of NASA funded software.  NASA believes that open source software is revolutionizing the way that software is created, improved and used.  They think it is the best way to keep the public apprised of what they are doing and a great way for students, scientists and programmers to contribute their expertise and skills to NASA endeavors.

Estimation Trivia

Wednesday, July 20, 2011 by PRICE Cost Research Analysts
How many golf balls would it take to circle the Earth at the equator?  Submit your estimate in the comments section!

Electronics Complexity and Quality Levels…

Wednesday, July 20, 2011 by John Swaren

Electronics Complexity and Quality Levels…

 

The PRICE Calculator for Electronics Manufacturing Complexity, shown below, has a subtle but very powerful feature for Quality Adjustment, based on Mil-Hdbk-217E Quality Levels. 

MCPLXE Calculator

 

 The above shows “None” which yields the standard MCPLXE, in this case a 8.07 value applying 100% Large Scale Integrated Circuits for Display (with CRT) equipment as an example. Yet, in the course of estimating a mission-critical automatic tester  with multiple controller-card assemblies for an airborne-military platform, I adjusted for more stringent quality levels—specifically “S-1” level consistent with Mil-Std-975/ Mil-Std-1547 per below.

Quality Levels

 

 

Note that for military airborne platforms, as well as manned and unmanned space, the default is a “B” quality level. {For military mobile and ground, the defaults are “B-1” and “B-2” respectively.} The result of adjusting up to a more stringent “S1” quality/tolerance level was a much higher 8.94 MCPLXE value which significantly drove up costs. Out of curiosity, I did sensitivities on these quality levels, from “S” down to “D-1” {again B-1 & B-2 are moot} as shown in the boxed center column “Display” below (in purple).


MCPLXE vs Quality table 

 

As you can see, all electronic types (in this airborne military specification) are highly sensitive to quality levels. Graphically, we have the following results. 
MCPLXE vs Quality graph

 

Rule of thumb: when the quality requirement is in question— ask!

 

Its all about the triangle

Tuesday, July 12, 2011 by Arlene Minkiewicz

Check out this article from CIO magazine about managing your project budget.   The author, Jason Westland, suggests four things necessary to maintain control of your project budget.  While these are not earth shattering suggestions, sometimes project managers in the throes of a project can lose sight of their importance.  The strategies are:

* Continually forecast the budget
* Regularly forecast resource usage
* Keep the team informed
* Manage scope meticulously

Or to put it another way – respect and revisit the Project Management Triangle.  (To learn more about the Project Management Triangle go to this link  and look for the “Respect the Triangle: Scope, Time and Cost” paper)   Successful projects require constant vigilance around scope, people, dollars and the calendar.  The Triangle is an excellent tool for project leaders to use as a visual tool to facilitate negotiations with customers when things change in a project (and things will change!).  You can also check out my webinar on this topic.

How do you keep your projects in check?

Reused Code - what's it really buying you?

Monday, July 11, 2011 by Arlene Minkiewicz

There is a ton of code out there and we’re constantly adding more.  Gartner reported in 2009 that there were more than 310 billion lines of code in use worldwide. MS Word has grown from 27,000 lines of code in the first version to about 2 million in 2010.  The Windows Operating System grew from 3 million lines of code in 1992 to 20 Million in 1998.  You get the point – there’s lots of code out there doing lots of the same things that we may want our software to do.

One of the challenges software project leaders have in estimation and planning is successfully quantifying the functionality they can reuse and understanding and communicating the effort and cost associated with that reuse.  In projects where significant reuse is anticipated, reuse is really going to shape the project.  Reuse comes in many forms.  A firm grasp of the types of reuse and the potential pitfalls of such reuse facilities a thorough analysis of the impacts that reuse has on the project.  It is ill advised to expect to get a one to one benefit for reuse.  It is even more problematic to plan on reuse as a quick fix to schedule pressure.  

Some of the things you want to consider:

* Reusing legacy code can be a great productivity booster if the code is stable, well written and some of the original developers are on hand.  On the other hand, if you’re working with legacy code that has become spaghetti code which is only supported by a mildly deranged programmer in the corner cube – you might be better off starting from scratch
* The auto translation of existing code to newer technologies can also boost project productivity but one cannot expect the process to be transparent or without hiccups.  It is important to understand the nature of the translation tool, the amount of preparation required to use it and the expected amount of human intervention to make the translation complete
* The use of Commercial Off the Shelf Software (COTS) can significantly impact the schedule for a software project but there needs to be a thorough evaluation of the capabilities of the COTS against the requirements of the project.  There also needs to be acknowledgement with the consumer of the software system that using COTS software limits the amount of customization possible resulting in the risk that the finished product is not exactly what they expected.

Also it is often more complicated to integrate reused (not developed here) solutions since there is a steeper learning curve during the integration phase.  Code reuse can be a great way to achieve increased productivity but it is important not to assess this improvement over optimistically but rather through a careful appraisal of what the reuse activity entails.

Have a reuse story (success of horror) you want to share?  Post it as a comment to this blog.

Estimation Trivia

Tuesday, June 21, 2011 by PRICE Cost Research Analysts
What percent of active U.S. military personnel are from the Marine Corps?  Submit your estimate in the comments section!

How to Develop Data Driven Cost Estimates Webina

Friday, June 17, 2011 by Zach Jasnoff
Building transparency and traceability into your estimating process leads to more defendable estimates and we can help you do that. We will demonstrate how historical data is transformed into predictive models.   You will learn how your data can be synthesized into custom models that can be employed in support of third party models within a single analytical framework. Learn more at our webinar on June 29th @ 11am Eastern.  Reserve your no-charge; no obligation webinar seat now at: https://www2.gotomeeting.com/register/372682434