Skip to main content

Posts

Creating Stories and Tasks in Jira: Personas and our Software Development Team

Part of the CI/CD Development Series The next step is developing who is on our hypothetical development team. Given that it has a React front end and ColdFusion as the Server Side language, I came up with the following personas, all of which have their own needs and considerations for our development environment. I've listed all the jobs that need doing, not the people involved since, even on a small team or a team of one, these "hats" are all worn by someone, even if it's the same person. Personas for our Project Dev Ops Coordinator - The person responsible for smooth and accurate deployments CF Developer - The person responsible for the API and fulfillment code development and maintenance. React Developer - The person responsible for the front end development Database Coordinator - The person responsible for the schema, data, up time and, presumably the testing databases used by the developers. Lead Developer - The person responsible for coordinat...

Project Creation Steps Table of Contents

Background In March of 2020, I was between projects that the last several learning curves that I'd gone through had left a wide assortment of completed tasks but that I might still have some mental holes in the process. As a result I'm creating an entire project from scratch, soup to nuts so to speak, including all the scaffolding, documentation, tasks, deployment and so on. This page is the reference page for all the blog posts that are part of that project. Table Of Contents Project Launch Jira and Confluence Creating Stories and Tasks in Jira: Personas and our Software Development Team As a Dev Ops Coordinator I would like a tool which allows central creation of diagrams which "live update" in several places. The Three Deployment Environments: Production, Testing, Development As a Dev Ops Admin, I need to plan out our CI/CD process As the Dev Ops Coordinator, I need to set up our git repo into several branches with the appropriate permissions for each o...

Step 1: Jira, Confluence and Scope

I decided to use both Jira Software and Confluence. Jira Software is what most people associate with Jira - it's a ticketing system where,  fundamentally, tasks get put onto cards, those cards are assigned to people who then do them and check them off on the list. Sounds straightforward (like most of IT) but the details make it a little more complicated (again, like most of IT). Confluence is a documentation tool that is meant to be a way for teams to document seemingly everything. Like most of the software, there seems to be several ways to do the same thing. Turning to Jira, I created a new project and chose to do a scrum project. I was thinking of doing a simple Kanban board which is a simpler process, but if you're going to do something, do it full bore. Project created, I was presented with a menu consisting of  - Scrum Board - Empty since we haven't set anything up yet  - Backlog - Ditto  - Active Sprints - Ditto  - Reports - Ditto  - Releas...

Project Launch

It has been a while since I've posted anything which is more to my detriment than anything else. I teach a class at UMASS Lowell and one of the things that I emphasize to my students to journal each week as they go through the learning curves that they have. The major reason for that is that it's very possible to do all the natural floundering around you do as part of learning something, find a winning combination, and then forget how you got there, especially after a few days (hours? minutes?) or not even realize what combination of keystrokes got you to where you are. Over the past year or so, I've dived into several new technologies and techniques ranging from large scale React applications to cloud based testing servers to CI/CD issues. It's been a blast and mostly successful although there were many many of these learning curves where the actual steps to go back and recreate it might not be as smooth as they should be. As a result, I'm starting a series (with...

Mocking Unlocked??

I'm a huge fan of both CommandBox and TestBox from OrtusSolutions and have become a believer in  the usefulness of testing. That in and of itself has had it's benefits in making me a more analytical programmer, understanding flow better, forcing me to write shorter methods, etc. However, for the life of me, I couldn't get to first base on mocking. Conceptually, I knew it was when something was pretending to be something else but I didn't even know enough to understand the documentation (which is more of statement about me than the docs). As a result, I've been using Testbox in a valuable but limited way by using it to run a function without having to go through an interface which may or may not exist yet. The problem is that I wasn't separating it from any other function, table, web call or process with which it interacts. This in an of itself is a valuable process but it's not really unit testing and with that statement comes the following dialogue which ...

Mocking Methods - FINALLY!

This is part of a series of posts on Testing and Mocking . The next (and final) challenge for this evening was to adapt the query method to retrieve the query from another method in the same component rather than the component's property. This is almost identical to the previous except without using a mocking tool we can't easily change a method call or what a function returns at run time. This is our first case of using a tool like MockBox. public function mathFromFunctionQuery( numeric numA, numeric numB){ local .qc=new query(dbtype= "query" , sql= "select answer from sourceQuery where numA=:numA and numB=:numB" ); local .qc.addParam(name= "numA" ,value= arguments .numA); local .qc.addParam(name= "numB" ,value= arguments .numB); local .qc.setAttributes(sourceQuery= this .getQ() ); <---different part. from method, not property. local .res= local .qc.execute().getresult(); return local .res.answer[...

Why Test and Mock - dramatized

The following was a sleep induced dialogue about using mocks in testing and that running tests against each function in isolation,even if it uses actual live code in its dependencies. Q: Why isn't that unit testing? A: Because Unit Testing when you test one function and only that function. Q: Isn't that just semantics and an argument used by testing snobs? Who cares as long as the test is seeing if the code works? A: That might work for simple functions but as soon as your code touches another function you are then testing two functions. So if the code breaks, which function is broken? Q: You run the tests for the other function. It's like bricks, you build and test the code on the "bottom" of the dependency chain and then work your way up. A: Do you have a map of all your code and what depends on what at all times? How do you know in what order to run your tests? Q: Well, once the bottom layer is done, it shouldn't change. A: Ah, so you never refa...