27
Wie zijn we? Professionele ICT dienstverlener Opgericht in 1988 ± 20 man groot (geplande groei komende 2 jaar: 30-40 man) Professionals met ruime ervaring Focus op Software Ontwikkeling Bedrijfskritische applicaties Vooruitstrevend Top 500 bedrijven, maar ook MKB

Sdb Presentatie

  • Upload
    menfey

  • View
    428

  • Download
    4

Embed Size (px)

DESCRIPTION

Korte presentatie SDB Softwareontwikkeling

Citation preview

Page 1: Sdb Presentatie

Wie zijn we?

• Professionele ICT dienstverlener

• Opgericht in 1988

• ± 20 man groot (geplande groei komende 2 jaar: 30-40 man)

• Professionals met ruime ervaring

• Focus op Software Ontwikkeling

• Bedrijfskritische applicaties

• Vooruitstrevend

• Top 500 bedrijven, maar ook MKB

Page 2: Sdb Presentatie

Wat doen we?Dienstverlening

• Projecten– Inhouse of bij Klant– Van analyse tot en met onderhoud– Efficiënt door ontwikkelstraten

• Auditing

• Consultancy

• Training en Coaching

• Detachering

SDB Software Development

SDB Professionals

Page 3: Sdb Presentatie

Wat doen we?Specialisme

• Microsoft .NET– C#– ASP.NET– WPF/WF/WCF

• Java– J(2)EE– JSF– EJB/JPA/JMS

• Open Source– Spring– Hibernate

Page 4: Sdb Presentatie

Wat doen we?Applicaties

• Web Applicaties– Internet/Extranet/Intranet– Web 2.0/Ajax/RIA

• SOA (Service Oriënted Architecture)– (Web)Services– Integratie met andere processen en applicaties

• Multi-tier Applicaties

• (Web)Portals

Page 5: Sdb Presentatie

Onze Missie

Het optimaal ondersteunen van klanten in hun bedrijfsvoering door het ontwikkelen van volledig op de behoefte afgestemde bedrijfskritische software en (web)applicaties.

Page 6: Sdb Presentatie

Onze AanpakOverzicht

Doel

Opleveren van kwalitatief hoogwaardige software, op een snelle en regelmatige wijze, zodat er waarde voor de gebruikers van de software gecreëerd wordt.

Middelen• Agile Software Development Methodiek

• Domain Driven Design

• Test Driven Development

• Ontwikkelstraat

• Skeleton Projecten

• Nieuwe technologiën en frameworks

• Investeren in kennis en ervaring

Page 7: Sdb Presentatie

Onze Aanpak Agile Software Development (1)

Agile Software Development Principles*• Our highest priority is to satisfy the customer through early and continuous delivery

of valuable software. • Welcome changing requirements, even late in development. Agile processes harness

change for the customer's competitive advantage. • Deliver working software frequently, from a couple of weeks to a couple of months,

with a preference to the shorter timescale. • Business people and developers must work together daily throughout the project. • Build projects around motivated individuals. Give them the environment and support

they need, and trust them to get the job done. • The most efficient and effective method of conveying information to and within a

development team is face-to-face conversation. • Working software is the primary measure of progress. • Agile processes promote sustainable development. The sponsors, developers, and

users should be able to maintain a constant pace indefinitely. • Continuous attention to technical excellence and good design enhances agility. • Simplicity--the art of maximizing the amount of work not done--is essential. • The best architectures, requirements, and designs emerge from self-organizing

teams. • At regular intervals, the team reflects on how to become more effective, then tunes

and adjusts its behavior accordingly.

* Official principles behind Manifesto for Agile Software Development.

Page 8: Sdb Presentatie

Onze Aanpak Agile Software Development (2)

• Korte iteraties– 2 weken tot een maand– Maximaliseer feedback van gebruikers– Houd rekening met wijzigingen (zelfs laat in het project)

• Kleine en logische opgedeelde ‘brokken’ werk (unit of work)– Feature Driven Development– Kleine ‘brokken’ werk kunnen goed ingeschat en ingepland worden– Eenvoudig te prioritiseren, te wijzigen, toe te voegen of te laten vallen

• Hechte samenwerking tussen verschillende rollen– Customer, end-user, architect, designer, developer, tester

• Frequent opleveren werkende software– Dagelijkse builds en continuous integration

• Test zo snel mogelijk– Unit testing– Acceptance testing

• Kwaliteits waarborging– Coding standards– Peer reviews– Pair designing en soms programming

Page 9: Sdb Presentatie

Onze Aanpak Domain Driven Design

“Domain Driven Design” is ...

