söndag, september 13, 2009

A day in the life

Jag lovade ju att göra en Julia och berätta om en dag på jobbet. Så, here goes.

Klockan ringer 06.05. Jag kryper in i duschen medan Martin gör frukost, som vi sen äter och jag plockar undan. En av de största fördelarna med att jobba som utvecklare är att man kan se ut precis hur som helst och således klär jag mig snabbt i huvtröja och jeans. Klädkod schmädkod. Sen går jag ut i trapphuset, låser dörren, trycker på hissknappen, låser upp dörren, plockar matlådan ur kylen, låser dörren igen, åker ner med hissen och spatserar bort till Skanstulls t-banestation. Jag och femtusen andra tunnelbanependelare tråcklar oss genom systemet med paraplyer, böcker, tidningar och träningsväskor och kliver av i Kista. Efter tio minuters promenad är jag på kontoret. Jag jobbar som konsult och har för närvarande uppdrag på ett stort svenskt telekomföretag med tre korvar i loggan. Dock sitter jag inhouse på vårt eget huvudkontor och har mest mailkontakt med kund. Jag jobbar med en plattform, dvs ett program som man kan köra andra program ovanpå, ungefär som ett operativsystem men inte riktigt. Plattformen är hårdvarunära och har realtidskrav på sig. Om programmet ska utföra en uppgift måste detta med andra ord gå snabbt. (Windows är tex inte så bra på det där.)

När jag blippat mitt passerkort brukar jag gå och hämta en kaffe (cafe creme är det enda som är ok i apparaten) och ctr+alt+deleta för att logga in. Jag stänger aldrig av min burk, blir bara utlåst från alla miljöer då och får ett helvete att logga in igen. Först kollar jag mailen. Jag har alltid fått minst ett, det om hur många Trouble Reports som är aktuella. Jag kollar om någon är assignad mig, och i så fall börjar jag jobba med den. En TR skrivs (oftast) av kunden, när denne hittat en bugg i mjukvaran som måste åtgärdas. Ofta har jag en TR som ligger och oftast är den i princip obegriplig innan man har fått chansen att prata lite med den som skrivit den. För att vara vag: många ingenjörer kan skriva, många kan det inte.

Nu blir det svårare att förklara. Hur jobbar man tex med en TR? Hur rättar man fel i mjukvara, dvs i kod? Jo, ungefär så här. I labbet finns ett antal kretskort, sk "targets". Dessa är riktiga kort som i bruk sitter i noder i radionätet (eller IP-nätet som det helt är på väg att bli) och som vi har till låns från vår kund. De är sjukt dyra och man får inte gå in i labbet utan ESD-tofflor (Electrostatic Discharge). Dessa adderar fö till snyggheten på jobbet. Genom att koppla speciella debuggers till dem (nej, inte tofflorna, korten) kan jag ladda upp plattformen till deras minne, så att processorn, en ppc405x, kan exekvera plattformskoden. Hepp! Detta gör jag genom att ftp:a min källkod packad i ett lämpligt format till en server på kortet, och sen telnetta mig in till kortet och säga åt kortet hur det ska packa upp koden så att den blir körbar.


Nu kan jag provköra min kod och se om de ändringar jag har gjort lett till några förbättringar. Eftersom jag har tillgång till en massa fina testapplikationer laddar jag upp dem också, och sen tutar jag i snöret. En applikation testar tex att min plattform kan sätta upp en länk och kommunicera med ett gäng DSP's (Digital Signal Processor). När jag har kört igenom testet får jag en PASS/FAIL-utskrift direkt i mitt shell (jag brukar köra tcsh eller bash).



Ibland sitter man en hel dag med FAIL och brukar känna sig som en urvattnad trasa fram emot tre. Efter ett test... LUNCH! (asgarv, löpträning, kaffemaskinssvordomar, solpaus, det brukar hända lite olika saker på lunchen)
...kan jag läsa en logg som sparats och se vad som eventuellt gick fel. I loggen står det tex att nåt skumt hände på rad 1057 i fil blablabla.c och då kan jag öppna den filen (jag använder emacs som editor, andra knasbollar kör VI) och kontrollera vad det är vi egentligen gör på det stället i koden. Den plattformen som jag jobbar med innehåller ca 40.000 rader kod, så det finns en del ställen där saker och ting kan gå åt det berömda. Om jag tycker att nåt verkar fiskigt ändrar jag om lite i koden, bygger om, laddar upp plattformen på target igen, testkör och läser i loggen. Gick det bra? Well, oftast inte genast. Så håller man på så där.



Om jag inte har en TR att jobba med sitter jag troligtvis och kodar på nån lämplig förbättring. Det kan vara nåt som måste skrivas om för att passa ny hårdvara, eller att vi märkt att vissa delar av plattformen genererar suspekta fel som är svåranalyserade. Eftersom utvecklingen av den här mjukvaran har pågått i snart tio år och utförts av trettielva olika personer tar man ibland över filer som ser ut som fan, rent ut sagt. Folk kan ha haft ett hatiskt förhållande till preprocessorn i kompilatorn tex, och då tenderar saker och ting verkligen att fucka upp.

Ja, sen håller man på så. Ibland mailar någon och har en fråga, och ibland flänger projektledaren förbi och säger att det är kris. Då rycker man ut (eh, dvs attackundersöker vad som verkar vara fel) och försöker tala lugnande med berörda parter. Ibland vill kunden ha en ny version av mjukvaran och då får man göra en leverans. Man bygger, laddar upp och testkör den nya versionen och sen sätter man en label, typ en digital stämpel, på all kod som ska tillhöra den nya versionen och sen säger man till sin kund att version hundrautton finns att hämta där och där i voben (filsystemet). Sen upptäcker kunden att deras applikationer inte fick den respons de hade trott när de kördes ovanpå den nya versionen, de skriver en TR på det, och sen börjar det om igen.

När klockan är ungefär halv sex packar jag ihop mig och ser till att jag har sparat källkod, dokument etc. Sen trängs jag hela vägen hem på oh joy! blåa linjen, och tja, sen var en vanlig arbetsdag till ända. Plus minus. På kvällen roar jag mig med att koda matlab eller bygga örhängen av motstånd och kondensatorer. Eller så lirar jag badminton, springer i spåret eller dricker öl. Ganska ofta läser jag bok i tio minuter innan jag somnar.

Frågor på det? Det är en rätt trevlig tillvaro kan jag tillägga.

5 kommentarer:

Anonymous e sa...

jag vill också jobba på riktigt! nån som talar om för mig vad de vill ha gjort och som blir glad när det är gjort - dvs inte student:)

9/14/2009 10:33 fm  
Blogger Christina sa...

det ÄR rätt najs =). kom hit!

9/14/2009 2:11 em  
Anonymous e sa...

fel land;) eftersom jag sjunger såna lovord för mitt nuvarande menar jag.

men jag har en liten liten dröm som aldrig riktigt slocknat...

9/14/2009 5:21 em  
Blogger egoistiska egon sa...

vad KUL att läsa. vill också skriva en dag. ska se om jag får arslet ur.

9/17/2009 8:32 em  
Blogger Chris sa...

egon, tack! haha, hoppas det var lite spännande iaf, det finns inte så mycket spänning att fånga upp om man liksom inte sitter framför koden själv =)

9/18/2009 3:29 em  

Skicka en kommentar

Prenumerera på Kommentarer till inlägget [Atom]

<< Startsida