Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Sdb Presentatie

527 views

Published on

Korte presentatie SDB Softwareontwikkeling

  • Be the first to comment

  • Be the first to like this

Sdb Presentatie

  1. 1. Wie zijn we? <ul><li>Professionele ICT dienstverlener </li></ul><ul><li>Opgericht in 1988 </li></ul><ul><li>± 20 man groot (geplande groei komende 2 jaar: 30-40 man) </li></ul><ul><li>Professionals met ruime ervaring </li></ul><ul><li>Focus op Software Ontwikkeling </li></ul><ul><li>Bedrijfskritische applicaties </li></ul><ul><li>Vooruitstrevend </li></ul><ul><li>Top 500 bedrijven, maar ook MKB </li></ul>
  2. 2. Wat doen we? Dienstverlening <ul><li>Projecten </li></ul><ul><ul><li>Inhouse of bij Klant </li></ul></ul><ul><ul><li>Van analyse tot en met onderhoud </li></ul></ul><ul><ul><li>Efficiënt door ontwikkelstraten </li></ul></ul><ul><li>Auditing </li></ul><ul><li>Consultancy </li></ul><ul><li>Training en Coaching </li></ul><ul><li>Detachering </li></ul>SDB Software Development SDB Professionals
  3. 3. Wat doen we? Specialisme <ul><li>Microsoft .NET </li></ul><ul><ul><li>C# </li></ul></ul><ul><ul><li>ASP.NET </li></ul></ul><ul><ul><li>WPF/WF/WCF </li></ul></ul><ul><li>Java </li></ul><ul><ul><li>J(2)EE </li></ul></ul><ul><ul><li>JSF </li></ul></ul><ul><ul><li>EJB/JPA/JMS </li></ul></ul><ul><li>Open Source </li></ul><ul><ul><li>Spring </li></ul></ul><ul><ul><li>Hibernate </li></ul></ul>
  4. 4. Wat doen we? Applicaties <ul><li>Web Applicaties </li></ul><ul><ul><li>Internet/Extranet/Intranet </li></ul></ul><ul><ul><li>Web 2.0/Ajax/RIA </li></ul></ul><ul><li>SOA (Service Oriënted Architecture) </li></ul><ul><ul><li>(Web)Services </li></ul></ul><ul><ul><li>Integratie met andere processen en applicaties </li></ul></ul><ul><li>Multi-tier Applicaties </li></ul><ul><li>(Web)Portals </li></ul>
  5. 5. Onze Missie <ul><li>Het optimaal ondersteunen van klanten in hun bedrijfsvoering door het ontwikkelen van volledig op de behoefte afgestemde bedrijfskritische software en (web)applicaties. </li></ul>
  6. 6. Onze Aanpak Overzicht <ul><li>Doel </li></ul><ul><li>Opleveren van kwalitatief hoogwaardige software, op een snelle en regelmatige wijze, zodat er waarde voor de gebruikers van de software gecreëerd wordt. </li></ul><ul><li>Middelen </li></ul><ul><li>Agile Software Development Methodiek </li></ul><ul><li>Domain Driven Design </li></ul><ul><li>Test Driven Development </li></ul><ul><li>Ontwikkelstraat </li></ul><ul><li>Skeleton Projecten </li></ul><ul><li>Nieuwe technologiën en frameworks </li></ul><ul><li>Investeren in kennis en ervaring </li></ul>
  7. 7. Onze Aanpak Agile Software Development (1) <ul><li>Agile Software Development Principles* </li></ul><ul><li>Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. </li></ul><ul><li>Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. </li></ul><ul><li>Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. </li></ul><ul><li>Business people and developers must work together daily throughout the project. </li></ul><ul><li>Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. </li></ul><ul><li>The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. </li></ul><ul><li>Working software is the primary measure of progress. </li></ul><ul><li>Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. </li></ul><ul><li>Continuous attention to technical excellence and good design enhances agility. </li></ul><ul><li>Simplicity--the art of maximizing the amount of work not done--is essential. </li></ul><ul><li>The best architectures, requirements, and designs emerge from self-organizing teams. </li></ul><ul><li>At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. </li></ul>* Official principles behind Manifesto for Agile Software Development.
  8. 8. Onze Aanpak Agile Software Development (2) <ul><li>Korte iteraties </li></ul><ul><ul><li>2 weken tot een maand </li></ul></ul><ul><ul><li>Maximaliseer feedback van gebruikers </li></ul></ul><ul><ul><li>Houd rekening met wijzigingen (zelfs laat in het project) </li></ul></ul><ul><li>Kleine en logische opgedeelde ‘brokken’ werk (unit of work) </li></ul><ul><ul><li>Feature Driven Development </li></ul></ul><ul><ul><li>Kleine ‘brokken’ werk kunnen goed ingeschat en ingepland worden </li></ul></ul><ul><ul><li>Eenvoudig te prioritiseren, te wijzigen, toe te voegen of te laten vallen </li></ul></ul><ul><li>Hechte samenwerking tussen verschillende rollen </li></ul><ul><ul><li>Customer, end-user, architect, designer, developer, tester </li></ul></ul><ul><li>Frequent opleveren werkende software </li></ul><ul><ul><li>Dagelijkse builds en continuous integration </li></ul></ul><ul><li>Test zo snel mogelijk </li></ul><ul><ul><li>Unit testing </li></ul></ul><ul><ul><li>Acceptance testing </li></ul></ul><ul><li>Kwaliteits waarborging </li></ul><ul><ul><li>Coding standards </li></ul></ul><ul><ul><li>Peer reviews </li></ul></ul><ul><ul><li>Pair designing en soms programming </li></ul></ul>
  9. 9. Onze Aanpak Domain Driven Design <ul><li>“ Domain Driven Design” is ... </li></ul><ul><li>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. </li></ul><ul><li>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. </li></ul><ul><li>een aanpak waarbij er voor wordt gezorgd dat alle mensen binnen het project (customer, end-user, architect, developer etc.) dezelfde taal spreken. </li></ul>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.
  10. 10. Onze Aanpak Test Driven Development <ul><li>“ 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. </li></ul><ul><li>Voeg een test toe voor een nieuwe feature </li></ul><ul><li>Draai alle testen en de nieuwe test zou moeten falen </li></ul><ul><li>Schrijf de code voor de feature </li></ul><ul><li>Draai opnieuw alle testen en ze zouden allemaal succesvol moeten zijn </li></ul><ul><li>Refactor de code </li></ul>
  11. 11. Ontwikkelstraat Doelstellingen <ul><li>Gestandaardiseerde en gestructureerde projectuitvoering (fabrieksmatige aanpak) </li></ul><ul><li>Productiviteitsverhoging (o.a. door modelgedreven ontwikkeling, codegeneratie en hergebruik) </li></ul><ul><li>Realiseren kortere time-to-market </li></ul><ul><li>Maximaal benutten bestaande onderdelen (hergebruik) </li></ul><ul><li>Sneller inspelen op continue veranderende organisaties </li></ul>
  12. 12. Ontwikkelstraat Wat en waarom? <ul><li>Gestandaardiseerde projectinrichting, architecturen, processen, tools, frameworks, guidelines en best practices </li></ul><ul><li>Doel is bereiken van efficiëntie, voorspelbaarheid, repeteerbaarheid en uitwisselbaarheid </li></ul>
  13. 13. Ontwikkelstraat Wanneer biedt het voordelen? <ul><li>Er is sprake van repeterende projecten </li></ul><ul><li>Veel toepassingen op basis van dezelfde technologie </li></ul><ul><li>De variëteit tussen de type toepassingen is gering </li></ul><ul><li>Organisatie focust op standaardisatie en efficiency </li></ul><ul><li>Wisselende teamsamenstellingen en skills </li></ul>
  14. 14. Ontwikkelstraat Wat zijn dan de voordelen? <ul><li>Hogere productiviteit door automatisering van het bulkwerk </li></ul><ul><li>Gegarandeerde kwaliteit in ontwerp, code en documentatie </li></ul><ul><li>Hergebruik van veelvoorkomende functionaliteitGestandaardiseerde aanpak/werkwijze projecten </li></ul><ul><li>Standaardisatie d.m.v. ontwerppatronen en best practices </li></ul>
  15. 15. Ontwikkelstraat Concepten <ul><li>Projectuitvoering gebaseerd op Agile Development </li></ul><ul><li>Standaard architecturen (Web-based, Windows desktop, Smart-client, Mobile, Web Services, SOA) </li></ul><ul><li>Modelgedreven ontwikkeling en codegeneratie </li></ul><ul><li>Tools, frameworks, design patterns, guidelines, best practices </li></ul><ul><li>Daily builds and Continuous Integration </li></ul><ul><li>Highly Testable </li></ul>
  16. 16. Ontwikkelstraat Standaard architecturen <ul><li>Web-based applications </li></ul><ul><ul><li>Gelaagde Client/Server en N-tier architecturen </li></ul></ul><ul><ul><li>Model-View-Controller/Presenter pattern (MVC/P) </li></ul></ul><ul><ul><li>AJAX </li></ul></ul><ul><li>Smart-client applications </li></ul><ul><ul><li>Rich, desktop client-applications </li></ul></ul><ul><ul><li>Gelaagde N-tier architectuur </li></ul></ul><ul><ul><li>Communiceert met back-end over het Internet </li></ul></ul><ul><ul><li>Downloadable naar desktop d.m.v. Click-Once technologie </li></ul></ul><ul><li>Service Oriented Architectures (SOA) </li></ul><ul><ul><li>Web Services </li></ul></ul><ul><ul><li>Enterprise Service Bus </li></ul></ul><ul><ul><li>Business Process Management / Business Process Execution Language </li></ul></ul>
  17. 17. Ontwikkelstraat Herbruikbare bouwstenen <ul><li>Caching </li></ul><ul><li>Data Access (O/R Mapper) </li></ul><ul><li>Exception Handling </li></ul><ul><li>Internationalization </li></ul><ul><li>Logging </li></ul><ul><li>User Interface & Navigation (Model-View-Controller) </li></ul><ul><li>Security (authentication/authorization, role-based, profile) </li></ul><ul><li>State Management </li></ul><ul><li>Transaction Management </li></ul><ul><li>Validation </li></ul>
  18. 18. Ontwikkelstraat Continuous Integration <ul><li>Geautomatiseerd proces bestaande uit: </li></ul><ul><li>Ophalen laatste code uit versiebeheersysteem </li></ul><ul><li>Build van de code </li></ul><ul><li>Uitvoeren unittests </li></ul><ul><li>Inchecken werkende versie </li></ul><ul><li>Deployment testserver(s) </li></ul>
  19. 19. Ontwikkelstraat Testen <ul><li>Zéér belangrijk! </li></ul><ul><li>Start zo snel mogelijk met testen </li></ul><ul><li>Unittesting en geautomatiseerd uitvoeren </li></ul><ul><li>Testresultaten overzichtelijk op project portal publiceren </li></ul>
  20. 20. .NET Ontwikkelstraat Tools <ul><li>Visual Studio 2005/2008 (software development) </li></ul><ul><li>Microsoft Internet Information Services 6.0 (IIS) </li></ul><ul><li>Microsoft SQL Server 2000/2005 </li></ul><ul><li>Enterprise Architect (UML modelering) </li></ul><ul><li>Domain Specific Languages Designer (domain modelering) </li></ul><ul><li>Visual Source Safe (versiebeheersysteem) </li></ul><ul><li>Cruise Control (build and continuous integration server) </li></ul><ul><li>Windows SharePoint Services (project portal) </li></ul><ul><li>OnTime (issue tracking en project management) </li></ul><ul><li>Journyx (urenregistratie) </li></ul>
  21. 21. .NET Ontwikkelstraat Tools (2) <ul><li>MSBuild (build tool) </li></ul><ul><li>FxCop (code analysis tool) </li></ul><ul><li>NCover (code/unit test coverage tool) </li></ul><ul><li>Web Application Stress Tool (load & stress testing) </li></ul><ul><li>Selenium (testing frameworks) </li></ul><ul><li>ANTS Profiler (memory & performance code profiler) </li></ul><ul><li>Microsoft SQL Server Profile (database profiler) </li></ul><ul><li>SQL Schema Comparer </li></ul>
  22. 22. .NET Ontwikkelstraat Frameworks <ul><li>Microsoft .NET Framework 2.0/3.0/3.5 </li></ul><ul><li>ASP.NET en Windows Forms </li></ul><ul><li>NHibernate en ADO Entity Framework (data persistency) </li></ul><ul><li>Spring.NET (application framework) </li></ul><ul><li>Microsoft Enterprise Library (reusable building blocks) </li></ul><ul><li>Ingenious MVC (MVC framework) </li></ul><ul><li>NUnit, DBUnit, NMock (testing frameworks) </li></ul><ul><li>SDB Framework </li></ul>
  23. 23. Java Ontwikkelstraat Tools <ul><li>Eclipse 3.2/NetBeans 6.0 </li></ul><ul><li>Enterprise Architect (UML modelering) </li></ul><ul><li>Subversion (versiebeheersysteem) </li></ul><ul><li>Ant/Maven (build tool) </li></ul><ul><li>Hudson (build and continuous integration server) </li></ul><ul><li>Wiki (project portal) </li></ul><ul><li>OnTime (issue tracking en project management) </li></ul><ul><li>MySQL (ook Oracle, HSQLDB, MS SQL) (database) </li></ul><ul><li>Tomcat/JBoss (applicatie server) </li></ul><ul><li>Clover (unit test coverage) </li></ul><ul><li>Checkstyle (coding standard checking) </li></ul>
  24. 24. Java Ontwikkelstraat Frameworks 1 <ul><li>Ontwikkelstraat 1 gebaseerd op Appfuse 2.0 </li></ul><ul><li>Hibernate of JPA (data persistency) </li></ul><ul><li>Spring 2.0 (application framework) </li></ul><ul><li>JSF of Spring MVC (web framework) </li></ul><ul><li>DWR, Prototype, Scrip.taculo.us (Ajax frameworks) </li></ul><ul><li>Acegi (security) </li></ul><ul><li>SiteMesh ( layout and page decoration) </li></ul><ul><li>XFire (web services) </li></ul><ul><li>JUnit, DBUnit, JMock, Selenium (testing frameworks) </li></ul>
  25. 25. Java Ontwikkelstraat Frameworks 2 <ul><li>Ontwikkelstraat 2 gebaseerd op Seam 2.0 </li></ul><ul><li>JPA (data persistency) </li></ul><ul><li>EJB 3.0 (application framework) </li></ul><ul><li>JSF (web framework) </li></ul><ul><li>ICEfaces, Ajax4JSF (Ajax frameworks) </li></ul><ul><li>iText (PDF generatie) </li></ul><ul><li>JBoss Rules/Drools (rule engine voor o.a. security en page flow) </li></ul><ul><li>TestNG, DBUnit, JMock, Selenium (testing frameworks) </li></ul>
  26. 26. Kortom, waarom SDB Aanpak (1) <ul><li>Zeer klant gericht </li></ul><ul><ul><li>Volledig op de behoefte/klant afgestemde bedrijfskritische applicaties </li></ul></ul><ul><ul><li>Klant maakt onderdeel uit van het project </li></ul></ul><ul><li>Veel kennis en ervaring </li></ul><ul><ul><li>Ervaren en gecertificeerd personeel </li></ul></ul><ul><ul><li>Investeren in kennis </li></ul></ul><ul><ul><li>Eigen ontwikkelstraat met vaste toolset en frameworks </li></ul></ul><ul><li>Gebruik nieuwe technologie, tools en frameworks </li></ul><ul><ul><li>Stilstand is achteruitgang </li></ul></ul><ul><ul><li>Nieuwe technologie geeft klant concurrentie voordeel </li></ul></ul><ul><ul><li>Nieuwe tools en frameworks maken software development eenvoudiger, efficiënter en produktiever </li></ul></ul><ul><li>Hoge productiviteit </li></ul><ul><ul><li>Kortere time-to-market </li></ul></ul><ul><ul><li>Lagere ontwikkelkosten </li></ul></ul><ul><li>Enthousiast en ambitieus </li></ul><ul><li>Overbodige complexiteit vermijden door eenvoud na te streven </li></ul><ul><li>Hergebruik architectuur en frameworks </li></ul>
  27. 27. Kortom, waarom SDB Aanpak (2) <ul><li>SDB bouwt dus volledig op de behoefte/klant afgestemde bedrijfskritische applicaties die opvallen vanwege de: </li></ul><ul><li>Hoge Produktiviteit </li></ul><ul><li>Hoge Flexibiliteit </li></ul><ul><li>Hoge Kwaliteit </li></ul><ul><li>Hoge Onderhoudbaarheid </li></ul>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.

×