Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Automatisering Besturingssysteem

Softwareontwikkeling automatiseren en innovatie versnellen

Traditionele softwareontwikkeling verloopt traag. Het is alleen voor een heroverweging.

Bijna drie jaar geleden bedacht Satya Nadella van Microsoft dat "elk bedrijf een softwarebedrijf zal zijn". Vandaag ligt de wereldwijde softwaremarkt van $ 500 miljard op schema om te verdubbelen tot $ 1 biljoen in 2030.

J.P. Morgan heeft naar verluidt 40.000 software-engineers (meer dan Alphabet) in hun meest recente aanvraag. Elk groot bedrijf racet om ingenieurs in te huren om hun concurrentie te overtreffen. Het grote probleem is dat traditionele softwareontwikkeling traag, gefragmenteerd en verspillend is.

Elke week besteedt de gemiddelde software-engineer bijvoorbeeld 4 uur aan het wachten op het voltooien van tests, 3,5 uur aan het wachten op builds en 3 uur aan omgevingsbeheer - meer dan een kwart van hun werkweek creëert eigenlijk niets van waarde. Als je bedenkt dat ingenieurs vaak de best betaalde mensen in organisaties zijn, is dat duidelijk een groot probleem. Er zijn echter dingen aan het veranderen.

Een van de toonaangevende ontwikkelingsplatforms, CircleCI, deed de gok dat AI en automatisering de sleutel zouden zijn om software-innovatie te versnellen en technici vrij te maken om belangrijk werk te doen. In het afgelopen jaar introduceerde het bedrijf een aantal verbeteringen op het gebied van automatisering en machine learning die de wachttijd voor technici met 50% verminderden. Het is een van de vele redenen waarom meer dan 300.000 ontwikkelaars, waaronder die van Facebook, Spotify, GoPro, InstaCart en vele anderen, zich tot CircleCI hebben gewend om sneller te werken.

Aan het hoofd van het bedrijf staat Jim Rose - een zesvoudig oprichter met eerdere investeringen van Google Ventures, Foundation Capital en Marc Andreessen. Sinds Rose iets meer dan vier jaar geleden bij CircleCI kwam werken, heeft Rose de omzet met meer dan 450% verhoogd en is het bedrijf uitgegroeid tot een werkelijk opwindende entiteit.

Geïnteresseerd in meer informatie over het automatiseren van softwareontwikkeling en het versnellen van innovatie, sprak Information Age met Rose over dit onderwerp.

Wat is de huidige staat van de softwaremarkt?

Op dit moment zijn er nog veel bedrijven en individuen die verschillende processen handmatig uitvoeren. Als je nadenkt over het proces van digitale transformatie, gaat het er echt om te proberen een softwareontwikkelingsteam op te bouwen.

De ene probeert software uit on-premise datacenters te halen en ze in cloud-native omgevingen te krijgen, waar u onmiddellijk toegang kunt krijgen tot computers.

De tweede is dat software traditioneel of in veel gevallen wordt gezien als een richtlijn of een aanvulling op de primaire bedrijfsvoering. Nu heb je allerlei soorten bedrijven, van banken tot autofabrikanten tot retailers, die allemaal beseffen dat software de kern is van wat ze doen. En dus moeten ze erachter komen wat ze bezitten en moeten ze hun activa consolideren en standaard integreren.

Zodra bedrijven deze onmiddellijke toegang tot computers hebben en ze structuren hebben waar ontwikkelaars in kunnen werken, zit er tegenwoordig meestal een mengelmoes van verschillende platforms en processen tussen.

In de meeste gevallen heb je erg lange release-processen voor watervalsoftware met veel handmatige stappen en vervolgens veel handmatige scripts. In sommige gevallen voor meer geavanceerde winkels hebben ze misschien de eerste generatie automatiseringsoplossingen, maar naarmate teams versnellen, beginnen die te breken.

En dat is nu waar we aan beginnen en bedrijven helpen navigeren. Terwijl hun softwareteams versnellen, bouwen ze meer software en proberen ze het sneller te doen; om zowel in te spelen op kansen in de markt als op mogelijke negatieve veranderingen. Bedrijven moeten gewoon helemaal opnieuw nadenken over hoe al die stukjes in elkaar zitten.

