17
Scaling up and not bottoming out a story of Process Improvement Presented at CoastNerds 16-May-2012, Robert Dyball

Scaling up and not bottoming out

  • Upload
    akamu

  • View
    24

  • Download
    0

Embed Size (px)

DESCRIPTION

Scaling up and not bottoming out. a story of Process Improvement Presented at CoastNerds 16-May-2012, Robert Dyball. The Product. Preactor – scheduling software Used in over 3500 companies in 67 countries - PowerPoint PPT Presentation

Citation preview

Page 1: Scaling up and not bottoming out

Scaling up and not bottoming out

a story of Process Improvement

Presented at CoastNerds 16-May-2012, Robert Dyball

Page 2: Scaling up and not bottoming out

The ProductPreactor – scheduling softwareUsed in over 3500 companies in 67 countriesCan model machines, packing lines, tanks,

assembly lines for make to order, make to stock, engineer to order, in continuous and repetitive processes.

Used in a wide range of small, medium and large enterprises from small fabricating shops, to chemical plants, pharmaceutical, food, and beverage manufacturers to mining, shipping and airport scheduling.

Page 3: Scaling up and not bottoming out

Preactor

A brief demonstration of the Preactor product

Page 4: Scaling up and not bottoming out

The PleasureNiche marketWell respected brand, few worthy

competitorsScheduling tools built into most MRP and

ERP systems typically primitive compared to Preactor

Businesses using the scheduling tools become more profitable; retain market share and local competitiveness even in hard times

Preactor API allows additional functions to be added, providing opportunities for integration and enhanced reporting as well “shop floor” interfaces.

Page 5: Scaling up and not bottoming out

The PainPreactor can work stand alone, but most clients

require integration to existing ERP/MRP systems.Integration to ERP, MRP systems typically using CSVSome industries have very complex rules, e.g., food

and pharmaceuticals have to perform expensive cleaning operations between different products in addition scheduled cleans.

Some schedules have constraints in 6 or 7 dimensionsMany clients do not know their own scheduling

“rules”Many clients discover requirements on the fly, during

the project (so what is new!)

Page 6: Scaling up and not bottoming out

The PossibilitiesLimit projects to easy wins, to “low hanging

fruit”

or

Implement process improvement

but what and how?

Page 7: Scaling up and not bottoming out

Agile DevelopmentIf you aren’t using some form of agile

development, see what you can use from Scrum, Kanban or XP

Projects become more predictable and repeatable

Project costs will be loweredTeams will grow in capabilityTeams become more responsive to changeScope is managedCustomers benefit, being delivered a product

that is closer to their needs

Page 8: Scaling up and not bottoming out

TFD: Test First Development TDD:Test Driven DevelopmentProven to create better solution designs, with

less bad coupling = more maintainable codeProvides safeguards when refactoring10% more effort now (with TFD/TDD)

or 50% more effort later (without TDD)A suite of tests built up during the life of the

project provide valuable feedback when performance testing

Tests may replace most traditional documentation, and provide “living” documentation beside the code

Page 9: Scaling up and not bottoming out

ATDD and BDDAcceptance Test Driven Development (ATDD)

or Behaviour Driven Development (BDD) will sift out the poorly spec’d out user stories, allowing less scope shift and faster development

BDD tests can be automated providing fast response to the team and to users, faster turnaround of work

BDD tests create a common language that everyone can “speak” – users, developers, testers, managers

BDD tests provide living project documentation

BDD can be applied to smaller or larger units of work

Page 10: Scaling up and not bottoming out

Source Control/Version ControlMust be fast and reliableMust be simple to useHandy if it is also inexpensiveWe have adopted GIT – using local

repositories as well as a central repositoryGit has offline capabilities and works well

with peer-to-peer push/pull

eg., desktop local repo <-> USB stick repo <-> laptop

Page 11: Scaling up and not bottoming out

GITCan your source control do this?

If not, get Git.

Page 12: Scaling up and not bottoming out

The Friction:If done manually:

- manual testing gets boring and quality drops off- manual builds can become too much work- source control: varying quality code, 5pm code oops’s- synchronising code libraries: everyone for themselves

Developers cannot easily see how to change if they are too busy fighting fires

Sometimes too close to issues, cannot see that change is needed, or that change is even possible

Managers push for the quick result, usually less tests

Page 13: Scaling up and not bottoming out

The Fix: Continuous IntegrationAutomate everything you can:

- testing, builds, and deployment where possibleMany ways to do this from DIY, open source, to

commercial packages.Any improvement will helpFind the easiest or cheapest, and start thereWe have adopted JetBrains TeamCity (free

version)TeamCity has 3 models: free, paid, enterpriseSupports many different build, test and deploy

configurations for Java, and .Net

Page 14: Scaling up and not bottoming out

TeamCity integrationIntegration with just about everything:

CVS, Subversion, ClearCase, GIT, Perforce, TFS, Mercurial, SourceSafe, StarTeam …

Ant, Maven 2, IntelliJ IDEA, Nant, MSBuild …Email, RSS, Jabber, IDE, Windows Tray … Eclipse, IntelliJ IDEA, Visual Studio … Junit, testNG, EMMA, Cobertura … Rake, NuGet, Powershell, Command Line,

FxCop, Gradle …

Page 15: Scaling up and not bottoming out

Broken code doesn’t make it into source control any more

Page 16: Scaling up and not bottoming out

Pre-tested commits

Page 17: Scaling up and not bottoming out

Were Next?Open source our work in the Preactor API to gain

community involvement in growing the core codeCurrently publishing on Codeplex using GIT

(will be public within the next 30 days)see http://pom.codeplex.com

Currently using TeamCity’s internal NuGet server internally(handy for internal-only library builds)

Soon to be added– public NuGet- link Codeplex + in house GIT + TeamCity + NuGet