Software Development Guiding Principles

[av_section min_height=” min_height_px=’500px’ padding=’small’ shadow=’no-shadow’ bottom_border=’no-border-styling’ id=” color=’alternate_color’ custom_bg=” src=’https://ai.umich.edu/wp-content/uploads/2015/07/IMG_16991.png’ attachment=’725′ attachment_size=’full’ attach=’scroll’ position=’top center’ repeat=’no-repeat’ video=” video_ratio=’16:9′ overlay_opacity=’0.5′ overlay_color=” overlay_pattern=” overlay_custom_pattern=”]

[av_heading heading=’Software Development Guiding Principles’ tag=’h3′ style=’blockquote modern-quote’ size=’50’ subheading_active=” subheading_size=’15’ padding=’10’ color=” custom_font=” av-medium-font-size-title=” av-small-font-size-title=” av-mini-font-size-title=” av-medium-font-size=” av-small-font-size=” av-mini-font-size=” custom_class=” admin_preview_bg=”][/av_heading]

[/av_section][av_submenu which_menu=’custom’ menu=’19’ position=’center’ color=’main_color’ sticky=’aviaTBsticky’ mobile=’disabled’]
[av_submenu_item title=’DIG Home’ link=’page,688′ linktarget=” button_style=’av-menu-button av-menu-button-bordered’]
[av_submenu_item title=’Faculty Guide’ link=’page,2281′ linktarget=” button_style=’av-menu-button av-menu-button-bordered’]
[av_submenu_item title=’Contact’ link=’page,957′ linktarget=” button_style=’av-menu-button av-menu-button-bordered’]
[/av_submenu]

[av_section min_height=” min_height_px=’500px’ padding=’small’ shadow=’no-shadow’ bottom_border=’no-border-styling’ id=” color=’main_color’ custom_bg=” src=” attachment=” attachment_size=” attach=’scroll’ position=’top left’ repeat=’no-repeat’ video=” video_ratio=’16:9′ overlay_opacity=’0.5′ overlay_color=” overlay_pattern=” overlay_custom_pattern=”]

[av_one_full first min_height=” vertical_alignment=” space=” custom_margin=” margin=’0px’ padding=’0px’ border=” border_color=” radius=’0px’ background_color=” src=” background_position=’top left’ background_repeat=’no-repeat’]

[av_textblock size=” font_color=” color=” av-medium-font-size=” av-small-font-size=” av-mini-font-size=” custom_class=” admin_preview_bg=”]
The Software Development Team designs and develops innovative software tools that support the improvement of education through personalization at scale. We adapt accepted best practices for software development  to the unique challenges and opportunities at the University of Michigan.
[/av_textblock]

[/av_one_full][/av_section][av_section min_height=” min_height_px=’500px’ padding=’small’ shadow=’no-shadow’ bottom_border=’no-border-styling’ id=” color=’main_color’ custom_bg=” src=” attachment=” attachment_size=” attach=’scroll’ position=’top left’ repeat=’no-repeat’ video=” video_ratio=’16:9′ overlay_opacity=’0.5′ overlay_color=” overlay_pattern=” overlay_custom_pattern=”]

[av_one_full first min_height=” vertical_alignment=” space=” custom_margin=” margin=’0px’ padding=’0px’ border=” border_color=” radius=’0px’ background_color=” src=” background_position=’top left’ background_repeat=’no-repeat’]

[av_heading tag=’h3′ padding=’10’ heading=’The Principles’ color=” style=’blockquote modern-quote modern-centered’ custom_font=” size=’30’ subheading_active=” subheading_size=’15’ custom_class=” admin_preview_bg=” av-desktop-hide=” av-medium-hide=” av-small-hide=” av-mini-hide=” av-medium-font-size-title=” av-small-font-size-title=” av-mini-font-size-title=” av-medium-font-size=” av-small-font-size=” av-mini-font-size=”][/av_heading]

[av_hr class=’custom’ height=’50’ shadow=’no-shadow’ position=’center’ custom_border=’av-border-thin’ custom_width=’50px’ custom_border_color=’#ffcb05′ custom_margin_top=’0px’ custom_margin_bottom=’0px’ icon_select=’yes’ custom_icon_color=’#00274c’ icon=’ue89a’ font=’entypo-fontello’]

[/av_one_full][av_one_third first min_height=” vertical_alignment=” space=” custom_margin=” margin=’0px’ padding=’0px’ border=” border_color=” radius=’0px’ background_color=” src=” background_position=’top left’ background_repeat=’no-repeat’]

[av_textblock size=’20’ font_color=” color=”]
We value innovation and creativity.
[/av_textblock]

[av_textblock size=” font_color=” color=” av-medium-font-size=” av-small-font-size=” av-mini-font-size=” custom_class=” admin_preview_bg=”]
Many of the challenges we are faced with are unique to U-M and are not amenable to off-the-shelf solutions. Accordingly, we need to emphasize the importance of innovation and creativity in the development of technological solutions. Engaging student fellows and interns has proven to be an effective source of innovation and creativity beyond that which the core team can provide.
[/av_textblock]

[/av_one_third][av_one_third min_height=” vertical_alignment=” space=” custom_margin=” margin=’0px’ padding=’0px’ border=” border_color=” radius=’0px’ background_color=” src=” background_position=’top left’ background_repeat=’no-repeat’]

[av_textblock size=’20’ font_color=” color=”]
We begin by understanding our users and their needs through research, testing and collaboration.
[/av_textblock]

[av_textblock size=” font_color=” color=”]
This is an important foundation for building a valuable user experience. Our User Experience Designer leads the effort, along with UXD Student Fellows in the process of User Research, which often includes interviews and focus groups. Part of this process involves examining the tools we propose to develop from a jobs-to-be-done point of view. This lets us contextualize our effort based on the problems our users are trying to solve.
[/av_textblock]

[/av_one_third][av_one_third min_height=” vertical_alignment=” space=” custom_margin=” margin=’0px’ padding=’0px’ border=” border_color=” radius=’0px’ background_color=” src=” background_position=’top left’ background_repeat=’no-repeat’]

[av_textblock size=’20’ font_color=” color=”]
We start each project by creating a minimum viable product. This allows us to get user feedback on a working product early in the process.
[/av_textblock]

[av_textblock size=” font_color=” color=” av-medium-font-size=” av-small-font-size=” av-mini-font-size=” custom_class=” admin_preview_bg=”]
In many ways, we are similar to a lean startup and benefits from adapting techniques that have been shown to be effective for lean startups. One particularly useful concept for many of the projects that we has been involved with is that of the Minimum Viable Product or MVP. Even though we are not as concerned with maximizing return on investment as we are with maximizing potential improvement to the residential student experience, MVP is nonetheless a useful guiding principle.
[/av_textblock]

[/av_one_third][av_one_third first min_height=” vertical_alignment=” space=” custom_margin=” margin=’0px’ padding=’0px’ border=” border_color=” radius=’0px’ background_color=” src=” background_position=’top left’ background_repeat=’no-repeat’]

[av_textblock size=’20’ font_color=” color=”]
We develop using an iterative approach, making changes based on feedback from stakeholders and users.
[/av_textblock]

[av_textblock size=” font_color=” color=”]
We strive to get an early version of any product we develop into the users’ and stakeholders’ hands as early as possible. Quite often this is an early “alpha” version of the product that can be used to elicit feedback. This feedback can then be used to guide further development.
[/av_textblock]

[/av_one_third][av_one_third min_height=” vertical_alignment=” space=” custom_margin=” margin=’0px’ padding=’0px’ border=” border_color=” radius=’0px’ background_color=” src=” background_position=’top left’ background_repeat=’no-repeat’]

[av_textblock size=’20’ font_color=” color=”]
We manage our code with a distributed development workflow.
[/av_textblock]

[av_textblock size=” font_color=” color=” av-medium-font-size=” av-small-font-size=” av-mini-font-size=” custom_class=” admin_preview_bg=”]
Most of our projects involve multiple developers, and as such need to employ a modern, distributed version control system. We use git, and furthermore use the Git Flow model to manage the creation and refinement of features in our software projects.
[/av_textblock]

[/av_one_third][av_one_third min_height=” vertical_alignment=” space=” custom_margin=” margin=’0px’ padding=’0px’ border=” border_color=” radius=’0px’ background_color=” src=” background_position=’top left’ background_repeat=’no-repeat’]

[av_textblock size=’20’ font_color=” color=”]
We automate processes, like application deployment, as much as possible.
[/av_textblock]

[av_textblock size=” font_color=” color=”]
We have developed good working relationships with various groups at U-M to help automate otherwise time-consuming processes such as application deployment, continuous integration, and testing.
[/av_textblock]

[/av_one_third][/av_section]