2026-10-01 Alumni visit day! We red team the early drafts of our product definitions.

2026-09-30 Plan hard, build easy. Plan hard build easy. Say it with me again: plan hard, build easy.

All of which means we are exercising discipline to have hard conversations about functionality, platforms, test plans and more now rather than defer them to the point of delivery, when, in reality, there is no ability to do anything about any disagreements or surprises.

It sure is easy to duck hard questions about how to resolve ambiguities. It is easy to ignore the stuff we're teaching, groove on the positive waves of good intentions and proceed like this is some generic programming exercise in a prior class. This lasts up until we have a head on collision with reality once a client tries to use our product. That's the point when all the gaps we covered up start to stick out badly. All at once. Honest: it is a lot less uncomfortable to hammer issues out today than in December. Do your future self a favor and humor me by trying out these active discovery techniques to surface hard issues now. Learn the professional practices by trying them (and seeing a positive outcome) instead of ignoring them (and learning what you should have done.)

2026-09-29 More discussion today about notations available for us to model systems under study. The language we choose nuances what we can express about it, which is why we choose models carefully and with intention to span perspectives.

2026-09-27 A busy new week begins.

As mentioned in last Thursday's lab, I have opened a team engagement poll on the mentors site. Please take a moment to complete this right away. I will harvest it over coffee early Wednesday, so whatever constitutes "end of day" for you on Tuesday is the effective deadline.

Also per lab discussion, let's plan on having each team prepare both a detailed Amazon Press Release and a planning document answering questions according to the Heilmeier Catechism. These should be word documents in project repo ("amazon.docx" and "heilmeier.docx" respectively). For best effect, I suggest not worring about this immediately. First focus on a kick-ass pitch for our visitors on Thursday, factor in their suggestions, feedback and advice, and then bake that new insight into these planning documents. Remember, we are practicing use of our Principles of SE too, so we will check how well the growing base of materials line up. Shoot for having this in sometime NLT "over the weekend" meaning I will check them out over first coffee Monday morning.

2026-09-25 We launch this week with mixed effort but with most teams having enjoyed a substantive exchange with the clients. This gets us something to research as we flesh out design options in prep for pitching to our experts (alumni) on Thursday. Our alumni are ready to give deep insights on ways forward; give them deeply researched designs for consideration.

This weekend, take some time to reflect on all that needs to go into the full spec for approval (the so-called "green light to build.") It's a lot. And it all needs to line up. Remember that principle? "We get confidence in the quality of software by expressing it in multiple, independent ways that can be checked." The spec asks us to express the solution in terms of functionality, cost, test results and much more. We don't want a bag of mixed puzzle pieces that don't look related to one another; we'd love to see a cohesive story colored in about the solution, and supported with piloting. What can we run soon to reduce risk of failure? There are plenty of options.

Yes ... there is much on which to reflect this weekend.

2026-09-24 More discussion today on discovery and the bootstrapping of good projects. Scheduling remains the top challenge in this, but we already know that going in. We'll have much on which to reflect this weekend.

2026-09-23 Nice to see at least some of the teams making contact with clients and organize some initial discovery questions. Good! Let's blow some positive waves your way accordingly. It would be nicer still if we saw more consistent ticketing of the team members who I know were involved but, at least at the moment in the logs, show no sign of activity.

A little more situation awareness will go a long way to succeeding in the class.

2026-09-22 Class was a busy mix of retrospective on scrimmage three, launch of class projects and open discussion about best practices to ramp up on the new assignment. Picking up with discovery on Thursday.

2026-09-21 And we're off on the main class projects! We practiced a lot of things in the scrimmage. Meeting one another. Assessing strengths. Figuring out what we bring to the game. Now is not the time to just toss all that out and launch a new effort just like before. Apply what you practiced and learned.

Yes. There needs to be a pizza in your team's future this week.

Bootstrap fast. No project goes faster than the pace of the first week. Launch slow? Fail slow. Apply your principles, like ... survivability perhaps? Assess risk early and handle it head on. You should be taking active engineering control of the project, so ... what are we going to write down? What gaps need to be filled in, like, yesterday?

Along the way we should prep a team charter. Plan on pushing one to your new team repo by late Friday. We'll talk more of what goes into this tomorrow but arrive to class with ideas about what you think needs to be clarified to get going. After all, you just practiced in the scrimmage. You should have some informed opinions now for what might have made things smoother.

