Professional Development I
Lecture 1
-
project based course
-
gets real-world experience for software development
-
Design-centered, release-driven
-
project-success is primary goal
-
delivers innovative solutions
-
get to know who's who
-
Requires each to select interesting projects, select 8
Lecture 2
Interference Management - Yan
-
3 internet connected device per person
-
will likely triple
-
need to manage interference for efficiency
-
goal is to make different systems work together and in concert
-
many devices, many ideas
-
many apps, many protocols
-
few frequencies, one shared spectrum
-
will implement smart interference management system
-
working with software defined radio
-
cybersecurity and threat intelligence
-
security, privacy, hacking, particularly wireless and mobile
Course Scheduling - Person/Witty pref
-
planning courses – 4 year plan for freshmen, and for others
-
this isn't easy to build
-
many constraints
-
enrollment changes constantly
-
dynamic faculty workload – some teach more, some research more, some have sabbatical
-
no back-up faculty
-
course rotations are uneven
-
faculty has varying expertise
-
Witty and a spreadsheet
-
So let's aggregate, develop possible solutions, adapt, make it web-based
-
explore existing technologies
-
use technologies already supported by CSCE sysadmins
Holland Computing Center - Swanson pref
-
relating to people who come into HCC
-
how to we relate to people who come in?
-
what displays are helpful?
-
How can people visualize things?
-
enabling science
-
have an obligation to explain what's going on in HCC
Plant Vision - Samal
-
Use computer vision to determine and label plants
-
provide monitoring of plants
-
provide image annotation
-
manual measurements
-
time consuming, destructive, inefficient
-
Use CV and other things to annotate semi-automatically, and do so well
-
plant phenotyping, produce benchmarks, use mturkinclude UI, analysis, annotation summary
NE Situational Analysis Tool - Ramamurthy pref
-
management for large-scale serious events
-
takes info from many data sources
-
and provides various interfaces for different platforms and people
-
assist with coordination and colab during a disaster
-
provide a common picture
-
accelerate decision making
-
to be used by emergency responders
Waste-management Coalition - Samal/Choueiry
-
managing waste in Lebanon
-
non-profit grassroots collection to promote sound waste-management in Lebanon
-
critical element of community health
-
mismanagement leads to serious consequences
-
inability of govt to solve
-
monitor w-m activities
-
inform citizens to take action
-
Sponsors, Samal, Amal Ephrem (WMC), Elias Azzi (KTH), Choueiry
-
provide online platform and tools to collect, store, display, communicate facts on w-m in Lebanon
-
collect with chatbots and coalition members
-
Info Access, give recycling options
MathDay - Choueiry pref?
-
Manage math day outreach
-
has 1.5k students from 100 hs in NE
-
top 10 stdents awarded 34k in scholarships
-
needs 300 volunteers
-
and they must be assigned to various tasks
-
requires online application, provides people to apply online
-
verifies and auto-assigns people to tasks, send things out, etc
VR For Structural Engineering - Bourke
-
designing and testing buildings under stresses
-
uses VR to perhaps help to improve structural engineering
-
how to support buildings – going from 2-d views to 3-d
-
simulate mechanical behaviors, deformations, etc
-
uses unity and VR to visualize things such as earthquakes
Session 3: Sponsored roll-outs
NET pref
-
nebraska virtual capitol tour
-
18 spots in/around capitol
-
adapt website to a vr reality environment
-
will work with many vr platforms
-
to work as virtual field trip
-
will be in unity
State Museum pref
-
Morrill Hall
-
want an app to extend stuff into rest of floor
-
iOS/Android
-
focus on parasites
-
augmented reality
-
short vids
-
interactive games, puzzles
-
long-term part of the museum
-
for middle-schoolers/high-schoolers
Madonna Rehab Hospital
-
rehab/research institution
-
building/updating emr for physical therapy
-
software to collect wireless sensor data for more accurate records
-
looking at getting data from multiple switches
-
and furthe use of sensors (wireless imu)
-
include heart rate data
-
pressure and force
-
updating interface
-
product manual
NDOT
-
crash data analysis
-
an update to previous project
-
data from all crashes
-
use to retrieve info for better safety
-
business intelligence tools
-
SQL server
-
SSIS/SSAS/SSRS/Power BI/ER Studio
-
convert to new reporting method
NE Environmental Trust
-
state agency
-
ensuring that each grant application is given to a technical reviewer, and will be done electronically
-
handle electronic invoicing
-
build interface for project manager
-
.net, mvc, aws
Lincoln Public Schools pref
-
safety and security
-
needing to deal with reporting of high-impact security events – and low-impact events
-
emergency management protocol helper app
-
would like to expand
Company Cam
-
information capture for construction contractors
-
update to android
-
hipsters
-
AR
Erudite pref
-
gamifying learning
-
engaging and addictive instructional system
-
giving back to society
-
work on further material
-
updating user interface, adding data reporting/organization
-
work with performance benchmarks
Session 4: Orientation and Roles
-
presentations are a detailed reference, will be on canvas
-
attendance will be taken via N card
-
announcements will be in slack
-
public channel course_announcements – faculty/staff postings, reply via threads
-
private channel for teams – use for team, keep professional
-
private channels can be created as needed
-
public random channel for anything else
-
-
Project assignments – submit the damn survey.
-
team assignments on or by the fourth
-
give highest possible preference
-
maximize preferences for class as a whole
-
-
apply software development expertise towards creation of solution to specific problem
-
Coach
-
missing element of experience for teams
-
students caught between faculty and sponsor for grading
-
take advantage
-
unbiased advocate for the team
-
can provide feedback
-
keep an open mind, no direct stake in the project
-
provide support
-
-
Faculty/Staff
-
help each team succeed
-
tech manager
-
help with dev support, github, azure, slack, website, box
-
equipt mgr
-
-
tribe lead
-
representative to work with dev squads
-
reviews activities, quality
-
provide guidance, direction
-
project management
-
design/architecture
-
product development
-
cs topics/areas of expertise
-
grading
-
team instruction
-
status reporting
-
-
project manager
-
meet with squads, reports status, track progress against processes
-
provide more structure
-
invisible connection across all squads
-
-
sponsors
-
decisions by business value
-
keep big picture in the squad's sight
-
makes decisions as they arise
-
-
squad
-
cross-functional, self-contained
-
select goal, results
-
processes are provided – expect to use these
-
work an hour a week with assigned project manager
-
-
squad lead
-
directly responsible for project team
-
ensures processes and agile values and practices are applied appropriately and followed
-
know and reinforce project and iteration vision and goal
-
lead by serving, serve by leading
-
-
product manager
-
vision, requirements, feature prioritization, scope
-
conceptual integrity
-
kills features
-
manages stories, story maps, product backlog
-
-
dev manager
-
the how
-
design integrity
-
code quality/reviews
-
integration
-
tooling
-
-
need help
-
project manager
-
faculty member
-
-
space and equipment
-
shared team rooms – 28d
-
reservable space
-
110 – W 08:00–11:20, 15:30–18:20
-
119 – TTh 15:30–18:20
-
347 – T 15:30–10:30
-
-
will have to work together during team-time ; critical to work together as a team, even if in another location
-
meeting rooms available in avery, schorr, union, love
-
virtual machines, some laptops will be provided
-
laptops will require extensive check-out
-
will need to be in working order on return
-
virtual machine server
-
instructions will be provided next week
-
azure resources can be provisions as needed
-
to be used only for senior design
-
-
Other policies
-
can go to sponsor
-
if in lincoln, go as needed on own
-
trip insurance needed > 50 miles
-
travel further, requires more work
-
-
Session 5: First Steps and Project Initiation
-
assignments made
-
initial meeting/project kickoff
-
everyone must make it
-
on campus, avery/schorr/library/union
-
between 9 and 5, not overlapping with class time
-
Business Formal
-
must reserve rooms/faculty
-
-
spaces – see previous lecture notes
-
agenda
-
intros
-
general overview, may need to go through processes
-
project vision
-
initial plans
-
share team time schedule
-
determine regular meeting time
-
setup next steps
-
next meeting, tour facilities?
-
-
-
weekly meetings
-
can't overlap, between 9 and 5
-
have agenda
-
take notes, track action items
-
use invites
-
-
assume confidentiality
-
very serious – failure to conduct in professional matter results in failure
-
return or destroy all information
-
-
team times
-
optimize for all
-
8 to 10 hrs
-
1.5 hr blocks, ideally 2-4
-
at least one during business hours
-
no times with <2 members
-
work only on projects
-
send team times to everyone involved
-
-
28d will be assigned to projects needing VR/AR equipment
-
not a course, an experience, should feel like an internship
-
collaborate!
-
process
-
some agile methods will be obvious
-
some methods are course-wide
-
releases will be at 6 times throughout the year
-
-
Initiation
-
initial sponsor meeting
-
team/sponsor bonding
-
common understanding
-
Session 6: Intro to Agile
-
agile methodologies
-
scrum
-
extreme programming
-
RUP
-
-
maps to industry best practices
-
Agile manifesto
-
Values
-
individuals and interactions over processes and tools
-
working software over comprehensive documentation
-
customer collaboration over contract negotiation
-
responding to change over following a plan
-
-
Principles
-
customer satisfaction through early, continueous delivery
-
welcome changing requirements, late in development
-
working software measures progress
-
face-to-face conversations
-
attention to technical excellence and good design
-
simplicity is essential
-
self-organization
-
-
-
Scrum
-
not a process or technique, framework to use process and techniques
-
product back log, sprint backlog, daily scrum meeting, potentially shippable increment
-
self-directed, self-organizing
-
no external addition of work to a sprint
-
daily meetings
-
demo to external stakeholders at end of sprint
-
-
Extreme programming
-
quick, early collaboration
-
-
execution is the focus
Session 7: Design Development Processes
-
Messaging w/ Slack
-
Docs and Storage, Box
-
Source Control w/ GitHub
-
ZenHub for Project tracking
-
Resharper/SQL server for windows dev
-
Github and Zenhub
-
broduct backlog, release backlog, sprint backlog, issues, feature, epic, story, task, bug, hotfix
-
issues get tagged
-
zenhub integrates with the github interface
-
labels can be used for issues and pull requests
-
consistent across projects
-
labels are grouped by color, according to broad themes
-
type – what is it
-
size – how big is it/how many things does it affect
-
value – how important is it
-
flag – things like bugs, change requests (not features/stories), features (things to be done), stories (an action a user might do), tasks (discrete parts of a story)
-
-
sprint planning
-
branch names should be specific and mappable to a specific issue
-
names should be standardized
-
single branch per task
-
single master branch
-
all sub branches need to be pr'd into branch
-
pull latest into the branch
-
-
PRs are to be reviewed by the DM
-
PR should include briefe overview of feature/bug fix
-
link to relevant github issue
-
db server if applicable
-
review the code, ident violations of architecture
-
review db changes
-
check for minor bugs
-
review corresponding backlog
-
-
check for hosting etc
-
azure/aws
-
db
-
mobile dev
-
-
VM ware
-
thinclients
-
vmware horizon client
-
-
Session 8: Vision and User Story Mapping
-
can't force it
-
teach practices and value
-
continuous improvement and support
-
continuous plans are hierarchical
-
stories and epics
-
project vision
-
determine description
-
organizational processes
-
sign offs
-
tech requirements
-
collaboratively with customer taking the lead and team taking it to heart
-
not an artifact, a process
-
To do – what to do
-
in what way – success criteria
-
so that – why it's being done
-
-
Only use what helps!
-
-
release planning
-
what gets done and when
-
more releases, more value
-
-
create a strategic release plan
-
market map, feature menefit map, market events/rhythms, architecture map
-
makes it easier to change direction
-
avoid last/loud priority problem
-
publish/perish
-
-
under promise, over deliver
-
make plans for transitions
-
finding and measuring value
-
backlog – orderd list of ideas for product, kept in order expected to do them
-
Stories
-
as a user-type, I want to do this-function so that I get specific-benefit
-
in order to deliver-some-value, as a user-role, I want some-feature
-
written by customers, estimated by developers, prioritized by customers
-
priortized ast beginning of each iteration is based on value, risk, dependency
-
epics,/stories/bugs/other items
-
management objectives
-
should be simple, easy to understand
-
when large and fuzzy, are epics
-
-
Story mapping
-
backlogs can make it hard to start, what first deliverable will look like, what happens if a story is missed, where the project is
-
github issues aren't perfect, use zenhub instead
-
story mapping aranges work into a helpful shape
-
horizontal axis, order of priority
-
vertical axis, increasing sophistication
-
first horizontal row is the first woring item
-
-
Process
-
determine vision
-
break down into components
-
collect major features
-
create stories
-
add details
-
fill in build estimates
-
…
-
-
People involved
-
SMEs
-
testers
-
UI designers
-
stakeholders
-
developers
-
Session 9: Technical Communications
-
entry level enginerrs spend 40% of time writing, manegerial even more
-
your name is your most valuable asset
-
make sure whatever you put your name on deserves your name
-
first rule of tech comm is know your audience
-
and they aren't you
-
don't make assumptions, learn
-
start and finish professional
-
learn the norm
-
it's all about the people
-
background
-
education
-
profession
-
culture
-
personal
-
-
purpose
-
Experts – highly trained, understand, have experience – get right to the details
-
technicians – practical skils, gets things done, short-medium length sentences, common vocab – no complex theoretical discussion, schematic diagrams, parts lists, step-by-step
-
Manager – coordinates, supervices, doesn't care about theory – determine vocab, make job easy, exec summary, info may be used for higher-level execs
-
Lay person – curiosity, self-interest – simple, jargon in English, analogies and examples, discuss human angle, concentrate on implications
-
Accomodate multiple audience members – use a modular structure
-
presentations
-
highly personal, a few tips
-
plan
-
design
-
deliver
-
Session 10: Agile Stories and the def'n of Done
-
Melanie Kugler-Wright
-
Project Manager
-
20 years w/ Hewlett Packard
-
Worked w/ SAP
-
Financial Systems, Mergers and acquisitions, ecommerce, healthcare, insurance
-
-
Releases
-
DEEP
-
Appropriately detailed
-
estimated – more than just a to-do list, a planning tool
-
emergent – time, budget, qquality are fixed, scope is not – backlogs arre emergent, issues are frozen until more is learned
-
prioritized – issues should be vertically arranged according to business value
-
-
prioritization
-
more organization
-
planning efficiency
-
Use story formats, etc
-
not mini usecases
-
not complete specs
-
not a contract
-
inteded to be interp'd w/o product owner
-
not tasks
-
defining done
-
Iteration processes
-
protection
-
aggre on a definition of done
-
plan your own work
-
Session 11: Working Agreements
-
guidelines dev'd by a team describing how the team works together
-
different backgrounds
-
different generational attidutes
-
different cultural norms
-
built by the team
-
everyone agrees and supports the decisions
-
no do this from on high
-
how should the team behave?
-
how will we know if we're working well?
-
how are disagreements and conflicts handled?
-
interpersonal problems?
-
connection?
-
a crock of it
Session 12: Standups, Status Reports, Retrospectives
-
Can't force agile
-
teach pratices and value
-
continuous improvement and support
-
standups and burn down
-
internal
-
-
status reporting
-
radiating status outward
-
-
program status – tribe lead and PM
Daily Standups
-
normal, daily
-
finding out what's going on
-
coordinate activities on a daily basis
-
what yesterday
-
what today
-
what problems
-
time-box to 10 min
-
stand – remind others to keep it short
-
start and end on time
-
use common location with minimal barriers
-
only squad members can talk
-
meeting for communicating the product vision and organizational goals
-
raise issues and bostacles, not pursue solutions
-
tasks added? not new requirements
-
learn/decide anything new
-
squad leat facilitates meeting
-
don't pressure – should come from peers
-
remove impedimens as quickly as possible
-
increases responsibility
-
update tasks
-
imrove and learn
-
shared languages
Status Reporting
-
increase transparency
-
show progress to stakeholders
-
continuously update backlog
-
burndown charts
-
task boards
-
Issues and Roadblocks – problems, impediments
-
Looking at status
-
release goal
-
iteration
-
how is it going
-
effort into release
-
-
Program status from PM/tribe lead
Retrospectives
-
inspect and adapt
-
look at how, not what
-
do better the next time
-
Steps
-
set the stage
-
gather data
-
generate insights
-
decide what to do
-
close
-
-
Create open environment
-
review everything
Session 13: Agile Estimation
-
releases
-
stable code to validate a solution
-
release planning gives context to stable units
-
subset of application functionality is made available outside of the development team for uncontrolled use
-
not all releases are equal and type of system built has significant impact on how releases are planned
-
code names – have fun
-
-
"I have always found tthat plans are useless, but planning is indispensable." – Dwight D. Eisenhower
-
Planning
-
discover
-
deliver
-
from delivery
-
-
General estimation
-
why estimate – what is he expected margin of error
-
what have you committed to
-
based on things that are measurable
-
average multiple
-
compare previous
-
expert estimation
-
be consistent
-
analyze large errors in retrospectives
-
-
Agile Estimation
-
velocity
-
not time
-
buy-in
-
limits time investment
-
story points
-
-
Planning Poker
-
estimate indepentently
-
share estimates, high and low explain reasoning
-
repeat until convergence
-
Session 14: Dev Team Behaviors – Doug Durham
-
many issues with software
-
Behaviors:
-
Testing
-
unit and integration testing
-
individual and combined units of source code
-
part of the process
-
automated testing
-
-
Working Build
-
Always have a working build
-
demonstrateable build
-
automated build process
-
-
Static analysis
-
remove errors and warnings
-
promotes readable code
-
verification in source code
-
-
Story mapping
-
maintain a story map using design studio sory format
-
arrange stories into a helpful shape
-
-
Definition of done
-
mainain an up-to-date definition of done
-
may have different criteria for different portions of the system
-
-
Estimation
-
estimate stories and assign points in context of design
-
-
Releases
-
Release milestones
-
plan well
-
use git tagging, etc
-
-
Security plan
-
have a security plan for the high risk areas
-
-
Telemetry
-
track performance, use telemetry to inform decisions
-
-
Cadence/Rhythm
-
Maintain consistency
-
-
Session 15: Ethics 1
-
Review engineering ethics – challenger, hyatt walkway
-
Review google maps 2010, Nicaragua/Costa Rica
-
personal dimension
-
comfortable with it later
-
family pride/shame
-
looking back is it a better moment or a worse moment
-
-
Integrity in coding practices
-
be careful of how one does things
Session 16: Testing
-
Acceptance criteria
-
define tests
-
doing so has high return
-
Integrate testing with development
-
each team member is responsible for testing, including writing tests
Session 17: Grad Schools
-
why
-
to teach
-
gain further expertise
-
higher salary
-
Pursue interests in more depth in researrch, contribute to human knowledge
-
-
the Matt Might slides
-
Masters degrees take less time
-
PhDs take 4-6 years
-
Many different areas
-
How?
-
Jan 15 for financial consideration, fall
-
September 1 for Springs
-
Resume
-
3 reference letters
-
transcripts and GRE scores
-
statement of purpose
-
-
Grad Info Day is December 1, email LaRita Lang
Session 18: Testing and Quality
-
be ready to do peer review process
-
testing is a part of development
-
code coverage requirements are useful
Session 19: Refactoring
-
continuous design improvement
-
Know what code smells are
Session 20: Telemetry
-
science of gathering data and transmitting to a distant reciever for interpretation and analysis
-
Why?
-
How is the system running
-
resource usage
-
error rates
-
request/ops rates/volumes
-
crash reportv
-
performance metrics
-
exec timing/profile
-
active db connections
-
infrastructure config
-
-
What are users doing
-
login attemts
-
content access
-
uploads
-
cart added
-
connection established
-
review submitted
-
rotated
-
inactivity
-
-
Who are users?
-
lecation
-
age
-
generation
-
gender
-
language
-
education level
-
field
-
school
-
ethnic affinity
-
income/net worth
-
ownership
-
etc – facebook list
-
-
-
Telemetry is determined by business needs
-
Help to diagnose errors
Session 21: Pair Programming and Continuous Integration
-
Pair programming
-
Driver and Navigator, programmers switch roles frequently
-
navigator considers direction of work
-
Can benefit in many different ways
-
Can have issues – i.e., work preference, intimidation, cost, ego, personal habits, etc.
-
All production code, both parties contribute, change pairs, develop comfortably, end when tired
-
start reasonably, rely on and support your partner, talk a lot
-
continuous integration – merge all workspaces with shared mainline regularly
-
entinsification of periodic integration with incremental/iterative development
-
small pieces of effort, applied frequently
-
unit tests, integration tests, static and dynamic checks
Session 22: More Ethics
-
Nice jab at Project managers
-
personal integrity and professional obligations
-
Ethics goes both ways
Session 23: MVP and Client Management
-
Discovering expectations – unknown to understood
-
Consider rotating organizational positions
-
more releases create more value
-
mvp is minimum viabele product – feedback for where to go next
-
Know expectations
-
Collaborate well