50
How engineering practices help business Andrei Rebrov

How engineering practices help business

Embed Size (px)

Citation preview

How engineering practices help business

Andrei Rebrov

What is it about

Who is the target audience?

If you are…

• dev (qa, ops) or you want to implement something

• manager who tired of “new methodologies”• coach/consultant who doesn’t know how to

implement certain practice

…then you are welcome!

Story time

Story# 1. Selenium• Hey, Selenium is awesome!

Let’s write autotests using it!• But we have almost finished

system on TestComplete.• TestComplete - $#$&#!• …

Don`t!

• Never say that current progress is nothing

• Originality of technology is not a pros

• “It is used by XYZ” means nothing, even if XYZ is Google

How it may work

• Attract manual testers – they are your customers

• Show your progress and working demo as often as possible – this is the best way to show how simple and good is it

• Make demo positive – bring tea, coffee and cookies

• Lear how to teach people to use your framework

How to sell to business owners• Tests make development cheaper,

because we find bugs earlier• We may not scale QA team for a

long time • We can make more tasks during

iteration• We can release faster and more

often

New techonologies are safe and give us advantage

Story# 2. TDD• Guys, you need TDD, it rocks!• But we have to rewrite whole out project, so we can test it!!!• So what, you’ll have tests in the end!•…

Don`t!• Using TDD just for tests and TDD itself is stupid• Using TDD for everyone’s wealth is more stupid • TDD is used by these guys from XYZ… Well, I hope you got it

How it works

• Just show video example• Do it by yourself in everyday job• Coding Dojo

How to sell to business ownersGuerilla TDD:•Use it for 3-4 weeks•Show to your business improved results (metrics from SLA, bugs, wtf/sec)•Make an agreeement

TDD helps to write code effectively

Story# 3. Refactoring• Let’s refactor this module!•Why we need this? It works!• But it has millions of violations inside!•…

Don`t!• When you talk about refactoring,

prepare yourself for resistance, because it’s offence• Rewrite code because this is

what book saying to you - that’s stupid• Be patient, it may take months to

agree on refactoring

How it works• Visualize code problems –

SonarQube is good on it, managers are usually scared by numbers• Explain what is technical debt and

how it affects project’s future• Prepare refactoring plan with clear

explanation why and when we should refactor something

How to sell to business owners• Show them this chart

• Tell them what happens to debitors =)

Refactoring helps not to be afraid of debts

Story #4. Automation

• Mike, how about test automation?•Why do we need it?•Well, it’s going to be fun and we can improve our CV!•…

Don`t!• Automation just for automation is

just like TDD for TDD and we already know how bad is it

• Don’t tell to your team that automation is free to implement

• Remember, there are no free tools, at least they cost you your time

• Try first, recommend after

How it works

• Show working example• You should know all pros

and cons• Show different ways how

this tool could be used – more you can offer is better

How to sell to business owners• Calculate automation ROI• Compare automation support cost to manual work cost• Expose how expensive might be the problem made by manual work

Good robots will save us

Story #5. Feature Toggling and Branching•We need to stop feature branching!•Why?• That’s what Martin Fowler said!•…

Don`t!• Not everyone knows who is Mr. Fowler• Read Fowler first• Don’t use tech terms like cherry pick,

feature branch and so on too much, it’s hard to understand• Saying «feature toggle is like if-else

statement, but not exactly» is not the best way to introduce it

How it works

• We save time on branch merging – there are no more branches• Everyone have updated code

and see whole picture• It’s much easier to configure

Continuous Integration

How to sell to business owners•Now we can always turn on/off functionality on production if we need it

Occama blade

Story# 6. Continuous Integration• We need Continuous

Integration, so everyone will know that code is still working!• Why don’t you test it on you

computed?• Why do I need it?• …

Don`t!• Never say that CI fill find your

bugs, it sounds like you are a bad developer

• CI is not just about running unit tests, if you manager has tech background, don’t say that

How it works• CI helps us implement regression testing, so we free our QA•We can automate our processes

How to sell to business owners•See automation block• It’s a way to Continuous Delivery

CI cares about build stability

Story# 7. DevOps• Let’s configure Nagios, Chef,

Graphite and Logstash and become an awesome DevOps!• How it will help us?• Well, it is just about being

modern.• …

Don`t!

• Don’t sell tools, they alone don’t solve your problem• Building DevOps culture takes

time, don’t make any week estimates• Don’t be offensive to

sysadmins

How it works

• Visualization of your process is the easiest way to show that something is wrong• Do some firefighting – quick

win gives you some points• As always, demo works

How to sell to business owners• Delivery becomes simple and

manageable• We can delivery in hours not in

days• There is no more lost of

sensible data• We can become feature factory

DevOps lets us release first on the market

Twitter@andrebrov

[email protected]

Skyperebrov.andrey

Q&A