2007-07-29

Tuotepino valtion hallinnollisten sovellusten kehitykseen

Valtion hallinnollisen sovelluskehityksen tarpeet ovat melko spesifisiä.

Esittelemällä oikeat vaihtoehdot kehityksen asiakkaille hallitaan onnistumisen riskejä. (Käyttöliittymää suunniteltaessa asiakkaalle esitellään vakioidut JSF:n komponentit, kuinka ne toimivat, ja mietitään yhdessä miten ongelma voidaan esittää niillä termeillä.)

Itse kirjoitetun koodin ja konfiguraation minimoinnilla hallitaan ylläpidon riskejä. (Valmiiksi rakennetut ja muiden ylläpitämät kirjastot ja frameworkit kuten Spring ja Seam keksivät pyörän kerran, ja emme keksi pyörää uudestaan.)

Käyttämällä stabiileja ja vähäbugisia taustatuotteita hallitaan operoinnin riskejä. (Standardeista on eri laatuisia implementaatioita.)

Tukeutumalla standardituotteisiin ja avoimeen lähdekoodiin hallitaan valmistajariippuvuuden riskejä. (Java SE, Java EE ja JSF-standardeista on useita realistisesti mahdollisia implementaatioita.)

Vakioimalla käytetyt järjestelmät ja ongelmanratkaisutavat hallitaan kustannuksia ja henkilöstöriskejä. (Useimmat hallinnolliset sovellukset sopivat hyvin ilmaistavaksi MVC/JSF/Seam termeillä, eikä usean pinon käytöstä ole mitään olennaisia hyötyjä.)

Määrittelemällä kohtuulliset muutosikkunat hallitaan liiallisen muutoksen ja kalkkeutumisen riskejä. (2006-2008, 2009-2011 ja 2012-2014. Seuraavaa kolmen vuoden ikkunaa voidaan jo suunnitella, ja suuremmat muutokset budjetoida.)

2006-2008 pino:

Asiakaspäässä XHTML, CSS ja Ajax, Firefox 2.0:ssa ja IE 6-7:ssä.
Arkkitehtuureissa ja kirjastoissa MVC, JSF/Seam, Spring, JPA/Hibernate, JavaEE.
Tietokannoissa Oracle 10g, Postgresql 8.
Sovelluspalvelimissa ja virtuaalikoneissa GlassFish 2, J2SE 1.6, OpenJDK 1.7.
Debuggaustyökaluissa JMX, YourKit ja DTrace.
Käyttöjärjestelmissä CentOS5/RHEL5, Solaris 10u4.
Raudassa AMD64 bladet, 2x2core tai 1x4core, 16GB.

2007-07-23

lolcats







Palveluluettelo?

Heimo kysyy "Miten siis voisimme kertoa palveluistamme yksinkertaisesti, koherentisti ja ymmärrettävästi?"



Aloittaisin muokkaamalla kysymykseen muotoon "Miten kertoa palveluistamme?" Vähemmän sanoja.

Käännetään ajatus päälaelleen. "Mitä asiakasryhmiä tämä palvelu kiinnostaa?"

Käytetään organisaation sisäisen toimijan edut. "Hei, sinä IT:tä tunteva tutkija, kävisitkö meidän kanssamme läpi koko palvelulistan, ja tekisit avainasioista tutkijoita hyödyttävän wikisivun tovereidesi kanssa?"

Paketoidaan asioita kokonaisuuksiksi. "Mitä paketteja IT-markkinoilla on jo olemassa? Mitä maksaa se, että teemme olennaisesti erilaisia tuotteita, ja seuraako siitä todellisia hyötyjä?"

Vähennetään byrokratiaa. "Olisiko maitoa helpompi myydä aina litra kerrallaan, kuin kaataa tonkkaan ja punnita?"

Tehdään oikeita asioita. "Mitä hyötyä tämän asian itse tekemisestä on, ja kelpaisiko asiakkaille huonompilaatuinen ostettu palvelu?"

2007-07-15

How to: confront your assumptions honestly

I can't tell you how long it will take to write this piece of software.

If you were to ask my collagues for a list of the top 10 people they know who can tell you how long it'll take to write a piece of software, my name would be somewhere at the top of that list, and I can't tell you how long it'll take to write this piece of software. I really can't.

I can estimate, but you won't like the fact that my estimates could be 1000% off. And those are good estimates, most of the time pretty accurate!

If you give me the full authority and resources to direct the development, I'll sure as heck produce something that will fulfill the expectations I heard you communicate to me at our first discussion, but it sure as heck won't fulfill your revised expectations! To do that, we'll have to play the whole game all over again.

I've come to think that we can never win by playing that game. I've come to think that we shouldn't play that game at all. That we should change the rules.

I don't yet know what the new rules should look like. We should probably take in moderation from promise-based management, Scrum, and develop more credible vocabulary to describe software quality.

What do you think?

2007-07-14

Recompiling the FreeType package in Fedora to render reasonable fonts

sudo nano -w /usr/src/redhat/SPECS/freetype.spec
sudo rpmbuild -ba --define="dist .fonts" /usr/src/redhat/SPECS/freetype.spec
sudo rpm -Fvh /usr/src/redhat/RPMS/i386/freetype*fonts*rpm

2007-07-10

Jon Stewart demolishes Crossfire

The classic clip from a few years back.

2007-07-05

Max Weber: Politics as a vocation

"Politics is a strong and slow boring of hard boards. It takes both passion and perspective. Certainly all historical experience confirms the truth--that man would not have attained the possible unless time and again he had reached out for the impossible. But to do that a man must be a leader, and not only a leader but a hero as well, in a very sober sense of the word. And even those who are neither leaders nor heroes must arm themselves with that steadfastness of heart which can brave even the crumbling of all hopes. This is necessary right now, or else men will not be able to attain even that which is possible today. Only he has the calling for politics who is sure that he shall not crumble when the world from his point of view is too stupid or too base for what he wants to offer. Only he who in the face of all this can say 'In spite of all!' has the calling for politics."

Max Weber, Politik als Beruf, 1921

2007-07-04

Sicko

The Big Kahuna

Larry Mann: There are people in this world, Bob, who look very official while they are doing what they are doing. And do you know why?
Bob Walker: Why?
Larry Mann: Because they don't know what they are doing. Because if you know what you are doing, then you don't have to look like you know what you are doing, because it comes naturally.
...
Phil Cooper: I'm saying you've already done plenty of things to regret, you just don't know what they are. It's when you discover them, when you see the folly in something you've done, and you wish that you had it do over, but you know you can't, because it's too late. So you pick that thing up, and carry it with you to remind you that life goes on, the world will spin without you, you really don't matter in the end. Then you will gain character, because honesty will reach out from inside and tattoo itself across your face.
...
Phil Cooper: It doesn't matter whether you're selling Jesus or Buddha or civil rights or 'How to Make Money in Real Estate With No Money Down.' That doesn't make you a human being; it makes you a marketing rep. If you want to talk to somebody honestly, as a human being, ask him about his kids. Find out what his dreams are - just to find out, for no other reason. Because as soon as you lay your hands on a conversation to steer it, it's not a conversation anymore; it's a pitch. And you're not a human being; you're a marketing rep.

Java EE 6 on its way

Rod Johnson highlights some of the more prominent features in the newly published, revised Java EE 6 proposal.

I would be happy, I would be extatic, if only Java EE 6 would standardize the high availability characteristics of application servers and applications. We'll see in 2008.