OCIO » Getting Started At App Dev

Getting Started At App Dev

Last modified by Matthew Harshbarger on 2014/07/01 13:58

Welcome to App Dev!

If you are here odds are you are a fresh, new face at App Dev!  Starting work in a new IT organization can be a bit overwhelming at first so we have created this page as the best reference for getting setup and finding answers you may have as you begin your work.

Before outlining some of the processes and procedures we expect our team members to follow please know that if you don't find an answer to the question you have in the documentation below there you have a few people that can get you started.

For any technical questions such as the App Dev SLDC, setting up a laptop or PC, using developer tools, using our frameworks or getting access to server resources talk to one of the software architects Jeff Braafhart or Justin Carlson.

For any issues regarding the project management process contact any of the App Dev project managers. For non-technical, project specific questions please contact the appropriate project manager.  If you aren't sure who that is you can find the project in Forge which should list the team members for each project including the project manager.

For administrative questions regarding time reporting, timesheets and leave requests please contact Kirsten Bosch.

Administrative Resources

Regardless of your role within App Dev, we all have some very basic administrative requirements. First and foremost App Dev tries to maintain a flexible work schedule for all team members including our contract resources.  As the most basic rule we ask that you be available at work for the core hours of 9am to 3pm.  Assuming you take a one hour lunch that is only five hours so how you pick up the additional three hours is up to you.  As examples, some team members come in at 8am and leave at 4:30pm with just a half-hour lunch.  Others come in at 6am and leave at 3pm.  In the end we try to remain flexible at App Devas long as you follow these simple rules:

  1. You must be at work between the hours of 9am and 3pm.
  2. You remain flexible to attend meetings or other activities that occur outside of your normal work hours.
  3. You keep your Outlook calendar up to date so that people know where you are.
    To help others involved with project you are on, please communicate what you expect your normal work hours to be or maybe even mark those hours in your calendar in Outlook.

Weekly Status Reports

All App Dev team members are required to complete the weekly status report.    Status reports are to be completed and put in the appropriate network folder by the last day of business each week.  Contractors should be aware that the invoice App Devreceives for your services can not be paid unless we receive your weekly status reports completely and correctly filled out.  For contractors whose employers require them to fill out a weekly status report, the App Devweekly status report would be in addition to that report.


Time Reporting

App Dev uses Microsoft Project Server to track time for billing purposes. All App Dev employees are required to submit time they have spent on projects in Project Server at a minimum of every last business day of each week.  Accurate time reporting is essential to App Dev project managers who must report to App Dev management and App Dev customers the remaining budget for each project.  For any questions regarding the use of Project Server please see Kirsten Bosch or one of the App Dev project managers.

For full-time employees you are also required to enter time for human resource purposes.  This is done using the mainframe system HRIS.  HRIS is strictly used for payroll and tracking of vacation, sick time, etc.  To be clear, HRIS has no impact on how App Dev bills customers.  For questions regarding the use of HRIS please see Kirsten Bosch.


Tasks and Variance

Every task in a project plan is given a number of working hours for completion of the task. As part of normal project activities, you may complete a task in more or less time than originally estimated (called a variance). When entering time through the MS Project Web Timesheet, you can given an updated estimate of the remaining hours for each task by using the "Remaining Work" column,shown below:


For hours over the estimate, it is very important to keep your project manager (and/or team leader) informed every time this happens. Many times, a variance is just a small bump in the road, handled with no further impact to the project. Other times, it is an indication that the planning assumptions were not correct, and a change request may be in order. The sooner the PM finds out about variances, the more pro-active they can be in addressing the underlying causes. The underlying cause is almost never individual performance, so don't be concerned that reporting a variance will reflect negatively on your performance.

Payroll Reporting

Full-time employees are also required to enter time for human resources and payroll purposes. This is done using the mainframe system HRIS. HRIS is strictly used for payroll and tracking of vacation, sick time, etc. HRIS has no impact on how App Dev bills customers. For questions regarding the use of HRIS please see Kirsten Bosch.

Requesting Time Off

Requesting time off is a bit different between full-time employees and contractors.  Regardless of who you are we ask that, when possible, you make your request for time off at least two weeks in advance.  This isn't a requirement but it helps us make any adjustments around planned absences.  This is particularly important during the holidays. We also request that both full-time employees and contractors mark any planned time off in their Outlook calendars so that project managers and team members know if you are available should your help be needed.

Full-time employees are required to submit leave requests using the Leave Request Application.  Again, we ask you do this at least two weeks ahead of time.


E-Mail and Spam Filtering

Employees and contractors are expected to conduct business using their State email address.  If you need to use another email address for any reason, check with your supervisor first.  Email messages are part of the public record and can be requested by anyone under the Freedom of Information Act.  All messages are retained by the Exchange server for a period of time, even if you delete them.