We already suggested some materials from LinkedInLearning. Now you might also take a look at characteristics of high-performing teams.

2026-09-20 Class project tasking is released. Look in your personal repo folder for your specifics, and that will in turn tell you the shared folder where you can find more data. Time to get going!

I think I got all the right links set up in the mentors site, but do please double check and let me know soon if it doesn't show you with the right team information.

2026-09-20 Be sure to have what you need from the group VMs soon. Later this week they will be recycled for other tasks.

2026-09-19 Scrimmage 3 grading summary is released. Saw a lot of good code blended with good intentions too. Plenty of great learning opportunities in this exercise! We will have much about which to talk, and even more to absorb and apply in the class projects coming up.

2026-09-18 Adding ... I'm seeing some great comments and insights in the team reviews. You get it! Glad for this.

2026-09-18 Scrimmages are in! Team reviews are in! Time for a weekend of reflection on what has been going on.

Making decisions about what solves the problem is a whole different kettle of fish isn't it? Having someone else make those decisions so we can just go build them, and grind against known test data, sure simplifies the game a lot. Think about how your team made its decisions, what observations you made that informed the ways forward. What do you think we might make a specific point of doing differently in the class projects coming up?

Software engineering is an exercise in what? Communication. And so far the most common challenge I have seen in scrimmage three has been gold plating the solution - making it harder to build, more elaborate to use. We are projecting way more of our own guesswork and biases into the decisions than we might. Which is to say, we didn't communicate as much as we might. Some teams did so in the last day or two. Good! Better late than not at all, but really -- waiting to find out something important after you build the app is a pretty expensive time to have that chat, wasn't it.

Magically, our discussion topic for Tuesday is ... Discovery! Almost like we want you to dig deeper into properties of the class project early.

Weekends are for reflection. Reflect!

2026-09-17 Lab today with a big mix of practical tech tips and thoughtful discussion intended to draw out best value from these exercises. (Don't just do them. Reflect on what we take from them. Feed your brain.)

2026-09-15 Here is an opportunity to practice in a small way the kind of spec writing task that we will do in the large with our class projects.

Based on this initial project statement interview our virtual client (at TerpAI) and use that information to draft a proposed product definition consistent with the requirements of our timeline document. It is okay to leave out the cost estimate and advertisements/poster at this time.

The intent is that this be effective practice before going into the drafting of our product definitions on the live projects. Hopefully this puts on your radar the kinds of issues to be alert to (and take seriously) before making impactful decisions on your class project.

The virtual agent should appear as the agent CMSC435-101 available to you in your TerpAI dashboard at some point soon. Study the project statement then interview this agent. What must you take away from the client in order to craft an effective plan? Save the dialog from your exchange with the agent and push it as a text file "terpai-dialog.txt" to your repository folder. Then create your draft product definition as Word document "terpai-spec.docx", also to be pushed to your repository folder. We will pull these for evaluation presently. Yes, this is an individual exercise. No, it is not graded. Yes, we think it is important but only for people who want to understand the material and pass the class. You know how we promised to have you practice stuff in the small before having to do it for real in the large? This is an example.

2026-09-15 Discussion today on principles of software engineering - the stuff we will practice applying (and studying with what effects) through balance of semester.

2026-09-12 For those keeping track in advance of the close of schedule adjustment period on Monday, we have accounted for 21 of the 100 available course points. The grade server is up to date. Cipher accordingly.

2026-09-12 Scrimmages 1 and 2 are graded, with summary pushed to group folders. I saw lots of good tech being discussed, and a few fairly effective models were offered in diagrams and video. There were no real crash-burns. (But the semester is young.) Follow your plan and let's see where we are on the coming Friday. Keep close attention to the time you invest on this, and on any decisions you need to change or elaborate in order to ship. If we aren't measuring, we aren't doing engineering. Also take the time to check in on what comments were offered to you by your team members last week on the mentor site. It is now set to the new work week.

2026-09-10 Discussion today about process, planning and no small amount of detail concerning projects due tomorrow.

Also one oops. I invited that you fill me in on your 400-level course experiences, but only had the data loaded up through last semester. My bad. I just reloaded those data, but this reindexes the table, and we lose the entries of the many of you who already responded. So .. thank you for responding quickly, but we need you to re-enter! Sorry about that. Please check to make sure your entries are listed now.

2026-09-10 The 400-level course survey is released at https://vale.cs.umd.edu/mentors/courses (This is a route not linked to the masthead.) Will discuss in lab today. Please complete by end of the day Tuesday (15th) so I can process Wed morning.

Also discussed in lab today will be the peer mentoring practices. Everything you enter this week will be shared with your team members at 9:30PM Friday, then a new week begins. We will use the next week's comments as review, not coaching, and they'll only be used by me as harvested end of the week. Then everything resets and we will being with regular practices on the class project.

2026-09-09 Happy birthday to the first computer bug. We have been chasing all of your descendants for years.

2026-09-08 Discussion today revolved around making the case for why do software engineering, which we did by looking at a number of scenarios where it was done poorly. This tells us the scope of our study is far larger than just programming.

2026-09-06 A revamped mentors site is up. Are there bugs in the new release? I'd like to think not but let's find out. For now a bug bounty is in place: phony baloney bonus points for first report of each (genuine) bug. Now is a safe and relaxed time to get used to this tool.

One real question: there is a poll open now (INQUIRIES->POLLS) and I'd like to see this completed by end of the evening on Tuesday. (This phrasing always translates into "before I make coffee and check it the next morning.")

Try adding some tickets to get used to how it works. We can go over this in class. Don't feel bashful about what you enter for now, since I will reset it all at launch of the big class projects. Same for peer mentoring tips: you should be set with a team that matches your current group. (Some of you are still 'team of one' so let's get this squared away soon!) Offer some feedback, which will be shared at end of the work day on Friday. Again, we will go over this in class.

