how to become a better software company technically
TRANSCRIPT
HOW TO BECOME A BETTERSOFTWARE COMPANY
TECHNICALLYBY: GESHAN MANANDHAR
GESHAN MANANDHARQUALITY AND MAINTENANCE LEAD, NAMSHI.COM
CO-FOUNDER YIPL
@GESHAN
GESHAN.COM.NP
DO YOU WANT YIPL TO BECOME A BETTERSOFTWARE COMPANY, TECHNICALLY?
DO YOU WANT TO BE A BETTER SOFTWAREENGINEER/DEVELOPER/PROGRAMMER?
DO YOU WANT TO BE A BETTER DESIGNER/FRONTENDENGINEER?
DO YOU WANT TO BE A BETTER SYS ADMIN/SYSTEMENGINEER/DEVOPS ENGINEER?
"YOU CANNOT IMPROVE WHAT YOU CANNOTMEASURE" - W. EDWARDS DEMING
IMPROVING CODE AND DECREASING TECHNICALDEBT IS ALWAYS A GOOD APPROACH.
WILL TO IMPROVE IS AN ATTITUDE NOT A ONE TIMEJOB, REQUIRES LOTS OF PRACTICE AND PERSISTENCE.
THINK OF 3 THINGS THAT YOU THINK WILL IMPROVEYIPL TECHNICALLY
TELL ME THE NO. 1 IN YOU LIST
PROCESS MANAGEMENT
ISSUE FLOWKanban basedSupports scrumBest of both
GITFLOWCheck VCS best practicesSimplifiedFull
BOTH ARE INTERRELATED.
SOFTWARE QUALITYQA TOOLS
Follow by PHP-FIG - use , andPSR standard CS FixerSecurity CheckerCodacy.com
AUTOMATED TESTING with check for referencePHPUnit Mockery Jumph
Possibility of using Behat
CONTINUOUS INTEGRATION ( )CI or GitLab CI Shippable.com
SOFTWARE QUALITYLOGGING AND MONITORING
Log activities with or GrayLog LogstashMonitor real-time with NewRelicCOLLABORATION AND
DOCUMENTATIONCode ReviewPair ProgrammingDocument Important Things
AUTOMATIONVIRTUALIZED ENVIRONMENT
- Dev and ProductionDocker - generally devVagrant
AUTOMATED DEPLOYMENTCapistrano
GENERAL AUTOMATIONWhen you push to GitLab, a notification is triggered in abot room in HipchatWhen you push to GitLab, it automatilly pushes toBitbucket and runs the buildHipchat is notified about deployment start and progress
FAST FORWARD TO 2015 Q1, WE HAVE CODE QUALITYCHECKS IN GIT PRE COMMIT HOOK
WE HAVE SOFTWARE ENGINEERS DOING PAIRPROGRAMMING
WE HAVE CODE REVIEWS ON MERGE REQUESTS
WE HAVE AUTOMATED CODE REVIEWS
WE HAVE A CI SERVICE TELLING OUR TEST BUILDPASSED OR FAILED AS WE HAVE TESTS
WE HAVE LOG MONITORING WITH GRAYLOG2 INPLACE
WE HAVE LIVE APP MONITORING WITH NEWRELIC
RECAPWe need processes to improve developer productivityIt takes some time for following processes to become ahabit.Reading and implementing best practices is one of thebest practice.It's not only about the tools/technologies. It's also abouthow you use them.I am suggesting ideas that could help improve YIPLtechnically.
DO YOU WANT TO SEE MR. COO CONFUSED DUE TOCHAOS?
OR YOU WANT TO SEE HIM HAPPY DUE TO ORDER?
IT'S ABOUT YOU AND THE GROWTH YOU CHOOSE
QUESTIONS???
CREDITShttp://science.raphael.poss.name/programming-levels/prog-skill-matrix.png/http://www.openlawlab.com/2014/07/16/designers-mindsets-sketchnote-design-process/http://www.linuxuser.co.uk/wp-content/uploads/2014/08/EvolutionSysadmin_Infographic.pnghttps://www.flickr.com/photos/9844387@N06/3466813580https://www.flickr.com/photos/emad17/8526107084/sizes/lhttp://ronaldbradford.com/images/blog/newrelic-summary1.pnghttp://www.mgt-commerce.com/blog/wp-content/uploads/2012/08/magento_graylog_screen_1.pnghttp://www.slideshare.net/ZeroTurnaround/developer-productivityreport2013graphics-26271695
SOME PROGRAMMING MANTRAS TO REMEMBER.