In general, you should assume that everyone can read any message you send.
Don't write messages that could be misinterpreted or insulting to customers and co-workers.
The State's email system includes automatic spam filtering from Sophos.  While this means that you will almost never get spam, it also means that a valid message may be held up by mistake.  When Sophos isn't sure if a message is spam, you'll get an email summary of the message(s) being held with instruction for releasing it to you.  You can also look at your "spam-box" and edit your settings at any time by going to the Webmail Spam Page, and using your Enterprise A&A credential to log in.


Web Browsing and Websense

All web browsing at the State is monitored and filtered using a system called Websense.  While very good at preventing access to gambling or other inappropriate sites, it is not 100 percent accurate.  If you can't get to a site that you have a valid need for (such as a blog posting about an error you're getting), you can send an email to your supervisor with an explanation.  Russ Rozinek has administrative control over our access to the web through Websense, and can make changes as appropriate.


Technical Resources

The following are general resources for each and every project:

  1. TortoiseCVS - TortoiseCVS is a CVS client that snaps into Windows Explorer.  You do not have to use TortoiseCVS as many IDE's do have native CVS support. There are also a number of third party CVS clients out there for nearly every operating system many of which are freely available.
  2. Enterprise Architect - Nearly all of our analysis and design artifacts end up in Enterprise Architect which is  a UML compliant modeling tool.  To obtain a license key for Enterprise Architect please email Joel Paine who manages software licenses and keys for App Dev. Once you have a license key, you can download the current version here (login required).
  3. GNU Image Manipulation Program (GIMP) - GIMP is a freely available image manipulation program that provides functionality similar to expensive commercial tools like Adobe Photoshop.
  4. Open Source Web Design - Browse hundreds of freely available web designs that you may consider using in your projects.  Please note that some design have special restrictions or requirements.
  5. Multiple Internet Explorer Installer - Allows you to install and run different versions of Internet Explorer on your PC at one time.

PHP Resources

Required Software

Follow the instructions for each of these products in the order they are listed for best results. The instructions are currently written for Windows users.

  1. MySQL - At ITE we store data in MySQL for all PHP applications.
  2. MySQL GUI Tools - These make using MySQL easier.
  3. Apache Web Server - At ITE we host all PHP applications under the Apache Web Server.
  4. PHP - Once you have Apache up and running you will want to install the most recent, stable version of PHP 5.
  5. Note that both Apache and PHP are both well documented with numerous discussions on Google Groups regarding any possible installation problems you might face.
  6. PEAR - You will undoubtedly be using the PEAR Extension and Application Repository (PEAR) as part of your projects.  You should read the PEAR manual on how to register channels and install/remove PEAR packages.
  7. Zend Studio - is the IDE of choice for most PHP developers at App Dev.  While not required for use, Zend provides a commercially supported IDE to our PHP developers. After installing, request a license key from Jeff Braafhart or Justin Carlson.

Optional Software

If you are doing PHP development at ITE odds are you will be using MySQL as the backend at some point.  For MySQL projects we typically use the latest stable 5.x version available.  You will need to ensure you have Innodb enabled to ensure we get full ACID support.  If your project will support other DBMS's like Microsoft SQL Server and IBM DB2 please contact Jeff Braafhart or Justin Carlson as connecting to them from PHP may require additional help.


Framework Components