Noodle around!

2026-09-03 A lab today using Gallup Strengths. Let's find what superhero powers we bring to help our teams win, and let's also use these powers to connect with one another.

To assist in your weekend reflection please consider these supplemental materials. Quality improvement is an on-going game after all.

  • LinkedIn Learning is a useful place to fish for fairly compact tutorials on software process and team practices. The material there by Chris Croft is a very nice starting point. And you can't beat the price.
  • Theme Thursday is a resource I may have mentioned in class. Check it out after you've completed your Strengths reflections. This site features Gallup coaches working with project managers to tease out what the various strengths bring to the game.

2026-09-03 First individual exercises are graded and grade server remains up to date. Students who didn't supply all those files as requested should still do so, since these materials will have additional uses throughout the semeater.

2026-09-02 Two new small exercises to get on your radar. You don't have enough details for how to do these now but you will by end of tomorrow's lab. First will be a one page submission of the Gallup Name it, Claim it, Aim it exercise. Details and examples in the lab, but after you do the practice tomorrow, do it again for real (when you have time to think about it) and submit it in your personal folder as "superhero.pdf" by SOB Tuesday, the 8th. At the same time, submit a one page 'infographic' to pitch yourself to others in the class. Again we will address this is more detail tomorrow but there is a lot of flex in what you offer. Submit this a PDF named for your directory ID. (If your campus directory ID is "morty" then the file will be "morty.pdf".)

Do you notice the pattern here? We are giving a lot of weight to tasks which help us understand what we bring to the game, what strengths we use to bring success to a team, and how we are perceived by others. This is often pretty eye opening, and it gives better context for building solid relationships that are needed in a strong team. It works! (Let me know if any team wants to serve as the control group and use the "make shallow agreements, dial it in over discord, throw over the wall at end" processes. But my thought is: if you would like better project results than in the past then maybe you should try better processes than were used in the past...)

2026-09-01 Since we kicked off discussion today with the question "what will we do to succeed in 435?" it is worth reminding you that we have tips from students in previous semesters on exactly this point.

2026-09-01 The deadline to be on a scrimmage team is the deadline for submitting (as a team) the first scrimmage deliverables, which is Friday the 11th.

Scrimmage 1 (the first group exercise) is a two-foot putt: By 0700 on Friday, September 11, set up your assigned VM as a web server. Put up something that would convince a skeptical visitor landing on that site that the server relies on a database. Ensure your VM itself evidences basic care, maintenance and security. (Some students are cyber mavens - cool, so to be clear, this security directive is not an obligation for you to go nuts with defense!) Per convention for group assignments, please submit a cover sheet, according to the conventions for digital signatures with the template in your group folder. This exercise serves as a forcing function to get everyone on a group in some form or other; it lets us practice conventions for projects; and it is a good opportunity to practice following our "do the right thing" directive.

