{"action":"opened","issue":{"url":"https://api.github.com/repos/mediasuitenz/tech-stack/issues/27","repository_url":"https://api.github.com/repos/mediasuitenz/tech-stack","labels_url":"https://api.github.com/repos/mediasuitenz/tech-stack/issues/27/labels{/name}","comments_url":"https://api.github.com/repos/mediasuitenz/tech-stack/issues/27/comments","events_url":"https://api.github.com/repos/mediasuitenz/tech-stack/issues/27/events","html_url":"https://github.com/mediasuitenz/tech-stack/issues/27","id":175442004,"number":27,"title":"RFC: Where can we make big gains in productivity / speed of development","user":{"login":"JonForest","id":4940106,"avatar_url":"https://avatars.githubusercontent.com/u/4940106?v=3","gravatar_id":"","url":"https://api.github.com/users/JonForest","html_url":"https://github.com/JonForest","followers_url":"https://api.github.com/users/JonForest/followers","following_url":"https://api.github.com/users/JonForest/following{/other_user}","gists_url":"https://api.github.com/users/JonForest/gists{/gist_id}","starred_url":"https://api.github.com/users/JonForest/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JonForest/subscriptions","organizations_url":"https://api.github.com/users/JonForest/orgs","repos_url":"https://api.github.com/users/JonForest/repos","events_url":"https://api.github.com/users/JonForest/events{/privacy}","received_events_url":"https://api.github.com/users/JonForest/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2016-09-07T08:25:58Z","updated_at":"2016-09-07T08:25:58Z","closed_at":null,"body":"It feels like a bit of an elephant in the room at the moment that our projects are currently taking longer/costing more than our old PHP stack, if I understand correctly.  \r\n\r\nI have no experience of that time, so it's difficult for me to identify what things have changed such that things take longer.  However it's pretty gutting that a tech stack I really enjoy isn't delivering for us.\r\n\r\nI've been going through old PRs of mine from My Worksites and Leapfrog trying to find common items that felt like they took too long, and if there are any lessons that can be learned from this.    Here's what I've got:\r\n\r\n- A lot of time was 'wasted' trying to get the relationships on Ember models updated after returning json-api from a custom end-point.  Seeing lots of things like this: https://github.com/mediasuitenz/tmp-for-all/blob/75d6393989f75a96e523b598c10ad7e4c5291aed/client/app/models/worksite-draft.js#L24 and https://github.com/mediasuitenz/tmp-for-all/blob/develop/client/app/models/tmp-submission.js#L92\r\nBoth are ugly hacks, and there feels like there must be a better way - I just don't know what it is.\r\n*Solution feels like a combination of using fewer custom end-points and cataloging a list of known hacks that make it work*\r\n\r\n- Acceptance tests, and tests in general, took me quite a long time to write and get working.  Right now, even though I'm super happy we're using tests, it feels like a cumulative loss on our time frame (time spent writing > (time saved in fixing bugs + increased refactor speed)).  \r\nGenerally API tests seem easier.\r\n*Learning lunch on techniques for writing Ember unit, integration and acceptance tests.  Page object overview?*\r\n\r\n- I feel like we're still learning lots of things about our stack.  Small things like how you need to manually increment PostgreSQL's auto-increment when manually inserting PK fields, how the PostgreSQL connector fails to handle undefined properly and therefore doesn't send that argument into your query, etc.  \r\n*If we come across something frustrating and fix it, maybe post to the #Ember or #Loopback channels on Slack with a 'here's what I found, and here's what I did'?*\r\n\r\n- Permissions and Roles, in both Ember and Loopback, have taken up a lot of time for something that must be common in many applications.  We have different implementations across Leapfrog and My Worksites, unsure about others.  It doesn't feel to me like we've yet got a re-usable, Media Suite canonical implementation of this yet.\r\n*What blockers do we have to creating a reference implementation we can re-use, and extend?*\r\n\r\n(Note: not all things that take a long time took too long; some things are just hard or require some serious thought.  Hopefully though, there are things to learn that we can apply to future projects)\r\nIf we can collectively identify types of activity that feel like they really hurting us from a productivity point of view, then maybe we can generate some reference implementations, best practices or alternatives that allows us move more quickly.\r\n\r\n"}}
{"actor":{"display_login":"JonForest"}}