Coder Social home page Coder Social logo

techmaturity / techmaturity Goto Github PK

View Code? Open in Web Editor NEW
97.0 30.0 51.0 537 KB

Tech Maturity measures and tracks the maturity of software over time

License: Apache License 2.0

Ruby 29.70% JavaScript 2.01% CSS 6.28% HTML 61.52% Shell 0.05% Dockerfile 0.44%

techmaturity's Introduction

Techmaturity (was Ticketmaster Tech maturity)

Build Status

What is Tech maturity?

Tech Maturity helps us identify growth opportunities to eliminate waste, set clearly defined targets, and measure progress all while we work toward the ultimate goal of continuous delivery.

The model charts a clear path that can be completed in stages and allows flexibility for progressing through five key dimensions of software development: Code, Build & Test, Release, Operate, and Optimize.

For Ticketmaster’s move to the public cloud, the model served as a “cloud readiness" gauge that quantifies how close a product is to being ready for migration. This was achieved by establishing targets for a subset of capabilities that we believe define the minimum requirements for any product or service in the public cloud. This gives teams who own legacy products a clear goal to work toward that they can easily track. It also allows the company to operate in a decentralized, self-service way so that teams can run with their migrations without delay.

You can’t tell if you’re winning without a scoreboard, so we created a portal to gather, aggregate, and display patterns from the data assembled and made it visible to everyone in the company. Strategically, Tech Maturity provides a key indicator of our performance so that we can continually make value-driven improvements.

The best thing about our model is that it does not prescribe solutions. Rather, it offers standards with an aim to give teams a clear path towards efficient product development at scale. The model can be easily tailored to meet your specific needs. Ticketmaster has technology ranging from the 1970’s to today, and we have been able to successfully apply this model to products ranging from VAX code to JavaScript libraries. It’s a great vehicle for sharing and rallying around a common vision

We’re excited to see the response from the community, and are thrilled to share this tool with others.

Watch the Video

Learn more about Tech Maturity


Try it out!

  1. Get Docker
  2. run docker-compose up
  3. open up http://localhost:8080 in your web browser 🚀

Test The Program With Bundle

  1. Run 'gem install bundle' to install bundle
  2. Run 'bundle exec rails test' to run tests

Contribution

  1. Fork the project
  2. Commit code changes to the forked repo
  3. Squash the commit
  4. Send a pull request and one of our team members will jump in

techmaturity's People

Contributors

bbensen avatar bigkraig avatar davidanugo avatar ejesse avatar iceycake avatar jiwilkin avatar maci0 avatar makentenza avatar putnamp avatar saberprivateer avatar scaffeinate avatar seakitteh avatar vigneshjb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

techmaturity's Issues

tag filtering fails when using a PostgreSQL data store

If you set up an instance of tech maturity with a psql data store, add an asset, and assign it a tag (e.g. 'category' with a value of 'foo'), then type 'foo' in the filter field, nothing will happen, and you'll see errors in the console of your app, including the following:

techmaturity_1  | F, [2020-06-08T17:27:50.493406 #6] FATAL -- : [1e176f72-75ed-44c1-9c00-e8b04225d319]
techmaturity_1  | F, [2020-06-08T17:27:50.493472 #6] FATAL -- : [1e176f72-75ed-44c1-9c00-e8b04225d319] ActionView::Template::Error (PG::GroupingError: ERROR:  column "tags.id" must appear in the GROUP BY clause or be used in an aggregate function
techmaturity_1  | LINE 1: ...e" AS t0_r6, "products"."is_assessable" AS t0_r7, "tags"."id...
techmaturity_1  |                                                              ^
techmaturity_1  | : SELECT "products"."id" AS t0_r0, "products"."name" AS t0_r1, "products"."product_type" AS t0_r2, "products"."created_at" AS t0_r3, "products"."updated_at" AS t0_r4, "products"."is_assessed" AS t0_r5, "products"."is_active" AS t0_r6, "products"."is_assessable" AS t0_r7, "tags"."id" AS t1_r0, "tags"."key" AS t1_r1, "tags"."value" AS t1_r2, "tags"."product_id" AS t1_r3, "tags"."created_at" AS t1_r4, "tags"."updated_at" AS t1_r5, "scores"."id" AS t2_r0, "scores"."a1" AS t2_r1, "scores"."a2" AS t2_r2, "scores"."a3" AS t2_r3, "scores"."a4" AS t2_r4, "scores"."a5" AS t2_r5, "scores"."a6" AS t2_r6, "scores"."a7" AS t2_r7, "scores"."a8" AS t2_r8, "scores"."a9" AS t2_r9, "scores"."a10" AS t2_r10, "scores"."a11" AS t2_r11, "scores"."a12" AS t2_r12, "scores"."b1" AS t2_r13, "scores"."b2" AS t2_r14, "scores"."b3" AS t2_r15, "scores"."b4" AS t2_r16, "scores"."b5" AS t2_r17, "scores"."b6" AS t2_r18, "scores"."b7" AS t2_r19, "scores"."b8" AS t2_r20, "scores"."c1" AS t2_r21, "scores"."c2" AS t2_r22, "scores"."c3" AS t2_r23, "scores"."c4" AS t2_r24, "scores"."c5" AS t2_r25, "scores"."c6" AS t2_r26, "scores"."c7" AS t2_r27, "scores"."c8" AS t2_r28, "scores"."c9" AS t2_r29, "scores"."c10" AS t2_r30, "scores"."d1" AS t2_r31, "scores"."d2" AS t2_r32, "scores"."d3" AS t2_r33, "scores"."d4" AS t2_r34, "scores"."d5" AS t2_r35, "scores"."d6" AS t2_r36, "scores"."d7" AS t2_r37, "scores"."d8" AS t2_r38, "scores"."e1" AS t2_r39, "scores"."e2" AS t2_r40, "scores"."e3" AS t2_r41, "scores"."e4" AS t2_r42, "scores"."a" AS t2_r43, "scores"."b" AS t2_r44, "scores"."c" AS t2_r45, "scores"."d" AS t2_r46, "scores"."e" AS t2_r47, "scores"."total" AS t2_r48, "scores"."product_id" AS t2_r49, "scores"."created_at" AS t2_r50, "scores"."updated_at" AS t2_r51, "scores"."latest" AS t2_r52, "scores"."comment" AS t2_r53 FROM "products" INNER JOIN "tags" ON "tags"."product_id" = "products"."id" LEFT OUTER JOIN "scores" ON "scores"."product_id" = "products"."id" WHERE "products"."is_active" = $1 AND (lower(tags.value) LIKE '%bar%') AND "products"."id" = 2 GROUP BY products.id):

This can be fixed by simply adding scores.id and tags.id to the GROUP BY clause at the end of the query, and this change does not seem to impact functionality in SQLite. Without this the tag filtering literally does not work, and for tracking more than a handful of components that can make for a prohibitively tedious user experience.

Fairly simple fix can be found in PR #43 but I'm not super experienced with Ruby/Rails so I'm not sure if there are better ways to fix the issue.

Data persistence

I'm trying to run the container, but not able to persist the data.
Tried invoking like so,

docker run -v "$PWD:/techmaturity/db/" -p 3000:3000 ticketmaster/techmaturity:1.0.0

Deleting Assets?

Hi!

I think this is absolutely awesome so far! One quick issue, there doesn't appear to be any way of deleting assets? I'd like to remove the example asset and start from scratch, but I don't think it's possible yet? Love the work you're doing!

Ken

Support for mysql type databases

This would be much easier to deploy and maintain if it could talk to a mysql type database. (especially the docker instance.)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.