Heads up! Scrimmage 2 will be due by 9PM that same Friday. This is also an easy target (problem statement is below), but will require talking as a group in order to sort it out. Write a "plan" for how you intend to solve the problem, and provide a lo-fi model of the workflow your solution will support. The deliverable is your plan in Word document as "scrimmage02.docx" and either a Figma, Canva, Powerpoint animation or video animation of the workflow. These materials should persuade an ostensible product manager (like me) that you are on track and can solve my problem. (Cover sheet: yes.) The lo-fi, plan and ultimate product should be consistent with one another.

Scrimmage 3 is due at 5PM the following Friday (September 18). For this just follow your plan. Foreshadowing: by that point we will have surveyed all sorts of simple ways that a product can fail for want of technologists anticipating what users actually need. Your mission is not to replicate such defects in this exercise. Don't just write a program; solve the problem. (Cover sheet: yes.)

The problem - a capability we'd like to have: We'd like to have an easy way to visualize (read: "graph") data from a collection of uniformly-structured spreadsheets.

There, how's that for simple? Give me what I need in order to succeed.

Okay, a few more details are probably in order...

The starting point for this tool is a set of "uniformly-structured spreadsheets" - what are those?

  • I'll be using Excel (XLSX) files having tabular data with some arbitrary number of columns and rows, either of which may or may not be labeled. We should work based on the user designating either the symbolic label used in a row/column or the usual Excel labeling convention for cells.
  • The layout of each sheet in the set is likely to be 'more or less' the same, though sensible engineers will make a product that is robust in the face of variation.
  • We don't particularly know how many sheets there are in any given use but it might be potentially large. We'd like for this to be something the user doesn't have to pay attention to in order to succeed.
  • Examples: I might have sheets generated day by day to track weather properties; I might have stock reports generated week to week showing fluctuation in values; I may have student performance data tracked session to session.

And what do we want to do? Enable the user to select and graph one or some of the properties over the whole set of input files. If sheets capture weather then we might want to identify a TEMP row name and value field(s), then our product will select those values from the set and pop up an appropriate display. If it was stock values, then we'd identify one or some stock ticker values (if they appeared as the labels in each sheet) and display the graph of those over time. If sheets were about student performance then we'd offer the list of student names (again presuming these appear as labels in each sheet) and see the trend of values over time.

Some considerations to put on your radar early: First, we will be pretty concerned with usability and work flow. A system that technically allows visualization but with high-overhead data entry costs is probably a non-starter for us. Next, we are interested in rich display options; flexibility in what we name and how we select them is important. And as noted, we want something more than a toy; let's do this at scale.

Finally:

  • We're not defining many details. "Do the right thing." By now I hope you're all figuring out that ambiguity is something we erase by exercising initiative to find what is necessary for mission success, not something we interpret for our own convenience. The 'client' in this problem seeks a reasonable way to understand more about arbitrary data sets. Help him win this illumination.
  • The VM as assigned to you is available as a shared team resource. That doesn't mean you must do it there or that I would run it there, but it should facilitate coordination. However you reach a solution, though, limit yourself to run time services which are local (to the VM or where I work.) A back door to AWS servers, G**gle environments or any cloud resource in general is a non-starter.
  • We strongly advise that solutions be based on coordinating efforts of all team members. Drawing straws to see who is stuck building the whole system is a great way to fail, not the least of which because I may randomly ask team members to explain or adapt one or another part of the system, and it goes poorly when they don't know what is going on. In any case, I bet this is just beefy enough a problem that there is something for everyone to work on.
  • Engineering is problem solving under constraints. Find the best way forward with the time and resources we have available. A perfect solution which can't be completed until end of semester is not a solution. A toy that only enables simulation, not real analysis, is not a solution. A work flow that demands huge investment of my time to test with all the data from students in this class - or recent semesters - is not a solution.

This is a cool little toy that will let us explore common SE issues in the small before we blindly move ahead to trip over them in the larger project later.

