Search:

PmWiki

pmwiki.org

edit SideBar

Main / Costs

Estimated 2018 cost to develop Tesla's first autonomous driving ASIC and board is around $50M. Perhaps 3-year HW development cycle.

Recall that for engineers, only about 50% of project planning work man-hours are truly realized for development. The rest is time lost to meetings, sickness, vacation, reviews, daily office issues, overhead tasks like interviewing, interruptions, breaks, etc. This is even less for most workers in open floor plans.

Superprogrammers?

Capers Jones data suggests the best people are 6 times more effective than the worst people measured in months/KLOC, for small projects of 1 KLOC. Once you reach 2048 KLOC, that advantage has basically vanished.

NASA's software manager's handbook uses the following effort multipliers based on years of experience (ignores project size):

YearsEffort Multiplier
100.5
80.6
60.8
41.0
21.4
12.6

Ganssle, Embedded Muse: The previous picture is pretty illuminating. Everyone is equally awful on big projects. That ties in with Fred Brooks' aphorism "Adding people to a late project makes it later". As it does with DeMarco and Lister's observation that big projects are schedule killers because with so many people folks spend all of their time communicating, and not getting much useful work done. A small project means a tiny team, perhaps one or two people. As things scale the group swells. Pretty soon their days are consumed with reports, emails, meetings, and the like. Occasionally, one gets to squeak out a line of code while waiting for the next meeting to start. The best and brightest handle a meeting at the same speed as a dullard. Takeaways: segment projects as much as possible into small chunks. Put your best people on the pygmy portions. Protect the superprogrammers from the meeting/email/reporting insanity.

A Study

A porting project from a PIC24 to a PIC32MZ with an application of a few thousand lines of code (~3400), 6 or so different modules.

Initial Estimate

  • Source PIC32MZ dev board and programmer: 6 man hours
  • Microchip TCP/IP stack integration: 40-50 man hours
  • port existing PIC24 firmware: 16-32 man hours
  • PIC24 to PIC32 driver updates (UART, ADC, timers, etc): 32-40 man hours
  • board bringup 16-40 man hours

Actual

  • Source PIC32MZ dev board and programmer: 8 man hours
  • Microchip TCP/IP stack integration: 80 man hours
  • port existing PIC24 firmware: 40 man hours
  • PIC24 to PIC32 driver updates (UART, ADC, timers, etc): 40 man hours
  • board bringup 60 man hours

(Verify this one) The TCP/IP stack integration involved getting sample code working on a dev board, and porting other dev board samples over to our dev board.

The port work was hampered by the learning curve involved in moving from the MPLAB MCC generator to the more advanced Harmony tool, as well as problems with newer versions of the compiler. It was discovered that there were documented compiler issues with later releases causing painfully slow debugging launches, although the later better C++ support was also desired.

The driver updates hit the max estimate because of unexpected significant changes to the auto-generated driver code for the PIC32MZ, especially in the way the UART ports and timers are managed, and this required significant changes to the application code.

The board bringup went over because of a strange and unresolved problem of the specific Eth PHY chip in use not playing nice with the PHY on the workstation NIC. Either PHY is fine with others. It was believed this was a driver problem at first, then thought to be a likely hardware problem with a particular board. This resulted in a lot of wasted time trying various driver configurations and Eth port settings. The PHY present on the proven dev board could not be sourced, so the device was built with a different chip for which no proof board was on hand. The debugging process was exacerbated by stability problems in MPLAB.

Overall, the project finish date was pushed because of delays in sourcing parts and completing board assembly.


Page last modified on May 14, 2025, at 05:03 PM