Friday, April 25, 2008

Het leerplan van een IT Architect (IASA)

Het IASA heeft een heel leuk grafisch overzicht van hoe het leerplan van een IT Architect er globaal uitziet:


De belangrijkste conclusies die je als IT Architect "Wannabe" op basis van dit model zou kunnen trekken zijn:
  • Vertel overal waar mogelijk dat je een IT Architect wilt worden; Zorg dus dat je communiceert maar ook publiceert. Zowel formleel als informeel (denk aan een blog!);
  • Zorg dat je sponsors krijgt voor jouw ambities bijvoorkeur in het management en bij mensen die reeds IT Architect zijn;
  • Zorg dat je een certificeringstraject start;

Succes!

(bron: http://www.iasahome.org/web/home/educationprogram)





Full Skills Package For The IT architect (IASA)

De "International Association of Software Architects" (IASA) is bezig met het inventariseren van de kwaliteiten en kennis die een IT Architect zou moeten hebben.

Met deze lijst kun je vrij snel afvinken op welke onderdelen je sterk bent en aan welke onderdelen je eventueel nog zou kunnen werken: cursussen moet volgen en ervaring moet opdoen. Ook kan het uistekend dienen voor het vormgeven van je eigen (toekomstige) functie want veel bedrijven hebben de functie nog niet opgenomen in hun functiehuis is mijn ervaring.

Business-Technology Strategy
· Business and Technology Strategy Rationalization
· Business Capability Mapping
· Business Fundamentals
· Business Process Engineering and Business Process Management (BPE/BPM)
· Business Valuation
· Contracts
· Industry Analysis
· Intellectual Property
· Investment Prioritization and Planning
· Requirements and Constraints Analysis
· Technology Capability Projections and Planning

Design Skills
· Architectural Description
· Architecture Styles
· Architecture Viewpoint and Views
· Context
· Design Diagramming, Notation and Deliverables
· Design Methodologies
· Design Methodology Evaluation and Review Practices
· Domain-Specific Modeling Languages
· Optimization Techniques During Design
· Patterns and Best Practices
· Prototypes
· Reuse
· Synthesis and Problem Solving
· Traceability Throughout The Life Cycle

Human Dynamics
· Conflict Management
· Crisis Management
· Customer Relations
· Leadership
· Mentorship
· Negotiation Skills
· Peer Interaction
· Politics
· Presentation Skills
· Selling Skills
· Situational Awareness
· Team Building and Management

Infrastructure Architecture
· Access and Identity Management
· Capacity Planning
· Common Application Services
· Device Management and Provisioning
· Messaging Standards
· Network Design
· Support Processes and Tools
· System Tuning

IT Environment
· Capability Development, Training and Management
· Capability Mix Identification
· Compliance: Audits, Certification, Licensing and Regulation
· Cost Estimation and Tracking
· Dependency Identification and Management
· Engineering
· Governance
· Infrastructure Landscape
· Knowledge Management
· Maintenance and Support
· Operational Management
· Operations
· Organizational Dynamics
· Organizational Structure
· Outsourcing
· Resource Balancing and Management
· Stakeholder Definition
· Vendor Management
· Virus and Patch Management

Quality Attributes
· Implementing Quality Attributes
· Manageability, Maintainability and Supportability
· Monitoring Quality Attributes
· Performance, Extensibility, Flexibility
· Quality Attribute Auditing
· Reliability, Availability, Scalability
· Security
· Usability, Localization, Accessibility, Personalization/Customizability

Solution Architecture
· Application Layering
· Asset Management Systems
· Business Intelligence
· Change Control
· Customer Information and Relationship Management (CIM/CRM)
· Development and Build Environments
· End-to-End (E2E) Test Design and Implementation
· Implementing the User Experience
· Information Architecture
· Integrated Development Environments (IDEs) and Modeling Tools
· Localization
· Mainframe Development and Design
· Messaging Technology
· Mobile Platforms and Frameworks
· Personalization
· Programming Languages
· Proof of Concept Design
· Service Network
· Solution Architecture Design Methodologies
· Solution Architecture Design Patterns
· Solution Architecture Development Methodologies
· Solution Architecture Specialities
· Solution Architecture Tools
· Technology Frameworks
· Transactions
· User Experience
· Workflow

(Bron: http://www.iasahome.org/web/home/taxonomy)

Thursday, April 24, 2008

Microsoft Workflow en ASP.Net

Wanneer je de workflowruntime direct vanuit asp.net wilt gebruiken dan zijn er een aantal zaken die je goed in de gaten moet houden:

  • Tenzij je de "ManualWorkflowSchedulerService" gebruikt wordt er voor iedere "PageRequest" en voor iedere "Workflow"-instantie een aparte "thread" gemaakt wat dus leidt tot een verdubbeling;
  • Maak een singleton-wrapper om de Workflow-runtime heen die je wilt gebruiken zodat je maximaal een instantie per webapplicatie kan bestaan.
  • Alle workflowinstanties blijven in het geheugen van je webserver tenzij je de "SqlWorkflowPersistenceService" gebruikt.

Succes!

P.S. Om deze "SqlWorkflowPersistenceService" te gebruiken heb je een SqlServer-database nodig met de juiste objecten. Deze kun je aanmaken met de scripts "SqlPersistenceService_Logic.sql" en "SqlPersistenceService_Schema.sql" die te vinden zijn op de locatie: "C:\windows\Microsoft.NET\Framework\v3.0\Windows Workflow Foundation\SQL\EN".

Event "<eventname>" on interface type "interfacename" for instance id "<guid>" cannot be delivered (StateWorkflow)

Exception of type 'System.Workflow.Activities.EventDeliveryFailedException' occurred in System.Workflow.Activities.dll.Additional information: Event "<eventname>" on interface type "interfacename" for instance id "<guid>" cannot be delivered.

Het is niet echt voor de hand liggend hoe je deze foutmelding moet oplossen maar toch is de oplossing eenvoudig:
  1. Kijk naar de InnerException. Meer dan logisch maar wordt te vaak vergeten;
  2. Zorg dat jouw afgeleide EventArgs klasse gemarkeerd is als "Serializable";
  3. Zorg dat alle klassen die gebruikt worden in jouw EventArgs-klasse "Serializable" zijn;
  4. Zet in de constructor van jouw EventArgs-klasse de eigenschap "WaitForIdle" op "true";
  5. Werkt dit allemaal niet dat zit er een fout in je Statemachine Workflowontwerp, bestudeer je workflow extra goed in de "desginer"; Om achter het probleem te komen kun je. Eventueel kun je de instantie van de "StateMachineWorkflowInstance" klasse besturderen kijk dan met name naar de ""CurrentState" en de "PossibleStateTransitions"-eigenschap.

Succes!

Monday, April 21, 2008

Succesvol software ontwikkelen (Agile)

Slechts sporadisch kom je een boek tegen dat zo praktisch en zo realistisch beschrijft hoe je succesvol software zou kunnen ontwikkelen dat je niet kan begrijpen dat dit niet veel eerder bestond.

Dit is dus ook het geval met het boek "Getting Real". Hierin staat dit op een werkelijk fantastische manier in 16 actiegerichte hoofdstukken beschreven.

Voor iedereen die met softwareontwikkeling te maken heeft een echte aanrader en voor iedereen die ambities heeft een eigen softwarebedrijfje te beginnen een absolute must!

Het boek is volledig publiekelijk beschikbaar. Zie: 37signals.com

(Bedankt voor de tip Gerard Doeswijk)

Thursday, April 10, 2008

Architectuur zonder Architectuur!

De afgelopen tijd is het onderwerp architectuur echt een hype geworden en het einde is nog lang niet inzicht: nooit eerder werden er zoveel seminars over dit onderwerp gehouden. Nooit eerder werden er meer boeken en artikelen over dit onderwerp gepubliceerd.

Maar waarom eigenlijk?
Is architectuur nieuw? Dat toch zeker niet.
Is architectuur een doel? Ook dat toch niet.

De belangrijkste reden voor al deze aandacht voor dit onderwerp heeft te maken met het feit dat iedereen dagelijks geconfronteerd wordt met de gevolgen van slechte en toevallig tot stand gekomen structuren. Denk bijvoorbeeld aan eilandautomatisering en het ratjetoe aan verschillende technologieën die van project tot project gebruikt zijn. Om nog maar niet te spreken van de totaal verschillende bouwstijlen die gehanteerd zijn van ontwikkelaar tot ontwikkelaar en van project tot project.

Logisch dus dat er totaal geen sprake is van synergie tussen de verschillende projecten. Dat het beheer op langere termijn een onmogelijke taak is. Dat inwerktijden de spuigaten uitlopen en dat het maken van aanpassingen zolang duurt dat niemand het meer wil en durft uit te leggen. Dat dus de ICT een blok aan het been is van menige organisatie en dus niet de bedrijfsstrategie ondersteund laat staan aanvult is logisch.


Aan de ontwikkelaars lag het zeker niet. De zeer goed opgeleide en ervaren ingenieurs die doorgaans de projecten realiseren begrijpen maar al te goed welke keuzes er moeten worden gemaakt en wat de consequenties daarvan zijn. Ze doen dat alleen steeds vanuit hun eigen projectdoelstellingen en vanuit hun eigen ervaringen.


Aan de acceptatietesters lag het ook niet: zij controleerden keurig of de applicatie werkt zoals het moet als het wordt opgeleverd. Wat er op de achtergrond gebeurd en hoe dat is ingericht kunnen en willen zij natuurlijk niets van weten.


De oorzaak is eenvoudig: vanuit het IT Management zijn er nauwelijks inhoudelijke eisen gesteld aan de manier waarop de verschillende projecten *inhoudelijk* werden uitgevoerd en die paar eisen die wel werden gesteld kwamen vaak niet verder als het dicteren van welke versie van Visual Studio en SQL Server er gebruikt moest worden en heel af en toe zelfs een zogenaamde Coding Standard. Misschien begrijpelijk want de projecten schoten als paddenstoelen uit de grond en nieuwe technologieen boden zich sneller dan ooit aan.

Nee, bij kleinere automatiseringsafdelingen is het juist de IT Manager die de meeste kennis heeft van de organisatie als geheel en het IT landschap bovendien en daarom is juist hij bij uitstek de juiste persoon om zich hiermee bezig te houden.


IT Managers, laat de architectuurkaas niet van je brood eten!

Start vandaag met het inhoudelijk opstellen van wat tijdens de beruchte seminars populair 'beleid' wordt genoemd. Zorg dat je weet op wat voor soort veranderingen je wilt inspelen en hoe (denk aan adaptief/perfectief/proactief onderhoud) . Oja, vergeet ook niet om te testen of dergelijke veranderingen echt beter te realiseren zijn. Want als er een ding is wat we de afgelopen periode hebben geleerd dan is dat het wel.



Want architectuur is iets waar je niet al te veel over moet praten,
het is iets wat je gewoon moet doen.

Tuesday, April 8, 2008

"Sharepoint Search" Instructievideo's

Op de volgende website is een op indrukwekkende verzameling van publieke Sharepoint instructievideo's te vinden.



Zie: http://www.english-tiger.com/Training/Default.aspx


De instructievideo's bestaan uit 14 modules:
  • Module 1 - IntroductionThis module introduces the full three-day class.


  • Module 2 - Enterprise Search OverviewThis module provides some astounding figures as to why organizations require Enterprise Search Solutions! We recommend that you do not skip this module.


  • Module 3 - SharePoint Search WalkthroughThis module is more than an overview. It cuts through the marketing hype in an informed, intelligent manner! We recommend that you do not skip this module.


  • Module 4 - Search Architecture and DeploymentThis module provides essential insights, discussions, and very deep technical information on architecture and server layouts.


  • Module 5 - Crawl and Query ProcessesThis module provides the 'under-the-hood' story about what happens at crawl and indexing time, and follows up with essential information about the query-time processes. This is how Search in SharePoint actually works, regardless of what you see in the user interfaces.


  • Module 6 - Relevance RankingIf relevance ranking is perceived to be inaccurate by your users, they will simply stop using your solutions. This module explains in detail how you can tune the relevance ranking subsystem.


  • Module 7 - Customizing the End-User ExperienceThis module shows you ALL that can be achieved by customizing Search Center in Microsoft Office SharePoint Server 2007, without requiring additional development effort. It is the definitive guide to customizing Search Center.


  • Module 8 - Developing Search SolutionsWhere Search Center cannot be customized sufficiently to suit your needs, you might need to develop your own solutions. This module shows you how! Developer topics include the KeywordQuery syntax, the FullTextSQLQuery syntax, the Search object model, the Search Web service, and the Search Administration object module.


  • Module 9 - Business Data Catalog SearchThis module shows you how to set up BDC search from scratch. It also highlights some common pitfalls.


  • Module 10 - Extensibility and Integration for SearchThis module provides more information about the crawl and indexing process by focusing on iFilters and Protocol Handlers. It also discusses full and incremental crawls, as well as providing guidance around 32-bit/64-bit architecture.


  • Module 11 - Search AdministrationThis module provides a comprehensive discussion of search administration.


  • Module 12 - Security for SearchThis module covers a variety of topics from search accounts, through Information Rights Management, to crawling Forms-based authenticated sites.


  • Module 13 - Performance, Scalability, and Capacity PlanningThis module provides invaluable discussions of indexer requirements, query server requirements, and other scalability approaches. Most importantly, it discusses how you can plan disk space requirements for indexing large corpuses.


  • Module 14 - Search OperationsThis module concludes the class by discussing operations and management tasks for enterprise search solutions.

Wednesday, April 2, 2008

Architectuur is de oplossing, maar wat was het probleem?

Als Architect kom je maar al te vaak in een situatie dat je moet uitleggen wat een Architect doet en wat de voordelen van Architectuur zijn.

Als je, net als ik, hiervoor een presentatie mag maken dan komt de volgende presentatie van het IMN (Informatie Management Nederland) je vast goed van pas!

De presentatie is in twee delen opgebouwd:
- Deel 1 geeft de algemene lijn van de IMN visie op architectuur-toepassing weer
- Deel 2 gaat concreet in op het gebruiken van de IMN-visie bij het toepassen van architectuur voor een specifieke probleemsituatie





Klik hier voor de PowerPoint.