2026-09-01 First class today. We went over some of the practice, made some introductions and got us all going on first assignments. To reproduce here a few points which came up along the way:

  • "On time is late. Two minutes early is three minutes late."
  • The grade server's zero-weight instruments ("phony baloney bonus points") are a way to offer insight on how other professionals might see your performance. We notice! So thanks to the several of you who completed the first assignment before class today - the early initiative got points. So did the intrepid adventurers who were first to engage in class with questions. Thanks! Looking forward to hearing the rest of you engage too!
  • There are many ways we can interact, and commit messages on repository activity is another of them. These let me offer feedback and mentoring tips. If you're not tracking the messages we push from time to time then you aren't getting full value of the course.
  • In steady state our work week will typically be a Tuesday discussion with some kind of lab activity on Thursdays. At start of semester we'll be a little out of cycle while we set a foundation; towards end of semester we'll err on the side of having more team time.
  • Work week is for work. Pour it on. Weekends are for reflection. Let the lessons soak in. If you're not thinking about what happened then you're not learning in this class. Plan accordingly.
  • Scrimmage assignments will be posted presently. Watch this space.
  • Details count!
  • Identify your textbook and support materials now, if you have not already.
  • Bring your Gallup materials to Thursday lab!

2026-08-31 And we're under way in a new semester! Repository credentials will have been emailed to your address of record as of this morning, so per usual convention, if this is a surprise to you then check your spam folder or contact me soon so you can get set up. The initial assignments are due Thursday as detailed in the 2026-08-08 post below. We'll see you in class Tuesday.

We have many small tasks to field right now, and with fast pace. It is for good effect, I promise you, so my best advice is to cheerfully stay up to date with them.

2026-08-08 A new semester is just around the corner. We're sharing the the first assignments for those who want to get an early start.

  • Review our guide on Expectations Management! Please make sure we are all clear about what we're getting into by reviewing the guide Is 435 right for me?

  • Get started on the first assignments! Getting these very small tasks out of the way will keep the decks cleared for more interesting things once the semester arrives.

    1. Purchase your Clifton Strengths assessment. This skills assessment is for our exercises on team building and is available for a student discounted rate from the folks at Gallup: Clifton Strengths for Students (The "Top 5" report is adequate for our needs, but the student version offers those and more at the same price.) Save and study the PDF reports, which are specific to each person; we'll have you place the Signature Themes Report in your Subversion folder (which you will receive first day of semester.) We will use this material in our first lab, so don't be left out.
    2. Update your resume. Prepare this as a PDF document. Please only share details with which you are comfortable. We use the content later in sorting out talents for teams and projects, and to figure out early who knows how to follow directions (which is one of the most basic skill sets of our business.) Place this in a PDF document "resume.pdf" in your repository folder as well.
    3. Prepare a thoughtful statement of what you want to get out of 435. Craft this as a Word document, and place it in your Subversion folder as file "goals.docx".

     

    In general we judge more than just the payload of your submissions, so please remember that evidence of timeliness, preparation and planning always count. Everything you do reflects on you.

  • Students on the waitlist should plan to attend the class from day one and perform the above assignments in anticipation of being admitted to the section. We will issue repository credentials to waitlisted students so you are able to participate in the labs and complete the exercises for on-time credit once you are able to add the class. Let's emphasize this: you must participate and do the work from day one in order to get the credit.

  • Pro tip: Commit to success from day one. We rely on workmanship offered in early assignments when making decisions on teaming and tasking, so consider seriously what we will have to work with. Overall, exercise of initiative in the interest of quality is rewarded, so pay attention, demonstrate decent critical thinking skills and focus on success from the start. Do that and we'll make the semester worth your while.

  • Assignments On the first day of the semester we will email credentials for access to the class repository (which is one of several ways we will communicate this semester) to each student registered. Our first assignments (as above) will be due by SOB on Thursday, September 3rd.

  • Infographic Plan on prepping a simple infographic on yourself to pitch for team members (even if already on a team) for early the following week. You'll have plenty of ideas for how to do this based on our first lab, using resume and Gallup Strengths.

  • Teams We will form four-person teams starting the first day of class. These teams will conduct practice exercises ("scrimmages") early in semester in order to get used to some of the basics before we tackle the class project. You're free to form these teams as you like, though don't panic if you don't know anyone else in class since we'll make time available adjacent to each class in order to meet one another.

Copyright © 2017-2026 James M. Purtilo