Who is required to follow these standards?
Any person or group developing a system that will reside on one of our public web or database servers must follow these standards and guidelines. This includes application developers within LTS.
Who can develop applications?
- Students employed by the Web Development office can develop applications on our servers. These students are supervised and trained to develop applications with the appropriate tools and technologies.
- Students employed by a department on campus who have appropriate background in application development. These students must work closely with the Web Development office and follow the procedures and guidelines.
- Staff with appropriate training. Staff members also need to work with the Web Development office to ensure that these guidelines are followed
What types of applications can be hosted on the production servers?
Applications that provide value to the campus community or the community at large, or applications that help to support the work of a department on campus.
What types of applications cannot be hosted on the production servers?
In order to make sure we serve the needs of our clients, we cannot devote resources to applications that have functionality that can be performed using alternative methods such as Qualtrics, CommonSpot, SharePoint, etc.
For Project Sponsors
I have a need for a web-based application for my department, office, or organization. Who do I talk to?
Please contact Matt Sias at 715-836-3678 or email@example.com to discuss your needs and your options. We employ student application developers that have experience building web-based applications that are waiting to work with you. We may also have built a similar system to the one you're interested in.
How does the development process work?
Usually, your request to build an application is taken before the Software Systems Group, a group made up of LTS and other University staff members who review your request. This group weighs your request against other pending requests and the current queue of work, It also looks at other existing solutions that might fit your needs. Once the request is approved, we'll assign a developer to the project who will work with you to gather more fine-grained requirements. Usually we'll slit larger applications into iterations, and you'll help us decide how features should be split.
We ask that you meet with your developer once a week throughout the duration of the process so that you and the developer can both ensure that progress is made. Your developer will inform you of changes he or she has made, and you'll provide feedback on those changes. Together, you'll move the application forward. From time to time, you'll access your application from our test servers, where you and your staff will put the application through its paces and hopefully uncover any bugs or missing features before launch.
When the project is completed, you'll review and sign off on the completion of the project, and your application is moved to production.
What if my request to have LTS develop an application is denied?
This is rarely the case. The Software Systems Group is designed to help you solve your problems. The group may attempt to provide you with alternatives to developing an application, such as recommendations for purchasing a third-party application, working with Campus Solutions, or working with another existing system currently in use.
What server-side languages do you support?
We develop all new applications using Ruby on Rails, and that is the primary platform we support.
Why don’t you support .Net / Java / Python / PHP / Lisp / Smalltalk / MyFavoriteLanguage?
Our infrastructure is designed first and foremost for the internal development of small- and medium-scale web applications. We have to pick a platform to support, and we don’t have the resources to support every language out there. Ruby on Rails gives us a testable, scalable solution based on well-known conventions, so supporting applications developed by others is much easier.
You may find that learning a new language will open up new possibilities for you and may make you an even better programmer. It can also be quite fun. LTS provides various resources to developers to help them get up to speed.
I am a competent developer and I should be able to test and place my own applications into production. Why do I have to use the staging area?
The development environment in place is used by everyone, including staff and students within LTS Development. Applications that will reside on the web servers managed by LTS Development all go through the same process regardless of the developer of the system.
The development environment is structured in a way that gives developers total freedom to build applications and obtain feedback from users. You may find that you don't need to move to production that often because you have ample time to test your application using the development servers.
Additionally, we simply do not have the resources available to provide deployment support to every developer. If a developer placed code into production that performed poorly or broke the application, we are very likely to be called in to correct the problem because we are responsible for the server.
If you do find limitations, you're encouraged to discuss this with us so that we can find a way to accommodate your needs.
I’m a student and I am developing an application for a course that will be used by a department on campus. How do I get my application to move into production?
Meet with us early before you start your project and develop your application following our guidelines. Your department will need to hire someone to maintain this application once you complete the project. Only students employed by a department can develop applications that will go into production.
Alternatively, the sponsoring department can work with Web Development to develop and maintain the application.
Why does LTS care what methods I use to write my Rails? Why do I have to follow such strict standards?
LTS Development is responsible for maintaining the campus web servers, including any applications you write. We need to be sure that your application will not compromise our web server in terms of performance, availability, or security.
We also need to be able to quickly update or modify applications if needed. Often times, a student will develop a system for a faculty member or department. The system may be in production for some time before a change is needed, and that student has left the university. In most cases, LTS Development is asked to make changes to the application, especially in cases where database servers are migrated to new hardware or an infrastructure change requires the application to be relocated. By requiring outside developers to write applications using the same standards we use, we can improve productivity and make applications easier to maintain.
By requiring outside developers to write applications using the same standards we use, we can improve productivity and make applications easier to maintain.
Remember that anything you write for the university is the property of the university and reflects upon the university. Also, keep in mind that our application servers are State resources and need to be used appropriately.
Where can I go for help with my application?
LTS Development staff and students can assist you with simple development questions, snags, concerns, or problems.
If your application requires functionality you cannot provide, you may consider hiring a student application developer. Student developers are excellent resources because they are familiar with application development strategies as well as our development standards and requirements.
How long will it take for an application to be moved to production once it is submitted?
We deploy applications on Friday mornings during the scheduled maintenance time of 4:00 AM to 7:00 AM.
In order for your application to be eligible for a deployment, we ask that you submit it to us for review at least a week (7 days) in advance. If the application passes our tests then the application is moved to production during the window and you are notified of a successful deployment.
To eliminate any timeframe problems or any unwanted surprises, we want to meet with you when we test your application.
Why does it take so long to move applications to production?
We have to check through the applications to make sure they do not interfere with the day-to-day operation of the web server. This process naturally takes a significant amount of time.
By making sure you have followed the standards, you should be able to create applications that will pass our testing criteria on the first try, eliminating repeated testing, thus speeding up the turnaround time for all developers, not just you.
How is my application moved from development to production?
When you've reached the point where you'd like to launch your site, contact us and set up a meeting to review your site with us. Prior to the meeting, we'll review your code and identify any security holes, performance problems, or logic issues. When we meet with you, we'll walk through your application with you and discuss any potential issues we see.
You can almost always eliminate this problem by meeting with us frequently during the development of your application so we can help you find these problems early on.
Rails applications provide a mechanism to easily test both front-end and back-end logic. We expect Rails applications to have a good test suite developed upon submission for deployment. Meet with us early and often to ensure your tests are appropriate. We'll use tools to scan your code and see where tests need to be written, and we're happy to show you how you can run these same tools as you develop your code.
If there are no problems, we will move your system to production during the next deployment window (Fridays between 4:00 AM and 7:00 AM). At that point, no further changes can be made to the production system unless a critical need arises. You will be required to reschedule your deployment process after you’ve made the necessary adjustments.
What kinds of things do I need to do before I request that my application be moved to production?
- Provide documentation of your system. LTS Development needs accurate documentation about your system so we can support it. Because we maintain the servers, we are often asked by various departments to resolve issues regarding applications running on our server. See the section on Project Documentation requirements for more information.
- Fix any broken links. We will be unable to completely test your system if broken links are found. Be sure to test all of your links.
- Fix any absolute path references. Be sure none of your links contain the full server name. We recommend using variables or constants if you have to reference server names and paths.
- Be sure you have read through and implemented our requirements. Code that does not meet our standards will not be moved to production. This includes documentation!
- Test, Test, Test!
- Have good test coverage. If using Rails, use RSpec and Cucumber. Applications with low test coverage will not be moved into production, as their stability cannot be proven.
- Have your users provide feedback on your application. Have as many people test the application as possible to ensure you have implemented all requirements. Look for possible SQL injection or URL parameter issues and try to break your validations on your forms. The bottom line is if your application crashes in any way, it will not be moved to production.
How do I make changes to a production system?
You can make changes to your production system by changing the version on the development server. When we move your system to the public server, we leave the original version on the development server so you can continue to make changes if necessary.
However, changes to a system will require a completely new request to move to production. Therefore, we advise that you hold off on making changes to a system until you have a significant amount to make it worth the time.
Questions About Application Development?
Call 715-836-3768 or send an email message to Matt Sias, firstname.lastname@example.org.