On Writing Tickets (Part 1)

(Right-Sizing Tickets) Spoiler alert: I’m going to tell you right up front what my conclusion is: Tickets should be large in scope. Also, tickets should be medium in scope. Finally, tickets should be very small in scope. Tickets, tickets, tickets! Tickets for everything! Imagine a ticket with the instructions “create user login.” Cringing? Me too.… Continue reading On Writing Tickets (Part 1)

Mistakes

The other day my daughter wanted to heat up some soup in the microwave. She insisted on doing it herself. The lid of the Campbell’s Soup can the type with a tab that can be opened without a can opener. She stood in front of her mother as she attempted to open the can, wrestling… Continue reading Mistakes

Do Not Flounder (Stay Un-bored)

The following is an article that I am working on for a yet-to-be-determined publication. Having done this before, I will say that getting an article published in a journal/magazine isn’t as difficult as one may think (as long as you have something to say). This hasn’t been proofed, so please forgive any typos or errors.… Continue reading Do Not Flounder (Stay Un-bored)

Success as a Technical Lead – Article

I stumbled upon this article today. Its a little dated (from 2008), but still relevant. I don’t think the list is comprehensive, and I certainly think other technical leads would have varying opinions on things. All of the points listed are good, but there are a some points that really stand out: 6. Be part… Continue reading Success as a Technical Lead – Article

Version Control/Wiki Control

I FIRMLY believe that documents related to a project should be managed in the same version repository as the source code. This gives us a snapshot in time of all items related to a project. The problem with this comes when using a wiki (and I love using wikis, so don’t get me wrong). There… Continue reading Version Control/Wiki Control

6 Developers, One Room

Under an extremely tight deadline one team member decided that it would be best if the developers took over a conference room. On a long conference room table there are 6 computers, and 6 extremely talented developers chat, joke, brainstorm and work away. The manager of the team is there too, explaining requirements and helping… Continue reading 6 Developers, One Room

Appropriate Checkin Comments

I read this post today with a list of funny checkin comments today. Some of them are funny simply because of the lacking description. Here are some comments I’ve seen in my personal experience: many small changes Microsoft IE sucks! cleanup oops fix the bug Worse, I’ve seen entirely empty changeset comments. The above lists,… Continue reading Appropriate Checkin Comments

Test-Parallel Development

Here’s a post (albeit dated) where a developer lists a few problems with test driven development. There are plenty more where that came from. What I’ve found works better is a hybrid approach, where we write tests at the same time as code (or just after). The idea behind pure TDD is one of those… Continue reading Test-Parallel Development

Ticket System as a Trigger for Peer Reviews

Somewhat recently I was thinking about what ticket status might be appropriate when using issue tracking for all tasks from functional requirements to documentation to defect tracking. It got me thinking about the need for peer reviews of code and how tedious these reviews can be. It turns out there is at least one plugin… Continue reading Ticket System as a Trigger for Peer Reviews

Is the Software Medical Device World Ready for Agile?

To begin with, I don’t see any real reason why software medical device manufacturers should fear Agile. I do, however, see some stipulations that need to be made. Here is a rather dated article on the subject (from 2007) : Agile Development in an FDA Regulated Setting. The author of the blog post concludes: It… Continue reading Is the Software Medical Device World Ready for Agile?

Valuable Unit Tests in a Software Medical Device, Part 9

I thought I was done, but here is yet another good reason to incorporate complex function automated testing: Validation of multiple Java runtime environments. Fabrizio Giudici proposes this as a solution for testing with Java 7, but we can always take it a step further, verifying multiple OS environments as well. Of course, this requires… Continue reading Valuable Unit Tests in a Software Medical Device, Part 9

The V-Model Approach: Just a Fancy Waterfall

I read this article at MEDS Magazine about Strkyer’s software development process. Stryker is a large and very successful company, so I was a bit surprised to learn that they have had success with the V-Model in software development. In my humble opinion, the V-Model is simply a glorified waterfall model approach, and we’ve seen… Continue reading The V-Model Approach: Just a Fancy Waterfall

Brain Rules: Why a Daily Standup Should Be in the Afternoon

I’m reading a book right now called Brain Rules. In it, the author discusses how after a number of hours sitting in front of a computer our brains literally start to call it quits for the day. This happens long before our typical 8 hour workday is up. If your job involves something that requires… Continue reading Brain Rules: Why a Daily Standup Should Be in the Afternoon

Continuous Integration on Software Medical Device Projects, Part 9

Using a CI Environment to Replace the Traditional DHF Naturally, an important part of continuous integration is having a CI build that can be checked regularly for continued build success. This is probably what is commonly though of as the key benefit, but there is much more to be gained. Any continuous integration environment that… Continue reading Continuous Integration on Software Medical Device Projects, Part 9

Continuous Integration on Software Medical Device Projects, Part 8

Build Script Creation Ant should automatically determine which files will be affected by the next build. Programmers should not have to figure this out manually. While we will use an IDE for most development, we must not rely on the build scripts that are generated by the IDE. There are a few reasons for this:… Continue reading Continuous Integration on Software Medical Device Projects, Part 8

Continuous Integration on Software Medical Device Projects, Part 7

