qwinix engineering process

16
Qwinix Engineering Process

Upload: qwinix-technologies

Post on 17-Aug-2015

17 views

Category:

Technology


0 download

TRANSCRIPT

Qwinix Engineering Process

What is Culture?

Edgar Schein (MIT)

A pattern of shared basic assumptions that a group has learned as it solved its problems of external adaptation and internal integration, that has worked well enough to be considered valid and therefore, to be taught to new members as the correct way to perceive, think, and feel in relation to those problems.

Team Attributes

• Learn from failure, Innovation at every level

• Iterative Development, agile first-test driven

• Continuous Improvement, Shared responsibility

• Transparency, Servant Leadership, TRUST

Engineering Culture?• Stuff gets DONE!

• It gets done WELL

• People are HAPPY

• Leaders provide direction and get out of the WAY

• Success is CELEBRATED

• Failure is used as a way to LEARN

Continuous Improvement• Lunch n’ Learn sessions

• Engineering Blog

• Study groups

• Bring in industry leaders for talks periodically

• Work on things you are not comfortable with - Pair

High Performance Engineering Team

• Short time from getting an idea to going live

• Faster Development

• Higher Quality

• Self organizing teams

• Cross functional teams

How to Become Faster?

• Stop doing non productive things

• Manual Regression testing

• Bug hunting and debugging

• Implementing more than required

• out-of-date documentation

• Piling up bug reports

• Rediscovering of knowledge

• Working on stuff that is not in the value system

How to increase Quality?

• Test More Thoroughly

• Test more often

• Test Cheaper

• Automate End-to-end

Shorten Feedback Cycle

• Automate Testing – from weeks to minutes

• Close collaboration between engineering and QA

• Build Dashboard to get the data back from the key systems

Don't track bug, fix 'em

• Real bugs are always top priority

• Fix before working on anything on the backlog

• Decide if an issue is a real bug or an unwanted

feature

• Prioritize unwanted features to the backlog

• Purge your backlog

Automate the build

• Compile code and installers

• Run tests on every commit

• Deploy using push button deployments

• have a visible dashboard to show status

• Notify about Broken builds

• Top-top priority

• "Stop the line”

• How can we prevent this type of break in the future?

Agile Testing• Automate Unit Testing – Jasmine, JUnit, Karma etc

• Automate Acceptance Testing – Selenium, Cucumber

• QA team is part of the team from the beginning

• Test Driven Development

• Write tests before writing the code

• Improves communication between QA and

Engineering

• Speeds up development

Continuous Integration & Continuous Deployment

• Each commit to the version control system

• Triggers an automated build

• Triggers and automated deployment

• Expect developers to commit several times a day

Collaboration Between QA & Engineering

• QA can test the code as soon as possible• Before it is written

TDD CollaborationWrite automated acceptance tests

• Just after it is writtenCD make is availableExploratory testsScenarios the developers did not think aboutMake this part of the definition of done

• Don't keep a large backlog of untested storiesEngineering can help with testing as well

Code Reviews & Commits

• All code gets reviewed twice before it gets merged into Master

• Use Code Climate to track test coverage and GPA

• Commit every hour to the working branch

• Follow GIT flow

• Change GIT strategy to suit the business needs & Support them

• Yes, You can!

• Others have done it!

• It requires • ENTHUSIASM• SUPPORT• Willingness to INVEST• TRANSPERANCY • DISCIPLINE

Can We Change?