• een ontwerp proces gericht op (functioneel) complexe applicaties, door de implementatie geheel te baseren op een evoluerend model van de core business van de klant/het proces.

• niet een technologie of een methodologie. Het is meer een manier van denken en een set van prioriteiten gericht op het versnellen van software projecten die te maken hebben met een gecompliceerd domein.

• een aanpak waarbij er voor wordt gezorgd dat alle mensen binnen het project (customer, end-user, architect, developer etc.) dezelfde taal spreken.

Kortom, “Domain Driven Design” een manier om samen met de mensen die de business echt kennen een model op te stellen, dit op allerlei manieren te testen, aan te passen en uit te breiden om uiteindelijk tot een door alle partijen begrepen model te komen die als basis dient voor de implementatie.

Page 10: Sdb Presentatie

Onze Aanpak Test Driven Development

“Test Driven Development” is een ontwikkel proces waarbij eerst een automatisch te draaien test wordt geschreven, waarin de requirements van de te schrijven code worden gedefinieerd, voordat de werkelijke code wordt geschreven.

1. Voeg een test toe voor een nieuwe feature

2. Draai alle testen en de nieuwe test zou moeten falen

3. Schrijf de code voor de feature

4. Draai opnieuw alle testen en ze zouden allemaal succesvol moeten zijn

5. Refactor de code

Page 11: Sdb Presentatie

Ontwikkelstraat Doelstellingen

• Gestandaardiseerde en gestructureerde projectuitvoering (fabrieksmatige aanpak)

• Productiviteitsverhoging (o.a. door modelgedreven ontwikkeling, codegeneratie en hergebruik)

• Realiseren kortere time-to-market

• Maximaal benutten bestaande onderdelen (hergebruik)

• Sneller inspelen op continue veranderende organisaties

Page 12: Sdb Presentatie

Ontwikkelstraat Wat en waarom?

• Gestandaardiseerde projectinrichting, architecturen, processen, tools, frameworks, guidelines en best practices

• Doel is bereiken van efficiëntie, voorspelbaarheid, repeteerbaarheid en uitwisselbaarheid

Team

Tools Templates Standaards

Architecturen

Proces/aanpak

Infrastructuur

Page 13: Sdb Presentatie

Ontwikkelstraat Wanneer biedt het voordelen?

• Er is sprake van repeterende projecten

• Veel toepassingen op basis van dezelfde technologie

• De variëteit tussen de type toepassingen is gering

• Organisatie focust op standaardisatie en efficiency

• Wisselende teamsamenstellingen en skills

Page 14: Sdb Presentatie

Ontwikkelstraat Wat zijn dan de voordelen?

• Hogere productiviteit door automatisering van het bulkwerk

• Gegarandeerde kwaliteit in ontwerp, code en documentatie

• Hergebruik van veelvoorkomende functionaliteitGestandaardiseerde aanpak/werkwijze projecten

• Standaardisatie d.m.v. ontwerppatronen en best practices

Page 15: Sdb Presentatie

Ontwikkelstraat Concepten

• Projectuitvoering gebaseerd op Agile Development

• Standaard architecturen (Web-based, Windows desktop, Smart-client, Mobile, Web Services, SOA)

• Modelgedreven ontwikkeling en codegeneratie

• Tools, frameworks, design patterns, guidelines, best practices

• Daily builds and Continuous Integration

• Highly Testable

Page 16: Sdb Presentatie

Ontwikkelstraat Standaard architecturen

• Web-based applications– Gelaagde Client/Server en N-tier architecturen– Model-View-Controller/Presenter pattern (MVC/P)– AJAX

• Smart-client applications– Rich, desktop client-applications– Gelaagde N-tier architectuur– Communiceert met back-end over het Internet– Downloadable naar desktop d.m.v. Click-Once technologie

• Service Oriented Architectures (SOA)– Web Services– Enterprise Service Bus– Business Process Management / Business Process Execution Language

Page 17: Sdb Presentatie

Ontwikkelstraat Herbruikbare bouwstenen

• Caching

• Data Access (O/R Mapper)

• Exception Handling

• Internationalization

• Logging

• User Interface & Navigation (Model-View-Controller)

• Security (authentication/authorization, role-based, profile)

• State Management

• Transaction Management

• Validation

Page 18: Sdb Presentatie

Ontwikkelstraat Continuous Integration

Geautomatiseerd proces bestaande uit:

• Ophalen laatste code uit versiebeheersysteem

• Build van de code

• Uitvoeren unittests

• Inchecken werkende versie

• Deployment testserver(s)

Page 19: Sdb Presentatie