Is deze snelheid waarnaar u verwijst de belangrijkste hindernis bij softwareontwikkeling?

Bedrijven en ontwikkelingsteams proberen te versnellen terwijl de markt versnelt. Ze proberen erachter te komen hoe ze snel kunnen werken, zodat ze kansen kunnen benutten.

De enige manier om daar te komen, is door alle stappen echt te automatiseren waarvoor geen menselijke tussenkomst nodig is, want in plaats van dit in minuten, uren en dagen te doen, kunt u het in seconden doen.

Aangezien teams steeds sneller worden en omdat software uw belangrijkste etalage is voor uw klant, moet u ervoor zorgen dat de kwaliteitsniveaus hoog zijn; je moet ervoor zorgen dat het niet crasht of dat je bijvoorbeeld geen beveiligingsproblemen hebt.

Dus als je aan agile denkt, gaat het erom te proberen wendbaarder te worden, zowel vanuit kwaliteitsperspectief als vanuit snelheidsperspectief.

In de VS draait het allemaal om snelheid, maar door sneller te gaan, kleinere brokken te integreren en software op een meer consistente basis uit te brengen, wordt je software inherent beter. Al die angsten om te moeten inzetten verdwijnen als je het vijf, acht, 15 keer per week doet, en in sommige gevallen hebben we klanten die het 100 keer per dag doen.

Implementatie wordt een non-issue.

Wat de kwaliteit betreft, was een van de grote problemen bij softwareontwikkeling in het verleden dat als je maar één keer per kwartaal uitbrengt, het heel moeilijk is om ervoor te zorgen dat alle wijzigingen die je in je applicatie aanbrengt, echt samenwerken. Vaak zie je bedrijven een oerknal-release doen en daarna, nadat ze een oerknal-release hebben gedaan, besteden ze de volgende 60, 90 dagen aan het repareren van alle dingen die achteruitgingen en kapot gingen. Bij deze methode vertraagt ​​je softwarecyclus, maar ook de kwaliteit van de applicatie zelf lijdt.

Vanuit een agile perspectief is dat wat mensen proberen aan te pakken.

Hoe kan een organisatie veranderen om teams voor softwareontwikkeling te huisvesten, ondersteunen en stimuleren?

Er zijn een paar verschillende manieren.

Een daarvan is dat ontwikkelaars moeilijk in te huren zijn en daarom wilt u er zeker van zijn dat alle tijd die u vanuit een ontwikkelingsperspectief besteedt, wordt besteed aan het uitbouwen van uw speciale software, wat dat ook mag zijn; als je een bank bent, een geweldige bankapplicatie bouwt, als je een e-commerce-app bent, een echt geweldige e-commerce-app bouwt. Ik denk dat een van de grote gebieden waarin mensen te weinig hebben geïnvesteerd, is dat softwareontwikkelaars in het verleden dingen hebben gebouwd. Dat is wat ze doen, ze bouwen software. Er is dus te weinig geïnvesteerd in de ontwikkelingscyclus vanuit het perspectief van een app van derden.

Er zijn gewoon dingen zoals bijvoorbeeld het testen van automatisering en een infrastructuur voor continue levering die teams niet alleen zouden moeten bouwen. Je kunt het veel beter overnemen van iemand anders die gespecialiseerd is in dat gebied, zodat je je kunt concentreren op datgene waar je goed in bent. Het zou hetzelfde zijn als iemand vertellen dat ze een koffiezetapparaat moeten bouwen en ze een stel koperen leidingen, wat soldeer en wat kleppen geven. Dat zou je nooit doen. Maar historisch gezien is ontwikkeling zo behandeld. Het plaatsen van de juiste tools en platforms is dus echt van cruciaal belang, helemaal op en neer in de stack, van het datacenter tot aan de planningstools.

Ik denk dat het tweede deel is dat in een traditioneel watervalmodel, softwareontwikkeling meestal de rol van catcher speelt, dus de applicatie wordt veel eerder in het proces gedefinieerd en tegen de tijd dat het ontwikkelteam het krijgt, zijn er een aantal beslissingen genomen die al dan niet echt werken en al dan niet haalbaar of gemakkelijk te doen zijn.

