San Antonio: (210) 587-7984  |  Austin: (512) 215-4750

 

  home   company   services   contact   my account
IPS, Inc.            

    Enterprise
...............................................
» Enterprise Development
 
  • Process
  • Disciplines
  • Environment
  •    
    » Space Software Engineering
     
  • Cassini
  • TWINS
  • SASF Parser
  • SATF Parser
  •    
    » Process Automation
    » Consulting Services
    » Innovative Development
    » Rich Internet Experiences

        Small Business
     ..............................................

        Web Hosting
    ...............................................

     


    Development Process
    ......................................................................................................................................

    The Planning Process

    Our planning process allows the "customer" to define the business value of desired features and uses cost estimates provided by the programmers to choose what needs to be done and what needs to be deferred.  The effect of the planning process is that it is easy to steer the project to success.

    Small Releases

    Our teams put a simple system into production early, and update it frequently on a very short cycle.

    Metaphor

    Our teams use a common "system of names" and a common system description that guides development and communication.

    Simple Design

    Our process builds the simplest programs meeting the current requirements.  There is not much building "for the future".  Instead, the focus is on providing business value.  Of course it is necessary to ensure that the client has a good system design.  This is brought about through "refactoring", discussed below.

    Testing

    Our teams focus on validation of the software at all times.  Programmers develop software by writing tests first, then software that fulfills the requirements reflected in the tests.  Customers provide acceptance tests that enable them to be certain that the features they need are provided.

    Refactoring

    Our teams improve the design of the system throughout the entire development.  This is done by keeping the software clean:  without duplication, with high communication; simple, yet complete.

    Paired Programming

    Our programmers write production code in pairs when possible. Paired programming has been shown by many experiments to produce better software at similar or lower cost than programmers working alone.

    Collective Ownership

    All the code belongs to all the programmers.  This lets the team go at full speed, because when something needs changing, it can be changed without delay.

    Continuous Integration

    Automated processes integrate and build the software system multiple times per day.  This keeps all the programmers on the same page, and enables very rapid progress.  Perhaps surprisingly, integrating more frequently tends to eliminate integration problems that plague teams who integrate less often.

    On-Site Customer

    Projects are steered by a dedicated individual who is empowered to determine requirements, set priorities, and answer questions as the programmers have them.  The effect of being there is that communication improves, with less hard-copy documentation - often one of the most expensive parts of a software project.

    Coding Standard

    For a team to work effectively in pairs, and to share ownership of all the code, all the programmers need to write the code in the same way, with rules that make sure the code communicates clearly.