Ontwikkelstraat Testen

• Zéér belangrijk!

• Start zo snel mogelijk met testen

• Unittesting en geautomatiseerd uitvoeren

• Testresultaten overzichtelijk op project portal publiceren

Page 20: Sdb Presentatie

.NET Ontwikkelstraat Tools

• Visual Studio 2005/2008 (software development)

• Microsoft Internet Information Services 6.0 (IIS)

• Microsoft SQL Server 2000/2005

• Enterprise Architect (UML modelering)

• Domain Specific Languages Designer (domain modelering)

• Visual Source Safe (versiebeheersysteem)

• Cruise Control (build and continuous integration server)

• Windows SharePoint Services (project portal)

• OnTime (issue tracking en project management)

• Journyx (urenregistratie)

Page 21: Sdb Presentatie

.NET Ontwikkelstraat Tools (2)

• MSBuild (build tool)

• FxCop (code analysis tool)

• NCover (code/unit test coverage tool)

• Web Application Stress Tool (load & stress testing)

• Selenium (testing frameworks)

• ANTS Profiler (memory & performance code profiler)

• Microsoft SQL Server Profile (database profiler)

• SQL Schema Comparer

Page 22: Sdb Presentatie

.NET Ontwikkelstraat Frameworks

• Microsoft .NET Framework 2.0/3.0/3.5

• ASP.NET en Windows Forms

• NHibernate en ADO Entity Framework (data persistency)

• Spring.NET (application framework)

• Microsoft Enterprise Library (reusable building blocks)

• Ingenious MVC (MVC framework)

• NUnit, DBUnit, NMock (testing frameworks)

• SDB Framework

Page 23: Sdb Presentatie

Java Ontwikkelstraat Tools

• Eclipse 3.2/NetBeans 6.0

• Enterprise Architect (UML modelering)

• Subversion (versiebeheersysteem)

• Ant/Maven (build tool)

• Hudson (build and continuous integration server)

• Wiki (project portal)

• OnTime (issue tracking en project management)

• MySQL (ook Oracle, HSQLDB, MS SQL) (database)

• Tomcat/JBoss (applicatie server)

• Clover (unit test coverage)

• Checkstyle (coding standard checking)

Page 24: Sdb Presentatie

Java Ontwikkelstraat Frameworks 1

Ontwikkelstraat 1 gebaseerd op Appfuse 2.0

• Hibernate of JPA (data persistency)

• Spring 2.0 (application framework)

• JSF of Spring MVC (web framework)

• DWR, Prototype, Scrip.taculo.us (Ajax frameworks)

• Acegi (security)

• SiteMesh (layout and page decoration)

• XFire (web services)

• JUnit, DBUnit, JMock, Selenium (testing frameworks)

Page 25: Sdb Presentatie

Java Ontwikkelstraat Frameworks 2

Ontwikkelstraat 2 gebaseerd op Seam 2.0

• JPA (data persistency)

• EJB 3.0 (application framework)

• JSF (web framework)

• ICEfaces, Ajax4JSF (Ajax frameworks)

• iText (PDF generatie)

• JBoss Rules/Drools (rule engine voor o.a. security en page flow)

• TestNG, DBUnit, JMock, Selenium (testing frameworks)

Page 26: Sdb Presentatie

Kortom, waarom SDB Aanpak (1)

• Zeer klant gericht– Volledig op de behoefte/klant afgestemde bedrijfskritische applicaties– Klant maakt onderdeel uit van het project

• Veel kennis en ervaring– Ervaren en gecertificeerd personeel– Investeren in kennis– Eigen ontwikkelstraat met vaste toolset en frameworks

• Gebruik nieuwe technologie, tools en frameworks– Stilstand is achteruitgang– Nieuwe technologie geeft klant concurrentie voordeel– Nieuwe tools en frameworks maken software development eenvoudiger,

efficiënter en produktiever

• Hoge productiviteit– Kortere time-to-market – Lagere ontwikkelkosten

• Enthousiast en ambitieus

• Overbodige complexiteit vermijden door eenvoud na te streven

• Hergebruik architectuur en frameworks

Page 27: Sdb Presentatie

Kortom, waarom SDB Aanpak (2)

SDB bouwt dus volledig op de behoefte/klant afgestemde bedrijfskritische applicaties die opvallen vanwege de:

• Hoge Produktiviteit• Hoge Flexibiliteit• Hoge Kwaliteit• Hoge Onderhoudbaarheid

SDB is pas tevreden als we:

SDB is pas tevreden als we applicaties ontwikkelen die beter zijn dan een klant initieel voor ogen heeft, binnen budget en tijd.