Er is een idee van verschuiving links, dat probeert de ontwikkeling steeds verder in de planningscyclus te duwen, zodat de zorgen of de behoeften van het ontwikkelingsteam in aanmerking worden genomen, zowel bij de constructie van de applicatie als bij de levering ervan. En als je er dan vanuit een operationeel perspectief over nadenkt, betekent dit dat je ook veel eerder in de levenscyclus echt moet nadenken over hoe een applicatie wordt bediend. Als je bijvoorbeeld cloud-native apps probeert te bouwen, moet je ze op een heel specifieke manier ontwerpen, wat betekent dat je die beslissing moet nemen en veel eerder deel moet uitmaken van dat proces.

Wanneer teams meer software-first, agile processen adopteren, krijg je een triangulatie van zorgen. Je hebt de mensen en de bedrijfseigenaren en de productmanagers die weten waarom je iets bouwt. Je hebt de technische architecten en de softwareontwikkelaars die echt praten over hoe je het bouwt. En dan heb je de operators, degenen die verantwoordelijk zijn voor de uitvoering ervan, die aan het einde van dat hele proces uitzoeken wat je daadwerkelijk uitvoert. Iedereen moet dus betrokken worden. En dat kan voor sommige bedrijven een moeilijke overgang zijn.

Hoe kunnen AI en automatisering software-innovatie stimuleren en verbeteren?

Met automatisering kun je taken automatiseren die zowel vooraf bepaald zijn als zelflerend. Een voorbeeld hiervan kan zijn dat elke keer dat u een stukje software probeert vrij te geven, u een test van een derde partij moet uitvoeren tegen een ander betalingssysteem van een derde partij. In het verleden moest je met die taken een QA-team inhuren dat in wezen transacties zou proberen te verwerken en alles handmatig zou doen, wat ongelooflijk traag is. Het is ook ongelooflijk beladen met alleen fouten en complicaties.

Dit zijn perfecte voorbeelden van taken die volledig moeten worden geautomatiseerd in uw testsuite - al deze dingen waarvan u weet dat u ze keer op keer gaat doen, u moet die taken automatiseren om ze deterministisch en voorspelbaar te maken. En dan uiteindelijk snel.

Er zijn mogelijkheden om die repetitieve taken uit te voeren die elke minuut die een ontwikkelaar besteedt aan het keer op keer doen van die dingen een verspilling van tijd en, eerlijk gezegd, een verspilling van geld is.

Dus als je kijkt naar AI en software die wordt gebouwd, in plaats van na te denken over het pushen van voorspellende deterministische software, is wat je doet een model pushen. En het model is een zandbak van vooropgezette ideeën over hoe iets zou kunnen werken en terwijl mensen er doorheen gaan, en terwijl tests worden uitgevoerd, verandert en evolueert het model terwijl het meer leert over hoe dingen werken of niet werken. Dat legt een ongelooflijke druk op het testsysteem.

Als je nadenkt over enkele van de AI-misstappen wanneer je situaties hebt waarin er onbewuste vooringenomenheid in de AI is ingebouwd, waar de AI een soort van amok maakt en mensen begint te blokkeren voor bepaalde applicaties, of dingen afsluit, zijn dat allemaal situaties waarin vanuit een testperspectief dat uitdagend is.

Het wordt steeds ingewikkelder, maar het wordt ook veel, veel sneller en responsiever. Je zult dus alleen maar de opname van AI en machine learning in softwareontwikkeling zien toenemen. Maar nu moet u over alle noodzakelijke kaders beschikken om op al die wijzigingen te kunnen testen.


Automatisering Besturingssysteem

  1. Wat is een autoserviceschrijver en wat doen ze?
  2. Ontwerp en ontwikkeling van een goedkope inspectierobot
  3. SABIC en Nottingham Spirk werken samen om innovatieontwikkeling te versnellen
  4. Slimme gebouwautomatisering en de toekomst van vastgoedontwikkeling in steden
  5. Seegrid richt onderzoeks- en ontwikkelingsgroep 'Blue Labs' op
  6. AMRC stimuleert innovatie in technologie en circulaire economie
  7. ABB Robotics:Technology Innovation and Robotics R&D
  8. Bright Machines lanceert Microfactory hardware en software
  9. Voorraadbeheersoftware:kenmerken en voordelen
  10. Wat is een Maintenance Director en wat doen ze?
  11. Ontwerpen in 3D:Buisbuig- en ontwerpsoftware