The following packages are basic requirements for developing PHP applications at App Dev.  Please ensure you install them and really read up on what functionality they provide as well as understanding any dependencies they have (e.g. Propel, Creole, etc).

  1. MVCnPHP - MVCnPHP is a PHP-based implementation of the Model-View-Controller design pattern.  
  2. Geeklog Generator - The Geeklog Generator is based largely on great work provided by Propel, an Object Relational Mapper (ORM) written in PHP. 
  3. Geeklog DAO - The Geeklog Data Access Object (DAO) is an implementation of the DAO pattern that supports Propel and the concept of named queries (which was borrowed from the Hibernate Project, a Java-based ORM implementation. 

Further Reading

  1. Building your first PEAR package
  2. Using the State of Iowa's PEAR channel
    If you have any questions regarding setup of you PHP environment or use of any of the framework components please feel free to contact Jeff Braafhart or Justin Carlson.  

Java Resources

Required Software

Optional Software

.NET Resources

Required Software

  1. IIS or ASP.NET Server - You will need to install IIS based web server first as part of setting up your .NET environment.  The ASP.NET Server can and should be installed with Visual Studio 2005.
  2. Visual Studio 2005 - Visual Studio is the IDE of choice for .Net developers at App Dev.  You will need to check out the Visual Studio 2005 from the Desktop Support Team.  Install the IDE and the SQL Server 2005 Express / Management Studio for development.
  3. Visual Studio 2005 Service Pack 1 - You will need to download this and any additional service packs for Microsoft Support.
  4. Nant - You will need to have Nant installed to use the build scripts included in the MVC scaffolding, and the CCNet continuous integration server hosted by ITE.  You should also download the Nant Contrib tools as well.
  5. NUnit - You will need to have NUnit for writing and testing of the unit tests for you development.  You should then download the TestDriven.Net Visual Studio 2005 Add In so that you can test and debug the test modules directly from the IDE.

Optional Software

You will at some point need a good archiving (zip) tool, and there a number of good open source and free alternatives.  IZArc is an open source option that works on most of the most used compression methods, and integrates into the Windows shell.  Fiddler is a HTTP Debugging Proxy which logs all HTTP traffic between your computer and the Internet. Fiddler allows you to inspect all HTTP Traffic, set breakpoints, and "fiddle" with incoming or outgoing data.  Fiddler is freeware and can debug traffic from virtually any application, including Internet Explorer, Mozilla Firefox, and more.   A good text editor is also a very good idea, particularly with good text manipulation tools, including support for regular expressions.


Framework Components

The following packages are basic requirements for developing .Net applications at App Dev. Please ensure you install them and really read up on what functionality they provide as well as understanding any dependencies they have (e.g. nDoc, nHibernate, etc.). 

  1. MVCNET - MVCNET is a .Net-based implementation of the Model-View-Controller design pattern.
  2. nHibernate – A .Net port of the Java Hibernate Core.  It handles persisting plain .NET objects to and from an underlying relational database. Given an XML description of your entities and relationships, nHibernate automatically generates SQL for loading and storing the objects. Optionally, you can describe your mapping metadata with attributes in your source code.
  3. Named Query Editor – We make use of a Named Query Library which reads queries and parameters from an xml based file.  This allows for returning special queries from the database which could not be easily duplicated in the nHibernate objects.  Also test information is added as meta data to the file so that testing can be performed on one or all the queries in the file.
  4. ActiveReports 2 for .Net – This reporting package from Data Dynamics is what we use for generation of desktop and web reports.  Talk to Jeff Braafhart for the installation location and license key.
  5. Aspose .NET Tools - These tools allow for the use of Microsoft Office technologies, as well as Adobe PDF files with out having to have MS Office or Adobe Acrobat installed.  Talk to Jeff Braafhart about the file locations and license keys.
  6. AJAX.NET -

Other Related Information

  1. CruiseControl.Net - This is where you can view the current projects that are setup and the status of the last automated build.  If you need to have a project added to CCNet  or need access to add the project yourself, please contact Jeff Braafhart.   The CCNet NUNit Testing example show how to setup CCNET to run the tests in your project as part of the build process. Russell Calaby says we've replaced CCNet with Jenkins, but he basically works the same. "Regarding the remainder of the processes, {Jenkins build server, deployment procedures etc}, please bear with me as I have a few projects ongoing at present but will attempt to squeeze a little in as time permits to create understandable instructions. In the meantime with regards to Jenkins build server, read-up on the documentation/tutorials @"

    This is the address of the ITE Jenkins build server.

  2. Sophos Virus Scan - This is the virus scanned implemented by the Department for the web servers and application that allow the use of upload.  Every file that is uploaded will need to be virus scanned.  Although there are a number of project examples of the code required to do this, the Sophos Command Line Information is a document that show the return codes for the SAV32CLI command line program so that the application can determine what happened during the scan.
  3. What not to do with ASP.Net - You won't be using some of the features of ASP.NET here.

Further Reading

  1. Project Addition and Configuration to the CruiseControl.Net continuous integration server.
  2. MSBuild and Cruise Control.Net
  3. Configuration and Use of AJAX in .NET applications.
  4. Use of Microsoft.NET Master Pages
    If you have any questions regarding setup of you PHP environment or use of any of the framework components please feel free to contact Jeff Braafhart or Justin Carlson.

Database Resources

When designing a database, be sure to follow these general guidelines so that your tables play nicely with our ORM tools.

  1. Make all table and column names singular. - For a table that stores addresses, name it "address", not "addresses".
  2. If a table or column name is a compound word, separate them with underscores. - compound_column_name
  3. Use all lower case characters. - my_table, not My_Table
    Column Lengths and Types - Look here to see what sizes and data types should be used for commonly occuring fields.
Created by Mike Phillips on 2011/06/07 11:21

This wiki is licensed under a Creative Commons 2.0 license
XWiki Enterprise 3.0.36132 - Documentation