Project Description

CTMS allows clinicians and research assistants to conduct clinical trials and track patients data. Custom forms are built by the study coordinator (Empower) using a form editor. Subjects are then provided with login information and proceed to fill the forms.

Thus CTMS is a product and a service at the same time. Some features are designed for all studies and some features are done on a consulting basis and are available for specific studies only.

More about CTMS features

Role

  1. Develop new features + maintain the existing code
  2. Manage the full software cycle (analyze specs, assign tickets, manage developers, review code, test, deploy, deal with client feedback etc.)

Tasks & Examples

  1. Optimized the processing and rendering by integrating memcache into Propel (ORM) reducing the time users had to wait
  2. Implemented several algorithms to calculate a score based on a subject’s input
  3. Migrated the code from SVN to Git and built the continuous integration system
  4. Implemented & maintained features such as electronic signatures, auditing, approvals, reviews, notifications etc.

Quantified Contribution

Software development began around 2008 and I joined the project in 2009.

Year Author Commits (%) Next top 5 Number of authors
2012Hassen Ben Tanfous422 (52.75% of 800)Hassen Tanfous, Jon Robinson, Travis Gerhardt, Jason Hanley, JasonHanley8
2011Hassen Ben Tanfous386 (72.28% of 534)Jon Robinson, Jason Hanley, Travis Gerhardt, Ahmed Memom, Dave Lahn6
2010Hassen Ben Tanfous352 (63.54% of 554)Jason Hanley, Travis Gerhardt3
2009Jason Hanley278 (34.71% of 801)Travis Gerhardt, Hassen Ben Tanfous, Jon Robinson, ssids5
2008Jason Hanley476 (52.25% of 911)Travis Gerhardt, Jon Robinson, Brian Hanley, ssids5
Author Commits (%) Insertions (+) Deletions (-) First commit Last commit Age Active days # by commits
Hassen Ben Tanfous1379 (38.83%)256556576822009-05-252012-09-191213 days, 3:58:444761

Screenshots

Subject Dashboard

subject dashboard

Form instance a subject has to fill

form instance

Screenshots are posted with permission. Any screenshots related to the form builder have been removed as requested.

Likes

Meaning

The project helped people get real work done. Even though I did not use the software in my personal life, it matched my philosophy and often felt like I was creating value and helping users.

It was a change from previous contracts (different domain/field)

Fast paced

We had weekly milestones and delivered something every week. We then accelerated things even further by switching to daily deployments with Git

Clients.

Clients were objective, educated and experts in their respective fields. They had their users best interest in mind and collaborated very closely with developers.

Dislikes

Product development

Empower owned the product. Syllogistic was hired as a consulting company to develop the product. Due to their lack of technical expertise, they often asked for our input when writing specs. However, they owned the final decision.

In my opinion, the nature of our partnership limited the product. Necessary tasks to improve the product had to be budgeted and explained to the client.

Financial aspect

It was difficult to distinguish between the features clients requested for the good of the product in general vs the features they requested to satisfy specific clients.

We often ended up modifying functionality to satisfy client X and in the process break working functionality. Those changes rarely made any sense and were only visible to specific clients.

I understand the financial realities of doing business but this created a needless amount of bugs (by patching up a clean design)

Lack of automated testing

We had basic tests but due to the large code base and changing specifications, it was difficult to write automated tests

Things I learned

Full scale

Collaborating with clients, designing the features, implementing, testing, verifying, deploying, logging and tracking and improving features.

Through this project, I’ve covered every aspect of developing software

Management

Assigning tickets, doing code reviews, mentoring junior developers + new hires and delivering on every milestone.



blog comments powered by Disqus

Published

17 November 2012

Category

notes

Tags