Why should I learn some basics about software development?

13
Why should I learn some basics about so4ware development? Pu#ng some context around recommenda1ons to become more familiar with the basics of so8ware development Sco$ Lowe h$p://blog.sco$lowe.org

Transcript of Why should I learn some basics about software development?

Page 1: Why should I learn some basics about software development?

Why$should$I$learn$some$basicsabout$so4ware$development?Pu#ng&some&context&around&recommenda1ons&to&become&more&familiar&with&the&basics&of&so8ware&development

Sco$%Loweh$p://blog.sco$lowe.org

Page 2: Why should I learn some basics about software development?

Who$am$I?• Author,)blogger,)speaker,)geek

• Been)in)the)industry)for)over)20)years

• Well<known)in)the)virtualiza?on)and)networking)communi?es

• Currently)focusing)on)open)source,)cloud)compu?ng,)and)helping)IT)folks)evolve)with)the)industry

Page 3: Why should I learn some basics about software development?

A"bit"of"background• In$late$2014$I$spoke$at$a$series$of$VMUGs$on$the$topic$"Closing$the$Cloud$Skills$Gap"

• In$these$sessions$I$provided$recommendaBons$on$skills$you$should$learn$(some$technical,$some$not)

• One$of$the$recommendaBons$I$made$was$to$learn$the$basics$of$soJware$development

• In$this$presentaBon,$I'd$like$to$build$on$those$recommendaBons$and$provide$some$of$the$reasons$behind$them

Page 4: Why should I learn some basics about software development?

Here's&the&slide&I&used...

Page 5: Why should I learn some basics about software development?

Why$make$this$recommenda1on?• I#think#there#are#some#tools#and#prac3ces#common#to#developers#that#all#IT#prac33oners#could#(and#should)#adopt

• A#couple#that#offer#a#lot#of#benefit#to#all#IT#pros#are:

• Version#control

• Automa3on

• Let's#take#a#look#at#each#of#these#areas

Page 6: Why should I learn some basics about software development?

Version(control• There&are&lots&of&places&where&non1developers&should&be&using&version&control&(but&usually&aren't)

• Documenta>on&(you&do&write&documenta>on,&don't&you?)

• Configura>on&files&for&servers

• Version&control&offers&a&number&of&benefits:

• Ability&to&roll&back&to&a&previous&version&if&something&breaks

• More&documenta>on&via&commit&messages/commit&history

Page 7: Why should I learn some basics about software development?

Version(control!(con&nued)• If$version$control$is$so$helpful,$why$aren't$more$IT$pros$using$it?

• I$believe$it$is$a$lack%of%familiarity$with$version$control$tools

• This$is$why$I$recommend$learning$how$to$use$a$tool$like$Git$(h@p://gitCscm.com)

• Git$is$one$of$the$most$widely$used$version$control$tools

• Basic$concepts$are$common$to$almost$all$version$control$tools

Page 8: Why should I learn some basics about software development?

Learning(Git• It's&really&not&as&hard&as&you&might&think&(honestly!)

• Here&are&a&few&resources&to&get&you&started:

• A&Non?Programmer's&IntroducAon&to&Git:&hCp://blog.scoClowe.org/2015/01/14/non?programmer?git?intro/

• Using&Git&with&GitHub:&hCp://blog.scoClowe.org/2015/01/26/using?git?with?github/

• Using&the&Fork?and?Branch&Git&Workflow:&hCp://blog.scoClowe.org/2015/01/27/using?fork?branch?git?

Page 9: Why should I learn some basics about software development?

Automa'on• Automa(on*comes*in*many*different*forms:

• Scrip(ng

• Configura(on*management

• Tools*and*services

• All*of*these*forms*can*offer*benefits*to*IT*professionals*in*any*discipline

• Let's*look*at*a*couple*examples

Page 10: Why should I learn some basics about software development?

Configura)on*management• Popularized-by-tools-like-Puppet,-Chef,-Salt,-or-Ansible

• Allows-IT-pros-to-"define-one-?me,-apply-many-?mes"

• Eliminates-repe??ve-configura?on-steps-and-maintains-configura?on-over-?me-to-reduce-configura?on-driE

• Ties-in-nicely-with-version-control-(store-your-manifests/recipes/playbooks-in-a-repository)

• Manifests/recipes/playbooks-are-themselves-a-form-of-documenta?on

Page 11: Why should I learn some basics about software development?

Tools%and%servicesThere%are%a%number%of%other%tools%that%are%worth%inves3ga3ng:

• Vagrant((h+p://www.vagrantup.com)(7(Easily(share(VM(environments(with(colleagues(for(tes@ng,(training,(or(reproducing(issues((@es(in(nicely(with(version(control,(too!)

• IRC(7(Simple(and(popular(with(developers,(IRC(makes(a(great(complement(to(IM(and(e7mail

Page 12: Why should I learn some basics about software development?

In#summary• I#think#that#leveraging#tools#and#prac4ces#from#the#development#community#can#be#beneficial#to#all#IT#prac44oners

• Version#control#systems#offer#a#number#of#benefits

• Leveraging#automa4on#in#any#of#its#forms#is#a#force#mul4plier

• The#possibili4es#are#limited#only#by#your#willingness#to#learn#and#apply#new#concepts!

Page 13: Why should I learn some basics about software development?

Thank&youYour%feedback%is%always%welcomed!

Blog:&h(p://blog.sco(lowe.orgTwi(er:&@sco(_loweGitHub:&h(ps://github.com/lowesco(Life:&Colossians&3:17

Please&check&out&some&of&my&other&presenta3ons&on&Speaker&Deck&(h7p://speakerdeck.com/slowe)&or&Slideshare&(h7p://slideshare.net/lowesco7).