Build Labelling A build is labeled with a predetermined version number (e.g., “2.0”) and with a Subversion changeset number. The beauty of this is that we have a build that is associated with a particular changeset and, by association, an entire set of project documents and sources (as long as we put everything in a… Continue reading Continuous Integration on Software Medical Device Projects, Part 7

Continuous Integration on Software Medical Device Projects, Part 6

Build Scheduling Jenkins-CI allows teams to set up a project so that a build is performed whenever a change is committed through a version control system. The “Poll Version Control System” option is selected to do this. From there, the team must set up a schedule so that Jenkins will know how often to poll… Continue reading Continuous Integration on Software Medical Device Projects, Part 6

Continuous Integration on Software Medical Device Projects, Part 5

What I am proposing in this article is something that I, personally, have never done. In my positions as a software lead, architect, developer and software quality analyst, I have worked only with a DHF as a particular folder with specific subsets of documentation within. This approach has always resulted in a documentation nightmare. I’ve… Continue reading Continuous Integration on Software Medical Device Projects, Part 5

Continuous Integration on Software Medical Device Projects, Part 4

21 CFR Part 820 – DHF Requirements 820.30(e) Design History File (DHF) means a compilation of records which describes the design history of a finished device. –Device Advice: Regulation and Guidance, Software Validation Guidelines, http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance Medical device software is audited and controlled by standards defined by FDA, specifically 21 CFR parts 11 and 820. Many… Continue reading Continuous Integration on Software Medical Device Projects, Part 4

Continuous Integration on Software Medical Device Projects, Part 3

Jenkins CI For the purposes of this article, the focus will be on one specific continuous integration build tool, Jenkins CI. This is one of the more popular (open source) tools available. Jenkins CI (the continuation of a product formerly called Hudson) allows continuous integration builds in the following ways: 1.    It integrates with popular… Continue reading Continuous Integration on Software Medical Device Projects, Part 3

Continuous Integration on Software Medical Device Projects, Part 2

Continuous Integration refers to both the continuous compiling and building of a project tree and the continuous testing, releasing and quality control. This means that throughout the project, at every stage, the development team will have a build available with at least partial documentation and testing included. The CI Build is used to perform certain… Continue reading Continuous Integration on Software Medical Device Projects, Part 2

Continuous Integration on Software Medical Device Projects, Part 1

I’m currently working on an article about continuous integration on software medical device projects, and how the CI environment can actually be used to solve many of the design and tracing requirements that must be dealt with on such a project. I’m not finished, but I wanted to post a little bit here. Here goes.… Continue reading Continuous Integration on Software Medical Device Projects, Part 1

What is a Software Medical Device?

When writing software for medical purposes, that software may or may not be subject to FDA scrutiny. We may or may not be required to submit for a 510k. What does this mean? How do we know? Its all a little confusing. As I considered a series of articles on the subject, I wanted to… Continue reading What is a Software Medical Device?

Valuable Unit Tests in a Software Medical Device, Part 8

The Traceability Matrix A critical factor in making unit tests usable in an auditable manner is incorporating them into the traceability matrix. As with any test, requirements, design elements and hazards must be traced to one another through use of the traceability matrix. The project team must document traceability of requirements through specification and testing… Continue reading Valuable Unit Tests in a Software Medical Device, Part 8

Valuable Unit Tests in a Software Medical Device, Part 7

Regulated Environment Needs Per 21 CFR Part 820 (Subpart C—Design Controls): (f) Design verification. Each manufacturer shall establish and maintain procedures for verifying the device design. Design verification shall confirm that the design output meets the design input requirements. The results of the design verification, including identification of the design, method(s), the date, and the… Continue reading Valuable Unit Tests in a Software Medical Device, Part 7

Valuable Unit Tests in a Software Medical Device, Part 6

Many of the benefits of functional unit testing listed above are gained only when unit tests are written alongside design and development (test-driven methodologies aside). It is imperative that the development team develop and observe test results while design and activities take place. This is of benefit to the quality assurance team as well, as… Continue reading Valuable Unit Tests in a Software Medical Device, Part 6

Valuable Unit Tests in a Software Medical Device, Part 5

What is the value of unit testing? Immediate Feedback within Continuous Integration: Developer Confidence Too often we view testing as an activity that occurs only at specific times during software development. At worst, software testing takes place upon completion of development (which is when it is learned that development is nowhere near complete). In other… Continue reading Valuable Unit Tests in a Software Medical Device, Part 5

Valuable Unit Tests in a Software Medical Device, Part 4

“The hardware system, software program, and general quality assurance system controls discussed below are essential in the automated manufacture of medical devices. The systematic validation of software and associated equipment will assure compliance with the QS regulation; and reduce confusion, increase employee morale, reduce costs, and improve quality. Further, proper validation will smooth the integration… Continue reading Valuable Unit Tests in a Software Medical Device, Part 4

Valuable Unit Tests in a Software Medical Device, Part 3

Automating Functional Tests Using Unit Test Framework Most software projects, especially in any kind of Agile environment, undergo frequent changes and refactoring. If the traditional single-flow waterfall model worked, recorded test scripts such as those noted previously would probable work just fine as well, albeit with little benefit. But it should be well known by… Continue reading Valuable Unit Tests in a Software Medical Device, Part 3