tag:blogger.com,1999:blog-86017015001483283822024-02-07T04:05:15.149+00:00EnableFlorenceinSummerhttp://www.blogger.com/profile/08756287853375074161noreply@blogger.comBlogger133125tag:blogger.com,1999:blog-8601701500148328382.post-31144021946170828562013-05-01T16:54:00.000+01:002013-05-01T16:54:03.457+01:00EA Workshop Newcastle-Upon-Tyne 16 April 2013This was our final EA workshop and Ray and I traveled to Newcastle the day before to ensure we were ready to run it. There were a few changes made to the content of the session, but essentially it was the same. We started with a round of introductions and found that there were several participants with a role that included business and IT planning. However, there were few that had any experience of using EA and Archi. The introduction to EA and to Archi delivered by Ray and Dumebi went well and the participants seemed to enjoy the card exercise as well as getting to grips with Archi. The sample file that was shared helped to speed up the process of creating the first map.<br />
<br />
Although there were very few questions and little discussion during the session, the action planning exercise and the feedback at the end of the workshop suggested that they had all found the workshop helpful in developing their knowledge and skills in EA and Archi. Most were keen to continue their learning and to explore ways to embed this in their organisation.Anonymoushttp://www.blogger.com/profile/17685007740696821777noreply@blogger.com0tag:blogger.com,1999:blog-8601701500148328382.post-75197952343710159832013-03-18T10:56:00.000+00:002013-03-18T10:56:44.024+00:00Workshop reviewStephen, Ray and I met on Friday 15 March to discuss and review the last workshop. We all felt it went well, but there were a number of improvements that we wanted to make. These are summarised below and will be implemented before the next workshop in Newcastle-Upon-Tyne on April 16<br />
<br />
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-yfti-tbllook: 1184;">
<tbody>
<tr>
<td style="border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top">
<div class="MsoNoSpacing">
<b>Advertising
blurb and promotion<o:p></o:p></b></div>
<div class="MsoNoSpacing">
It was agreed to retain the simple non technical
language for the advertising and promotion of the next workshop. We will
continue to aim the workshop at new EA practitioners and those involved with
solving problems in their institution, despite being aware that the full
benefits of using EA will only be realised when its use in integrated in a
range of roles from senior management to technical etc.<o:p></o:p></div>
<div class="MsoNoSpacing">
<br /></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top">
<div class="MsoNoSpacing">
<b>Welcome and
introductions<o:p></o:p></b></div>
<div class="MsoNoSpacing">
It was agreed that this went well, especially the
individual sharing of workshop expectations and experiences of using EA to
date. However, if there is a larger group next time, this might need to be
shortened.<o:p></o:p></div>
<div class="MsoNoSpacing">
<br /></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top">
<div class="MsoNoSpacing">
<b>Introduction to
EA<o:p></o:p></b></div>
<div class="MsoNoSpacing">
It was agreed that this went well. Suggested that the
‘views’ slide be adapted to include more detail and connect with the actual
roles of those present at workshop<o:p></o:p></div>
<div class="MsoNoSpacing">
<br /></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top">
<div class="MsoNoSpacing">
<b>Activity 1 – PEL
jigsaw<o:p></o:p></b></div>
<div class="MsoNoSpacing">
It was agreed that this activity worked well as an
introduction to the concepts of EA. However,
some changes to be made:<o:p></o:p></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l4 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]-->Cards to be reduced to just those required for
the basic PEL process<o:p></o:p></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l4 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]-->PEL process to be given on handout per group<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top">
<div class="MsoNoSpacing">
<b>Introduction to
Archi<o:p></o:p></b></div>
<div class="MsoNoSpacing">
It was agreed that this went very well despite the last
minute change to a virtual presentation! Some changes suggested:<o:p></o:p></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l2 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]-->Examples on PPT to match PEL process<o:p></o:p></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l2 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]-->Core language slide to be simplified to
highlight relevant items<o:p></o:p></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l2 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]-->Handout to be produced of core language<o:p></o:p></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l2 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]-->Business layer slide to be simplified to
highlight relevant items<o:p></o:p></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l2 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]-->Archi relationships slides to be simplified
and to reflect those used in PEL process<o:p></o:p></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l2 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]-->Detail of items to be simplified to highlight
relevant items<o:p></o:p></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l2 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]-->Archimate language to include discussion of
‘newer’ items that are relevant to PEL process e.g. driver/motivation etc<o:p></o:p></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l2 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]-->Layers slide to be simplified to highlight
relevant items<o:p></o:p></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l2 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]-->Using Archi to use screen shot/Archi of
(partial) PEL process and guidance to tools/parts of screen/basic functions
etc<o:p></o:p></div>
<div class="MsoNoSpacing">
<br /></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top">
<div class="MsoNoSpacing">
<b>Activity 2<o:p></o:p></b></div>
<div class="MsoNoSpacing">
It was agreed that participants were easily able to
create the PEL process on Archi. Changes:<o:p></o:p></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l1 level1 lfo3; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]-->Shorten the time for this task<o:p></o:p></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l1 level1 lfo3; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]-->Partial PEL process set up with suitable views
as Archi file to be distributed on USB (or installed on PC’s in training room
prior to session)<o:p></o:p></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l1 level1 lfo3; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]-->Copy of screen shot of partial PEL in Archi as
handout <o:p></o:p></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l1 level1 lfo3; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]-->Facilitators to ensure all participants able
to complete this task<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top">
<div class="MsoNoSpacing">
<b>Activity 3<o:p></o:p></b></div>
<div class="MsoNoSpacing">
Some participants did move onto this task, but not all.
Suggested changes:<o:p></o:p></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l0 level1 lfo4; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]-->Introduce task with discussion of what PEL
process in Archi can tell us (i.e. evidence of weak process)<o:p></o:p></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l0 level1 lfo4; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]-->Set task of adding new parts of process to
Archi (e.g. record keeping and appeals)<o:p></o:p></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l0 level1 lfo4; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]-->Facilitators to ensure all participants able
to complete this task<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top">
<div class="MsoNoSpacing">
<b>Case study<o:p></o:p></b></div>
<div class="MsoNoSpacing">
It was agreed that this went well. Suggested changes:<o:p></o:p></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l3 level1 lfo5; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]-->Create handouts for ‘as is’ and ‘to be’ slides<o:p></o:p></div>
<div class="MsoNoSpacing" style="margin-left: 36.0pt; mso-list: l3 level1 lfo5; text-indent: -18.0pt;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]-->Simplify ‘manual change’ and ‘server down’
slides<o:p></o:p></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0cm 5.4pt 0cm 5.4pt;" valign="top">
<div class="MsoNoSpacing">
<b>Plenary<o:p></o:p></b></div>
<div class="MsoNoSpacing">
It was agreed that the action planning and plenary went
well, although might need to be summarised if many more participants at next
session.<o:p></o:p></div>
</td>
</tr>
</tbody></table>
Anonymoushttp://www.blogger.com/profile/17685007740696821777noreply@blogger.com0tag:blogger.com,1999:blog-8601701500148328382.post-54459445239008242442013-03-04T14:34:00.002+00:002013-05-01T16:25:15.694+01:00EA Workshop Wolverhampton 28 Feb 2013This was our first full workshop and we are pleased to say that it went well!<br />
<br />
There was a late change to the programme as Dumebi was asked to deliver some training in Canada a few days before the session, so she delivered her part of the session via web-conference.<br />
<br />
The majority of participants were new to enterprise architecture and, in the final round-up, all felt confident that they understood the process and how to use Archi software sufficiently well.<br />
<br />
We are due to meet with Stephen in two weeks to review and reflect on the workshop to make any changes ready for the next workshop in AprilAnonymoushttp://www.blogger.com/profile/17685007740696821777noreply@blogger.com0tag:blogger.com,1999:blog-8601701500148328382.post-16275179273573004132013-02-27T11:00:00.000+00:002013-03-18T11:01:43.105+00:00Preparing for the workshopDumebi was unfortunately unable to attend the workshop in person, but offered to deliver her introduction to Archi via web-conference from Canada. We met this morning using Blackboard Collaborate to test out the system. All went well, the sound was particularly clear.Anonymoushttp://www.blogger.com/profile/17685007740696821777noreply@blogger.com0tag:blogger.com,1999:blog-8601701500148328382.post-25146109215317235892013-01-22T09:51:00.001+00:002013-03-18T12:03:10.934+00:00EA Case Studies Webinar<h2>
Jisc Emerging Practices free webinar: Transforming Business Practices with Enterprise Architecture</h2>
On the 16 January we participated in a very successful webinar that introduced two case studies about the use of EA in institutions. JISC Advance hosted the webinar and provided Blackboard Collaborate as the web-conference tool. The webinar was well attended and there was a good discussion. Ray Reid presented a case study about using EA to transform the External Examiners process at Staffordshire University. Stephen Powell from University of Bolton presented on improving faculty business processes.<br />
<br />
Ray had not delivered an online webinar before, and his reflections on the process are below:<br />
<br />
<b>Webinar experience</b><br />
<div>
<br />
I’ve completed my first experience of speaking in and listening to a Webinar, the following is a summary of what I thought of it, hopefully it will prove useful to you when deciding whether this is the route that you should take.</div>
<div>
<b>Tools / Equipment used:</b><br />
<ul>
<li>Blackboard Collaborate (used to be called elluminate)</li>
<li>Toshiba Laptop (Windows 7), Windows XP wasn't as fluid so a reinstall was called for.</li>
<li>External Microphone</li>
<li>External Headphones</li>
</ul>
</div>
<div>
<b>Advantages:</b></div>
<div>
<ul>
<li>Easy to setup, although first run setup can have Java issues, so it would be best to check that you don’t have these by attempting to access the room well in advance to your webinar time.</li>
<li>People don’t have to travel to be in a particular location to participate.</li>
</ul>
</div>
<div>
<b>Disadvantages:</b></div>
<div>
<ul>
<li>No feedback when you’re talking, just silence to keep you company, yes your listeners can ask questions but the feedback which you get whilst talking to people face to face or via Skype is just not there.</li>
<li>Very dependant on attendees’ equipment, so if you have a poor quality microphone you will come across badly to the people who are listening – so it’s best to do a pre-recording if you can, that way you can listen to how you sound. One of our hosts on the day sounded very tinny. </li>
<li>My topic was on Enterprise Architecture, it was difficult to see if the audience was following what I was saying, I had done several run-throughs of my session and had also recorded it, but that still didn't stop me from thinking what I was talking about didn't make sense due to the silence whilst doing it live. I found myself dumbing down my content as I was talking, which in hindsight I don’t think I should've done as it’s very noticeable by all the pauses. </li>
</ul>
</div>
<div>
<br /></div>
<div>
The Webinar can be accessed here: <a href="http://emergingpractices.jiscinvolve.org/wp/webinar-applying-ea/">http://emergingpractices.jiscinvolve.org/wp/webinar-applying-ea/</a></div>
<div>
Ray Reid. <br />
<br /></div>
Anonymoushttp://www.blogger.com/profile/17685007740696821777noreply@blogger.com1tag:blogger.com,1999:blog-8601701500148328382.post-20824328223879904362012-12-20T10:20:00.001+00:002013-05-01T16:25:31.666+01:00Webinar January 16 2013<br />
<div class="MsoPlainText">
Our next event will be a webinar for anyone
interested in Enterprise Architecture. It's being delivered by Staffordshire
University and University of Bolton on 16th January 2013 (11:45-13:00). The session will include two case studies followed by discussion:</div>
<div class="MsoPlainText">
<br /></div>
<div class="MsoPlainText">
- Staffordshire University (delivered by Ray Reid and Ian
Watts): using EA to transform the management of external examiners</div>
<div class="MsoPlainText">
- University of Bolton (delivered by Stephen Powell):
improving faculty business processes - a mixed methods approach</div>
<div class="MsoPlainText">
<br /></div>
<div class="MsoPlainText">
You can register for the webinar using the following
link: <a href="http://applyingea.eventbrite.com/">http://applyingea.eventbrite.com/</a></div>
Anonymoushttp://www.blogger.com/profile/17685007740696821777noreply@blogger.com0tag:blogger.com,1999:blog-8601701500148328382.post-92149853001457819872012-11-09T15:41:00.001+00:002013-03-18T10:45:08.991+00:00Creative thinking eventsUnfortunately, our event planned for the 6 November with the RSC West Midlands in Wolverhampton had to be re-scheduled for 28 Feb 2013 due to insufficient numbers of participants. We have been wondering if it's just the wrong time of year, or the language we use to describe EA for new users.<br />
<br />
I met with one of the participants from our summer event, and she described EA as a very exciting and useful tool. She has used Archi to create many maps to help with planning and future proofing of plans. She had had 'coaching' from Sam and Fleur to help her develop her skills and she found this the most useful development activity. It's likely that she will present a short case study about her experience at one of our future events.Anonymoushttp://www.blogger.com/profile/17685007740696821777noreply@blogger.com0tag:blogger.com,1999:blog-8601701500148328382.post-42523473267305288752012-11-01T14:36:00.000+00:002013-03-18T14:37:56.083+00:00Impact of workshopI met recently with Sam Scott who had attended the StaffFest event on Enterprise Architecture to ask her if the session had been useful. She currently works in the marketing department with a wide variety of disparate teams on the course data project. She has used her knowledge of EA to create and use several maps to help thinking through the processes and as a way to share her understanding with the various teams. She hopes to use EA to continue to support planning in the future that she hopes will enable her to simplify and make more efficient the existing processes.Anonymoushttp://www.blogger.com/profile/17685007740696821777noreply@blogger.com0tag:blogger.com,1999:blog-8601701500148328382.post-50068055862943207992012-10-09T10:02:00.002+01:002013-03-18T10:45:39.797+00:00Creative ThinkingThe project has been progressing, albeit slowly, over the summer months.<br />
<br />
We met with our project partner, Stephen Powell from Bolton, on 18th September to share our plans for the workshop on 6 November with the RSC, and had some useful feedback.<br />
<br />
We have planned a second workshop for April 2013 (probably the 9 or 16th) in Newcastle with Andrew Stewart.<br />
<br />
Ray and Ian have been working to develop the workshop materials, activities and Powerpoints. Ian and I have created some 'cards' based on the Archi icons to use in the workshop for the initial activity. We hope that by engaging participants with a hands-on activity to create a simple process map with cards they will be able to conceptualise the EA process and be able to transfer to the Archi software easily.<br />
<br />
We are planning to deliver a webinar with Stephen Powell sharing our case studies in January. This may be delivered as part of a face-to-face workshop.<br />
<br />
I have arranged to meet with one of the participants from our first workshop in July to see how they have been implementing EAAnonymoushttp://www.blogger.com/profile/17685007740696821777noreply@blogger.com0tag:blogger.com,1999:blog-8601701500148328382.post-70248602659077601262012-09-20T13:07:00.000+01:002013-03-18T13:09:13.342+00:00JISC MeetingI met with Sarah Davies from JISC today on the phone. We discussed the project activity so far and I agreed to send up dates of the events we had planned. Sarah offered to help with promoting the events to appropriate colleagues.Anonymoushttp://www.blogger.com/profile/17685007740696821777noreply@blogger.com0tag:blogger.com,1999:blog-8601701500148328382.post-90301567951752317832012-09-18T10:00:00.000+01:002013-03-18T13:12:51.696+00:00Partner meetingRay, Ian and I met Stephen Powell today at Staffordshire University. We discussed the workshop event and the webinar and it was good to feel that we are working together effectively on the project.Anonymoushttp://www.blogger.com/profile/17685007740696821777noreply@blogger.com0tag:blogger.com,1999:blog-8601701500148328382.post-74459134576663479042012-07-11T08:50:00.000+01:002012-07-12T09:03:52.544+01:00ArchiMate - training and spreading the wordA colleague and I recently participated in the ArchiMate 2.0 Extensions training, a two day event with the optional Open Group exam at the end of it. With 10 delegates of different expertise levels (and different attitudes to using TOGAF) 7 chose to sit the exam. We decided not to, as we could not commit the time to the revision needed to ensure successful completion, and we have been thinking about qualifications that show how we have applied the knowledge in the real world, as opposed to what has been learnt in the classroom. We were also unsure as to the value of the qualification without that experience, during the event it was clear that some places valued the qualification more than others. <br />
There was a lot for the trainer to fit into the two days (in reality it turned out to be just over 1 and a half days thanks to fitting the exam in at the end of day two). I found it useful in giving me confidence in what I have been doing, and helped me understand the relationships involved in ArchiMate, which has been my biggest barrier (I have been relying heavily on the magic connector in Archi!). I also found that it helped my thinking, along side Sams blogs in here! Feedback from the training showed that people wanted to do more examples, although the training did a number of examples throughout the two days it was clear that people involved wanted more.<br />
My colleague and I had a lot of discussion about how we saw the official training, and how it fit with our own intention to deliver some training through the Benefits Realisation funding from JISC. We realised a couple of things for our (much shorter) events:<br />
<ul>
<li>Value of building up a model needs to be clear at the start, along with the acknowledgement of the amount of work this can take!</li>
<li>Working on 'paper' for the first examples is a good idea before introducing a tool like Archi. But 'paper' on its own can cause problems, using 'signed' post-it notes to allow you to move elements around would be useful for discussion purposes.</li>
<li>There is a quick acceptance that paper will only take you so far before you need a tool like Archi to develop more complex models for examples</li>
<li>Examples for us need to be relevant to HE, perhaps around Assessment, Course Information and Course Development (three popular areas within Staffordshire University)</li>
<li>Group work brings out the best discussions as long as they are with individuals with similar experience (having someone in the group with more experience can cause the team to split) </li>
<li>Group work needs to split people from the same institution into different teams (unless they make up one team, otherwise again the team can split) </li>
</ul>
It is worth noting whilst we were studying away on this Open Group course, we had a number of colleagues attending a one day JISC lead Enterprise Architecture workshop (<a href="http://emergingpractices.jiscinvolve.org/wp/doing-ea-workshop-2/">http://emergingpractices.jiscinvolve.org/wp/doing-ea-workshop-2/</a>) this blog mentions a hands on tutorial <a href="https://fsdsupport.pbworks.com/w/page/27206793/hands%20on%20Archimate">https://fsdsupport.pbworks.com/w/page/27206793/hands%20on%20Archimate</a> that might be useful.<br />
<ul>
</ul>FlorenceinSummerhttp://www.blogger.com/profile/08756287853375074161noreply@blogger.com0tag:blogger.com,1999:blog-8601701500148328382.post-83574647042043499292012-07-09T17:53:00.000+01:002012-07-09T17:55:59.467+01:00Comparing Archimate Views With Process Maps<br />
<div class="MsoNormal">
In a previous post on this blog about <a href="http://jiscenable.blogspot.co.uk/2012/03/using-archimate-in-enable-project.html">our use of Archimate</a> I
talked about the difference between Archimate views and business process maps. <span style="background-color: white;">It can be a struggle to find the right level to model at
when creating Archimate views. There is a natural tendency to include too much
process detail, especially if modellers have process mapping expertise. Archimate
views are intended to act as the focus for discussion of issues and trade-offs
between domain experts, not to document process details. Consequently, the goal
of the Archimate modeller is to capture enough information from domain experts
to create the view whilst resisting the temptation to cram all the details into each
view. A 'just enough detail' approach is needed. Because this can be a tricky balancing act, I thought an example of how they
differ might be useful. This post shows how a simple Archimate view can be
derived from a <a href="http://en.wikipedia.org/wiki/Business_Process_Model_and_Notation">Business Process Modelling Notation (BPMN)</a> process map and illustrates
how the resulting Archimate view captures an overview with the BPMN process map
providing the details.</span></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The BPMN process map below, captured as part of the <a href="http://blogs.staffs.ac.uk/coursedata/">StaffsXCRI-CAP Course Data Project</a>, shows the process for creating a postgraduate
course sheet for a new award. The postgraduate course sheet is used to
advertise the award. The process map shows the flow of actions carried out by
staff involved in the process. The horizontal swim lanes denote who does what.
Each of the boxes describes behaviour that occurs in sequence as part of the overall
process. BPMN process maps such as this one describe the process in sufficient
detail that someone given the process map would know what to do to participate
in the process.</div>
<div class="MsoNormal">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKZ4pUPhb4HPJYHMwgptD82VzdsJKBrxcjHxNpr5wfleMV56Ll1PFzsF_yYc44XUUwFv3h7d6i6XXyverB8Fm64tkVb1Nb8j1HVUjOY8mqF7HFQ3iF6D1RLt3Plv0_28AFg322o5KByyc/s1600/bpmn.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="224" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKZ4pUPhb4HPJYHMwgptD82VzdsJKBrxcjHxNpr5wfleMV56Ll1PFzsF_yYc44XUUwFv3h7d6i6XXyverB8Fm64tkVb1Nb8j1HVUjOY8mqF7HFQ3iF6D1RLt3Plv0_28AFg322o5KByyc/s320/bpmn.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">BPMN business process map shows process details</td></tr>
</tbody></table>
</div>
<div class="MsoNormal">
<br />
Throughout the process map there are references to actors,
roles, business objects and other entities that we would want to include in the
Archimate model. These are highlighted in the text of the process map below.<o:p></o:p></div>
<div class="MsoNormal">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEie4-FeWsob-IlpkeGB2NYYTmJjphMsv0eQUizPIIncqc1AJL6DL9sYmf-NypB5l1-bshjK3_faZxnmn6D25b9_MAmLdR0PLdBFwYRyMJpaAgsW6uIzOssyoee2pprX59BsKgl5ATUHQEk/s1600/bpmn+highlighted.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="224" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEie4-FeWsob-IlpkeGB2NYYTmJjphMsv0eQUizPIIncqc1AJL6DL9sYmf-NypB5l1-bshjK3_faZxnmn6D25b9_MAmLdR0PLdBFwYRyMJpaAgsW6uIzOssyoee2pprX59BsKgl5ATUHQEk/s320/bpmn+highlighted.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Text of the process map contains references to Archimate elements</td></tr>
</tbody></table>
</div>
<div class="MsoNormal">
<br />
The highlighted items refer to Archimate elements as
shown in the process map below. The overall process becomes a Business Process
element in the Archimate view. The swimlanes refer to Archimate Roles. The text
describes several Business Objects, software applications and bits of infrastructure
like shared network drives (represented as Technology Nodes).<o:p></o:p></div>
<div class="MsoNormal">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOdzgZMXIOHkNz_rNw2si-YJLIhNHJ-9B4FEaGTvgw8h-bLA84QpwvWTF6cz6CqBsbzstMncEuCU6LIVTWBguMYfzw-odD-QwyHWrgodurbbZoOLTbvgxGxlO7QvHf9e-3bENI4d_RS_g/s1600/bpmn+plus+archimate.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="224" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOdzgZMXIOHkNz_rNw2si-YJLIhNHJ-9B4FEaGTvgw8h-bLA84QpwvWTF6cz6CqBsbzstMncEuCU6LIVTWBguMYfzw-odD-QwyHWrgodurbbZoOLTbvgxGxlO7QvHf9e-3bENI4d_RS_g/s320/bpmn+plus+archimate.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">BPMN process map overlaid with corresponding Archimate elements</td></tr>
</tbody></table>
</div>
<div class="MsoNormal">
<br />
These Archimate elements can be collected into an Archimate
view and relationships and inferred elements added to arrive at the view shown
below.<o:p></o:p><br />
<br /></div>
<div class="MsoNormal">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoZiKRPgsKuv4mmaYl_Jjz20guuxJGl8yUnhzQhDQ4taY3LckNVQLZ9Bii1ZwmIrhp3XXCGxiZT4URF9DldfOpnX76EtjkhvR3gie91GY6aNpIghRxij_qs3ZQ2mO9eCmBn4SKybrkbn8/s1600/pg+course+sheet+creation+archimate.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="196" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoZiKRPgsKuv4mmaYl_Jjz20guuxJGl8yUnhzQhDQ4taY3LckNVQLZ9Bii1ZwmIrhp3XXCGxiZT4URF9DldfOpnX76EtjkhvR3gie91GY6aNpIghRxij_qs3ZQ2mO9eCmBn4SKybrkbn8/s320/pg+course+sheet+creation+archimate.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><br />
Archimate view of the postgraduate course creation process</td></tr>
</tbody></table>
<br /></div>
<div class="MsoNormal">
You can see that the Archimate view doesn’t contain any of
the process detail. It only shows that there is a course sheet creation process
which has a range of roles involved in performing it, with business objects and
applications used along the way. The value of this level of modelling might not
be evident from this single view but as more views added to the model, a
critical mass is reached whereupon the model becomes a useful tool for
analysis. Individual actors, roles and business objects can be quickly dragged
into a view and related elements added to find out, for example, what processes an actor or role is involved with or who needs access to particular business objects for what purpose.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
In the <a href="http://jiscdesignstudio.pbworks.com/w/page/29224196/Enable%20project">JISC Enable</a> project we used existing process maps,
corporate process documentation and notes from a series of interviews with
stakeholders as input for the creation of our Archimate models. The approach
shown above works for written documentation in the same way as with process
maps. Pick out references to Archimate elements in the text and add them into
Archimate views.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
To make gathering of the right information easier, we used a
simple template for making notes from interviews which is shown below. The
columns acted as a prompt for us to ask about all aspects of the business architecture
and enough about the other architecture layers to have a good go at creating a
model on the first attempt. This reduced the need to revisit the same areas
with stakeholders because of missing information.<o:p></o:p><br />
<br /></div>
<div class="MsoNormal">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiX4Nqajrcfwt-ntBZSTPD0ZRsZs6riBQ-bQGe8MvpfbZB-pYYqVqLdOiYyKMBf2euDIp30jnEpHP7p0u5RsSQT5R93h-ZL0e1l-GGcHKIiCSkfZE0jjcVgc1yna2LlefGr8seHLHS9sCc/s1600/Notes.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="121" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiX4Nqajrcfwt-ntBZSTPD0ZRsZs6riBQ-bQGe8MvpfbZB-pYYqVqLdOiYyKMBf2euDIp30jnEpHP7p0u5RsSQT5R93h-ZL0e1l-GGcHKIiCSkfZE0jjcVgc1yna2LlefGr8seHLHS9sCc/s320/Notes.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Simple template to promote collection of the right information when talking to stakeholders</td></tr>
</tbody></table>
<br /></div>
<div class="MsoNormal">
At Staffordshire University, everyone who has tried Archimate modelling has found that the process of modelling itself has raised
questions about how everything fits together. Answering these questions has led to improved
understanding of the problems we are trying to solve, improved understanding of
the solutions and improved communication with stakeholders.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-8601701500148328382.post-27162801501279538262012-07-05T12:41:00.000+01:002012-07-10T11:12:28.903+01:00Process Automation and Continuous Integration in the JISC Enable Project<br />
<div class="MsoNormal">
Continuing the JISC Enable Project technology retrospective,
this post describes the approach we have used to automate parts of the software
development process to improve the effectiveness of the development team.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
</div>
<h3>
<span style="background-color: white;">Agile Project Management</span></h3>
<div class="MsoNormal">
The development team works in partnership with the customer to identify required features. We take a <a href="http://en.wikipedia.org/wiki/Scrum_(development)">Scrum</a>-style <a href="http://en.wikipedia.org/wiki/Agile_software_development">agile</a> approach to software development which has the <a href="http://en.wikipedia.org/wiki/Scrum_(development)#Core_roles">core roles</a> of:</div>
<div class="MsoNormal">
</div>
<ul>
<li><span style="background-color: white;">Product owner - who identifies and priorities features to be developed </span></li>
<li><span style="background-color: white;">Development team - who develop features according to self-organised plans</span></li>
<li><span style="background-color: white;">Scrum master - who shields the development team from distractions and removes impediments.</span></li>
</ul>
<br />
<div class="MsoNormal">
In the case of our <a href="http://jiscenable.blogspot.co.uk/2012/05/java-development-in-jisc-enable-project.html">external examiner application</a>, a colleague from our central quality service department acted as product owner and regular meetings were held with the intended user base to keep other stakeholders 'in the loop' with development progress and to show new features of the application as they were developed.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
We use a free online agile project management tool called <a href="https://www.pivotaltracker.com/">Pivotal Tracker</a> to help manage the list of features to be developed and track progress in delivering those features.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Pivotal Tracker supports iterative development processes like Scrum, where development is '<a href="http://en.wikipedia.org/wiki/Timeboxing">time-boxed</a>' into short regular iterations (or sprints in Scrum terminology). In each iteration, typically lasting a week or two, software features are developed by the team. At the end of the iteration, the software is demonstrated to the product owner. Because the product owner gets to see the software regularly as it is evolving, they get a better idea of what they really want from the software. During each iteration, the product owner can change the list of features to be developed by adding, removing and reprioritising features. In this way, the product owner can steer development direction to ensure a higher quality, more appropriate product is developed.</div>
<div class="MsoNormal">
<br /></div>
<h3>
<span style="background-color: white;">The Process Of Delivering A Software Feature</span></h3>
<div class="MsoNormal">
As each feature is developed, the developers follow a process to build and test the feature before it is deployed into production. An <a href="http://en.wikipedia.org/wiki/ArchiMate">Archimate</a> model of our current feature delivery process is shown below. The following sections describe the steps in the process and indicate where we have introduced automation to speed up development.</div>
<div class="MsoNormal">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUDNFy2Tye8xNEy10YXZ_o1k9pylMQVOc32a_u97Z5OJQ0LH1AdlpkukVe6PN_GNXnK4iSQJQD3CpERioVDFcWyJvdLdZ0oLYTy_SG1C20XKuvplXoAKKsdGPdP3cBi4GBpLy1A2Zm44I/s1600/Feature+Development+-+As+Is.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="130" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUDNFy2Tye8xNEy10YXZ_o1k9pylMQVOc32a_u97Z5OJQ0LH1AdlpkukVe6PN_GNXnK4iSQJQD3CpERioVDFcWyJvdLdZ0oLYTy_SG1C20XKuvplXoAKKsdGPdP3cBi4GBpLy1A2Zm44I/s320/Feature+Development+-+As+Is.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Archimate 'as is' view of feature delivery</td></tr>
</tbody></table>
<br />
<h3>
<span style="background-color: white;">Develop Feature (Tests and Code)</span></h3>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-u9rz0ov9w-stJFW4ifBWPI4fgFe5Mvypfnxhnuv3xkl_fqjFKerGsL1_qFBXS5EkW6_2nnizjNLuTfnAtxciTMSMlv9dfGt0uPalqv1WMDzTgw2bX5OTPsFdEoZ5e1UiTtCzikKaSp0/s1600/develop+feature+tests+and+code.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-u9rz0ov9w-stJFW4ifBWPI4fgFe5Mvypfnxhnuv3xkl_fqjFKerGsL1_qFBXS5EkW6_2nnizjNLuTfnAtxciTMSMlv9dfGt0uPalqv1WMDzTgw2bX5OTPsFdEoZ5e1UiTtCzikKaSp0/s1600/develop+feature+tests+and+code.png" /></a></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<span style="background-color: white;">Software features are developed on the Java Platform Enterprise Edition version 6 (Java EE 6) Platform as </span><a href="http://jiscenable.blogspot.co.uk/2012/05/java-development-in-jisc-enable-project.html" style="background-color: white;">described previously</a><span style="background-color: white;"> on this blog. </span></div>
<br />
<h4>
Create Code and Tests Using Integrated Development Environments (IDEs)</h4>
<div class="MsoNormal">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgef3ojmhTylylHHeyUmFxlaxe2xSUAIffEr-I0dKR8hd9h8zuyDkT8lIicSruQ9XcpUmnb10kh6Vl3h1deYoZn8QMDj3R1sv_iCDsA9_PBNl7b0Fn0tUa5CF-tyHZzh06hvAbmK0A8dqI/s1600/intellij.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgef3ojmhTylylHHeyUmFxlaxe2xSUAIffEr-I0dKR8hd9h8zuyDkT8lIicSruQ9XcpUmnb10kh6Vl3h1deYoZn8QMDj3R1sv_iCDsA9_PBNl7b0Fn0tUa5CF-tyHZzh06hvAbmK0A8dqI/s1600/intellij.png" /></a>The developer creates code to implement a feature and also writes code that tests the feature. These tests can be run automatically later in the <a href="http://en.wikipedia.org/wiki/Software_build">software build process</a>. </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The developers use <a href="http://en.wikipedia.org/wiki/Integrated_development_environment">Integrated Development Environments</a> (IDEs) to maximise their productivity. <a href="http://www.jetbrains.com/idea/">IntelliJ IDEA</a> is our primary IDE but we also use <a href="http://netbeans.org/">NetBeans</a> if it is better suited to a particular task.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Our IDEs have a host of features to improve productivity. These include: </div>
<div class="MsoNormal">
</div>
<ul>
<li><span style="background-color: white;">Intelligent coding assistance</span></li>
<li><span style="background-color: white;">Code generation</span></li>
<li><span style="background-color: white;">Easy navigation and search of the <a href="http://en.wikipedia.org/wiki/Codebase">codebase</a> </span></li>
<li><span style="background-color: white;"><a href="http://en.wikipedia.org/wiki/Code_refactoring#Automated_code_refactoring">Automated refactoring</a> </span></li>
<li><span style="background-color: white;"><a href="http://en.wikipedia.org/wiki/Static_program_analysis">Static analysis</a> </span></li>
<li><span style="background-color: white;">Support for languages other than Java</span></li>
<li><span style="background-color: white;">Support for technologies and frameworks we use</span></li>
</ul>
<br />
<h4>
Automated Builds With Maven</h4>
<div class="MsoNormal">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiQtKSZl2K91X6WPcNCg7AGPZ2VYz0KORd_mxAWQvaZDA6R_kv5ADMNb6msnMd8dBaMz3BlVUGzAr32kAwNRBUdovDeDwQMZDJ02ze30NYbyPjbgDdwshj-H5eRjHfnTYJcmnnD2wG1e4/s1600/maven.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiQtKSZl2K91X6WPcNCg7AGPZ2VYz0KORd_mxAWQvaZDA6R_kv5ADMNb6msnMd8dBaMz3BlVUGzAr32kAwNRBUdovDeDwQMZDJ02ze30NYbyPjbgDdwshj-H5eRjHfnTYJcmnnD2wG1e4/s1600/maven.png" /></a>We use <a href="http://maven.apache.org/">Apache Maven</a> to build and manage our software projects. We have used Apache Ant in the past to manage software builds but creation of the build files became too time-consuming. Maven takes a different approach by introducing a standard build lifecycle and a standard project folder structure which, as long as the developer abides by the convention, allows maven to build the software and run tests without the developer having to write any build files. For example, if a developer writes some <a href="http://en.wikipedia.org/wiki/Unit_testing">unit tests</a> and puts them in the /src/test/java folder of the project, Maven will detect and run the tests with each build automatically.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Maven is useful for getting developers to standardise on a project layout which helps new developers to get up to speed more quickly. It is also very easy to work with if you just want to perform the usual type of build activity in your project. If you need to do something that Maven can't accomplish by default or via plugins then it becomes harder to work with.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Maven also helps to manages dependencies of your software on other software libraries. This feature works very well in most instances but manual inclusion or exclusion is sometimes required when project libraries have transitive dependencies on different versions of the same library. </div>
<h4>
Automated Tests With JUnit</h4>
<div class="MsoNormal">
We use the <a href="http://junit.sourceforge.net/">JUnit</a> unit testing framework to run unit tests. <a href="http://en.wikipedia.org/wiki/Unit_testing">Unit testing</a> is the practice of testing individual units of code in isolation from any other units. It is the lowest level of testing in the process. The aim is to ensure that the individual units are performing correctly before they are combined to produce software applications.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The unit testing approach involves setting the unit into a known state, calling an operation on the unit with some known input data and then checking the returned value to ensure it is as expected. Developers write code which performs this setup/test/teardown behaviour. JUnit provides a way to identify tests so that they can be run automatically (by Maven) during a build and provides support for setting up before each test and tidying up afterwards and support for checking the results through use of assertions.</div>
<h4>
Source code management</h4>
<div class="MsoNormal">
When multiple developers are working on the same project, it is important to use a <a href="http://en.wikipedia.org/wiki/Revision_control">source code management</a> tool (a.k.a. version control tool). A source code management tool allows multiple developers to work on the same codebase without overwriting each others changes. It keeps track of the history of changes to the code, allowing changes to be rolled back if required. It can also automatically merge changes from different developers into the latest revision. </div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIg4Ve0jHkZPMxFEKzdd1bbMswMtpbXzZ7t8r9Fb9MvzVDYNKIO-IBvjDDeIqv_1hPj6YW6vh6Eqt7J2OXT4mi-w3AopIXj75rNWjvINl_daiZN6_3wsodb-gJeW0KO7EZxEevWhkaYrs/s1600/subversion.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIg4Ve0jHkZPMxFEKzdd1bbMswMtpbXzZ7t8r9Fb9MvzVDYNKIO-IBvjDDeIqv_1hPj6YW6vh6Eqt7J2OXT4mi-w3AopIXj75rNWjvINl_daiZN6_3wsodb-gJeW0KO7EZxEevWhkaYrs/s1600/subversion.png" /></a></div>
<div class="MsoNormal">
We use <a href="http://subversion.apache.org/">Apache Subversion</a> for source code management. We have a subversion source code repository on one of our servers and all developers 'check out' code from the repository, make changes to it and then commit the changes back to the repository. Support for this process is built into the IDE. </div>
<div class="MsoNormal">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizS2lNFlaHqmpw-KT33fpJqrX3RSkvlxeH1rizT8tqMMxwhV2HJ-khGVG1f_xD__MP5dYVpOA4gqO3tYDH4y9JqbFDltmZ__RqG3dtgXCmTjbTi03HHgbMTf6os4ReXiUuC9g7o0WH6rY/s1600/IDEA+-+vcs+options.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizS2lNFlaHqmpw-KT33fpJqrX3RSkvlxeH1rizT8tqMMxwhV2HJ-khGVG1f_xD__MP5dYVpOA4gqO3tYDH4y9JqbFDltmZ__RqG3dtgXCmTjbTi03HHgbMTf6os4ReXiUuC9g7o0WH6rY/s1600/IDEA+-+vcs+options.png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">IntelliJ IDEA version control menu</td></tr>
</tbody></table>
<br />
<h3>
<span style="background-color: white;">Test (Local Commit)</span></h3>
<div class="MsoNormal">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuZZlWdRUMkV78oHTfvFo-MrgOM-AmSZT8_fE9So3U5AmFS_zWUwUj3OhRCTxEEqirCfl0I8ZrnjuCr1pbOGxrwdZ_j-NqePkUf1V8aWZoEtWwkSbtAgJcp4tIyOjij8oz96fAQY60oTc/s1600/test+local+commit.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuZZlWdRUMkV78oHTfvFo-MrgOM-AmSZT8_fE9So3U5AmFS_zWUwUj3OhRCTxEEqirCfl0I8ZrnjuCr1pbOGxrwdZ_j-NqePkUf1V8aWZoEtWwkSbtAgJcp4tIyOjij8oz96fAQY60oTc/s1600/test+local+commit.png" /></a>The unit tests are run as part of each project build to test the new features that have been developed. All the unit tests are run during every build so that any bug or regression that have might have been introduced in the latest round of development. Because all of the tests are automatically run as part of the build, the developer only has to trigger the build. The unit tests are run locally (on the developers PC) to check that they all pass before the code is committed to the code repository. If the tests do not pass and the developer has a 'broken build' and commits it to the source code repository regardless, other developers who update their code to the latest revision will have the same broken build. For this reason, it is important to get the test passing locally before committing the code.</div>
<div class="MsoNormal">
<br /></div>
<h3>
<span style="background-color: white;">Inspect/Manually Test</span></h3>
<div class="MsoNormal">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXYIdlzQ-7glIfaKoshoWlalajKi_WlekAG2Mcdd_OqEpQTG6AFAMQBWq-m7lnHL07B8HeaKjoq6bVSOfV9XtVySmRbWxueiuRYL5Db0yY_Oowi_WUmUGMO4in8-7m_watlCJV0AeucqE/s1600/inspect+manuall+test.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXYIdlzQ-7glIfaKoshoWlalajKi_WlekAG2Mcdd_OqEpQTG6AFAMQBWq-m7lnHL07B8HeaKjoq6bVSOfV9XtVySmRbWxueiuRYL5Db0yY_Oowi_WUmUGMO4in8-7m_watlCJV0AeucqE/s1600/inspect+manuall+test.png" /></a>Developers perform some manual running and testing of the software by installing it locally and using it as the end user would. IDEs have support for building, deploying and running software which speeds up the development, deployment and testing cycle. Manual testing is most useful to test usability and look and feel issues.</div>
<div class="MsoNormal">
<br /></div>
<h3>
<span style="background-color: white;">Commit</span></h3>
<div class="MsoNormal">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4SDfbl-v3br_uqt1otutEUCibQp_RXTSPIlF7p0bDB4xCS7FGm_lFgxsEkrBHtcGOyn8yMQcBoaI6Qvzx4mvKbHVvehJ5HwvgHzgw2uK93YarPXZjtHPDIaBErpn2LW-jrFcZVvxvvCs/s1600/commit.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4SDfbl-v3br_uqt1otutEUCibQp_RXTSPIlF7p0bDB4xCS7FGm_lFgxsEkrBHtcGOyn8yMQcBoaI6Qvzx4mvKbHVvehJ5HwvgHzgw2uK93YarPXZjtHPDIaBErpn2LW-jrFcZVvxvvCs/s1600/commit.png" /></a>When the developer is happy with the new feature and that the tests are passing, the code is committed to the code repository. This is done from inside the IDE. The subversion code repository configuration is stored in the IDE and the developer can simply select the files to be committed and select the commit option. The developer is then shown a list of the files to be committed and is prompted for a commit message. The developer supplies a commit message describing the changes that have been made to the codebase in this revision. The code is then committed to the repository and the commit message is stored in the change history. Commit messages are important because they allow other developers to identify what happened when which is invaluable when trying to determine which revision to roll back to or update to.</div>
<div class="MsoNormal">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3AXnClfvL1e1LnwUvZHq31r_Nfd9gzX0hN9tEcv0cVLSkb7f3TBE3r8Pp1q9XnNEIyoT1fM-JSTCCXfhMNAZPjsmUqhnPVe2eERy2C6zNfUb0-qzi_kZB0sU0UnP7At-VKhN62b_-59s/s1600/svn+commit+messages.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="230" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3AXnClfvL1e1LnwUvZHq31r_Nfd9gzX0hN9tEcv0cVLSkb7f3TBE3r8Pp1q9XnNEIyoT1fM-JSTCCXfhMNAZPjsmUqhnPVe2eERy2C6zNfUb0-qzi_kZB0sU0UnP7At-VKhN62b_-59s/s320/svn+commit+messages.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Revisions and commit messages - always include a message (unlike some of the examples above)</td></tr>
</tbody></table>
<br />
<h3>
<span style="background-color: white;">Test (Commit Stage)</span></h3>
<div class="MsoNormal">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihhhDnMxkxx_WmxKMIK_QxGkgcavM-UXL5OfH_o2uJH_JqrJ_5vvvDqbPffjPHsfKj7J0hXVOcp1Q38zpt_xhf0Y1nUGm_7lVhX1ZvnjMpnaw5ZCA5CNRUSkLs0b4bHFcFwRLsKKAenqg/s1600/test+commit+stage.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihhhDnMxkxx_WmxKMIK_QxGkgcavM-UXL5OfH_o2uJH_JqrJ_5vvvDqbPffjPHsfKj7J0hXVOcp1Q38zpt_xhf0Y1nUGm_7lVhX1ZvnjMpnaw5ZCA5CNRUSkLs0b4bHFcFwRLsKKAenqg/s1600/test+commit+stage.png" /></a>Once the developer has checked the code for the new feature into the code repository the process moves on to an automated test stage where the same commit tests are run in a different environment (on the build server) to check that the new code is portable and can run in a different environment, i.e. it is not tied to the developer's local setup in any way. </div>
<h4>
Continuous Integration with Jenkins</h4>
<div class="MsoNormal">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUNHxGjkxK0UEF3u1bYJGY5NpO47Vzt-7xqHz9xcFiORzk0BZmrIrlSXGG9LLqeMTNIXwoMSzD5rfwsBhMeyuJqsOIY4v8lVca0pbUWTBmrs-7WJvhjY941hCE7YiilhYONJL7KbxlkSo/s1600/jenkins.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUNHxGjkxK0UEF3u1bYJGY5NpO47Vzt-7xqHz9xcFiORzk0BZmrIrlSXGG9LLqeMTNIXwoMSzD5rfwsBhMeyuJqsOIY4v8lVca0pbUWTBmrs-7WJvhjY941hCE7YiilhYONJL7KbxlkSo/s1600/jenkins.png" /></a>We use <a href="http://jenkins-ci.org/">Jenkins</a>, an open source continuous integration server, to automate many of the operations in our build pipeline. Continuous Integration is the practice of integrating software, created by different developers, frequently, usually at least once a day. The aim is to avoid the situation, often encountered in traditional software development, where integration of software components happens late in a project and leads to significant problems getting the components to work together. With continuous integration, any problems are identified through the automated unit and integration testing which accompanies each build. The problems can be addressed immediately, thereby reducing the risk of the project because integration problems are tackled iteratively rather than in a more risky big bang manner late in the project.</div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRNMDsiSZUyOWgcjEN2M_qgIOzU4JItuYyc8XZvmzGFtx3LYoJBrU_-2UrAuNEzmGuoGP2CDcsT1Ejd7b0XBJM5zZWhbeWm3gNr5PfSwdxGJRX0Gepj_B1IgIXlGj6ctQIkyPpVfUdbsg/s1600/JenkinsDashboard.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRNMDsiSZUyOWgcjEN2M_qgIOzU4JItuYyc8XZvmzGFtx3LYoJBrU_-2UrAuNEzmGuoGP2CDcsT1Ejd7b0XBJM5zZWhbeWm3gNr5PfSwdxGJRX0Gepj_B1IgIXlGj6ctQIkyPpVfUdbsg/s320/JenkinsDashboard.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Jenkins dashboard showing build jobs</td></tr>
</tbody></table>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Jenkins provides a platform for running build jobs. It has support for Maven builds so we take advantage of this to reduce the amount of initial job configuration. To reduce the amount of work even further, we use NetBeans, which has excellent Jenkins support, to create the job in Jenkins from the local Maven project. Strictly speaking, NetBeans has support for <a href="http://en.wikipedia.org/wiki/Hudson_(software)">Hudson</a> rather than Jenkins. Jenkins was originally called Hudson and was developed by a Sun Microsystems employee Kohsuke Kawaguchi. After Oracle Corporation bought Sun Microsystems and took a rather overbearing approach to engagement with the Hudson developer community, the community voted with their feet and created Jenkins as a fork of the Hudson codebase. Oracle continues to develop Hudson in the absence of the community and Jenkins continues its healthy development with regular updates and a multitude of plugins. Setting up a Jenkins installation as a Hudson Builder allows the developer to create build jobs directly from within NetBeans.</div>
<div class="MsoNormal">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJvI7CH2Tfjou58KFkGsJ_xTSXk3ZezctWH9L6imEMj36mIpd7WQG_89VKEeVUqIs8mGIZf7YXIq7x6uyp28XkLAr1NMHzigcM5e_jGSt8csGXot8ofNaf3f1ZKI8EKBX0ORA3ZwEbYUE/s1600/NetBeans+Hudson+Builders.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="268" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJvI7CH2Tfjou58KFkGsJ_xTSXk3ZezctWH9L6imEMj36mIpd7WQG_89VKEeVUqIs8mGIZf7YXIq7x6uyp28XkLAr1NMHzigcM5e_jGSt8csGXot8ofNaf3f1ZKI8EKBX0ORA3ZwEbYUE/s320/NetBeans+Hudson+Builders.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Creating a build job from within NetBeans</td></tr>
</tbody></table>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Jobs can be manually invoked through the Jenkins Web-based interface or automatically triggered via various mechanisms. We set up our Jenkins jobs to be triggered by changes to the code. Each Jenkins job polls the subversion code repository every 10 minutes to see whether the code has changed. When a developer commits new code, within 10 minutes Jenkins will detect that the codebase has changed and will trigger a new build of the associated Maven project. The Maven project will run as it did on developers machines, checking out the source code, running any automated tests and packaging the code into executable software - <a href="http://en.wikipedia.org/wiki/WAR_file_format_(Sun)">Java Web Archive</a> (WAR) files in the case of our web applications.</div>
<h4>
Code Quality Analysis</h4>
<div class="MsoNormal">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYz92yAJkmq4HhVh4MvGld-GGbsX8UH4KMYrcC2eg7XzcCZ83ESr94PjmowKjYJYqsfGJ9iibkfLQEE3ScqYtrKrQXv4Zu86vPlmtmF3oY9SvQPFw0p-lOahKXkQhM514eFbRpgCSWxBs/s1600/sonar.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYz92yAJkmq4HhVh4MvGld-GGbsX8UH4KMYrcC2eg7XzcCZ83ESr94PjmowKjYJYqsfGJ9iibkfLQEE3ScqYtrKrQXv4Zu86vPlmtmF3oY9SvQPFw0p-lOahKXkQhM514eFbRpgCSWxBs/s1600/sonar.png" /></a>We configure each build job in Jenkins to run quality tests on the codebase using a tool called <a href="http://www.sonarsource.org/">SONAR</a>. SONAR reports on code quality and stores the results for each build results allowing downward trends to be identified, analysed and addressed. </div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzInMymx-by9phoOoW73acUQQH2Gcnhb72ER607J3VzG9KdH4HBKyNOaZsvbuswmPskTzk1B610mKJlSvwjVisPh7uZzB9vwQOlnXwCoUzh92akr4NylI-e38zI1mTJVTOWPU86VeIKik/s1600/Sonar.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzInMymx-by9phoOoW73acUQQH2Gcnhb72ER607J3VzG9KdH4HBKyNOaZsvbuswmPskTzk1B610mKJlSvwjVisPh7uZzB9vwQOlnXwCoUzh92akr4NylI-e38zI1mTJVTOWPU86VeIKik/s320/Sonar.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">SONAR dashboard gives an overview of quality metrics for a project</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoNormal">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxbWUuz24JexAAl1M6p6GKTuaDCVJrLD3FwXi1JJBak1FlTQ8xu_Vmky3CQs6lH_1xh0V2EwEnbmBd-1HATspQu8wMeUjLJ4Xvh34pSamEq-6OVoQowgsJwmQ3mQjF9D4a8iI78bylwY8/s1600/SonarTimeMachine.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxbWUuz24JexAAl1M6p6GKTuaDCVJrLD3FwXi1JJBak1FlTQ8xu_Vmky3CQs6lH_1xh0V2EwEnbmBd-1HATspQu8wMeUjLJ4Xvh34pSamEq-6OVoQowgsJwmQ3mQjF9D4a8iI78bylwY8/s320/SonarTimeMachine.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">SONAR Time Machine showing trends in quality metrics</td></tr>
</tbody></table>
<br />
<h3>
<span style="background-color: white;">Deploy Artifact</span></h3>
<div class="MsoNormal">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSNOz2z26VPmbx31SnlPTSI309uLmC2tQYiHh_j66-i93skw2_ZHmB9tlamU8u1Ayykc8tuEd15hMi8giPMAUyDUN0nRoBF6GjINPpTw7HNDpy8Q6QlBXw61-AKIaKQI2ttOuijACrJtc/s1600/deploy+artifact.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSNOz2z26VPmbx31SnlPTSI309uLmC2tQYiHh_j66-i93skw2_ZHmB9tlamU8u1Ayykc8tuEd15hMi8giPMAUyDUN0nRoBF6GjINPpTw7HNDpy8Q6QlBXw61-AKIaKQI2ttOuijACrJtc/s1600/deploy+artifact.png" /></a></div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQCld91z344jbhdIFMFfNcALvHvo4cyEiEfwStLCF9Tlg2OT-z6xD3w9odpUufJy8kJeeL6IGeT-IdrB8Q1OX3t_r62_EClxs4d-MitcD3rQ9Oh5GAAZ-TKVb_jCTwWEJs9PKUt9TWlKs/s1600/artifactory.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQCld91z344jbhdIFMFfNcALvHvo4cyEiEfwStLCF9Tlg2OT-z6xD3w9odpUufJy8kJeeL6IGeT-IdrB8Q1OX3t_r62_EClxs4d-MitcD3rQ9Oh5GAAZ-TKVb_jCTwWEJs9PKUt9TWlKs/s1600/artifactory.png" /></a>If the build job succeeds, the executable WAR file is stored in our artefact repository, <a href="http://www.jfrog.com/products.php">Artifactory</a>. <span style="background-color: white;">Artifactory stores the WAR files from all successful builds along with details of the build. This enables us to reproduce any build when necessary. Deployment of the WAR file to Artifactory is done by the <a href="https://wiki.jenkins-ci.org/display/JENKINS/Artifactory+Plugin">Jenkins Artifactory plugin</a>. The Artifactory plugin adds options to the build job to deploy the artefact and build information.</span><br />
<br />
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinOriaX4rfBAdJW4z5icqIqkvV78sLQRqLXlQTQFXfN7OO5gq9C7P3Um6MaFBtYWxsyhyo_xzbSdUzOTMzkAJAjaY4VZNlpmgkkdq5O10fEQXWO04Dn9uT7y2GAkgAvZ4VyWEjlUNWzjg/s1600/Jenkins+-+Artifactory+plugin.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="154" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinOriaX4rfBAdJW4z5icqIqkvV78sLQRqLXlQTQFXfN7OO5gq9C7P3Um6MaFBtYWxsyhyo_xzbSdUzOTMzkAJAjaY4VZNlpmgkkdq5O10fEQXWO04Dn9uT7y2GAkgAvZ4VyWEjlUNWzjg/s320/Jenkins+-+Artifactory+plugin.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Artifactory options in a Jenkins build job</td></tr>
</tbody></table>
<div class="MsoNormal">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJ38bID1KkOCSs9-rsedbpVXzsnevmXrOK97vvyqNwNOp0G67Loa0dGEfYZ_JTbW1wWC0oRkdSmBdZ_w-3_2nWNNwbviqCofkKzP65q4UPZCDYU676hpKejlBxwJNo_mty1ZVwYxcoi54/s1600/ArtifactoryBuilds.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJ38bID1KkOCSs9-rsedbpVXzsnevmXrOK97vvyqNwNOp0G67Loa0dGEfYZ_JTbW1wWC0oRkdSmBdZ_w-3_2nWNNwbviqCofkKzP65q4UPZCDYU676hpKejlBxwJNo_mty1ZVwYxcoi54/s320/ArtifactoryBuilds.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Artifactory stores the WAR from every build</td></tr>
</tbody></table>
<br />
<h3>
<span style="background-color: white;">Deploy Application To Staging</span></h3>
<div class="MsoNormal">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiz7amNPv0zluvpvrUhG-kXXFa3KZ0FlVJ9nnWB5zgie_ZOsZjnQTfYTa5XJa_w6gmBfNb_VXAiM2ez4_7mudngJR1q5TnclF444NUW2scOv7hv52HREKC109PXZEQk7Rj4jOkGAcqx-vk/s1600/deploy+to+staging.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiz7amNPv0zluvpvrUhG-kXXFa3KZ0FlVJ9nnWB5zgie_ZOsZjnQTfYTa5XJa_w6gmBfNb_VXAiM2ez4_7mudngJR1q5TnclF444NUW2scOv7hv52HREKC109PXZEQk7Rj4jOkGAcqx-vk/s1600/deploy+to+staging.png" /></a>The next step of the build pipeline is to deploy the application to the staging server for further tests. The aim is to test the application in an environment which is as close to the production environment as possible. Currently this is a manual step, performed by a developer. </div>
<h4>
GlassFish</h4>
<div class="MsoNormal">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6V6_QQ6fTCe1cz6GGNSAKkgYPCk6a5JB6Xzx5xTENDz_o9SUXKZElMctCXtJptt1-dZ4n4o6t3gTWgfYJCgLnFu9dQS33hR8hTQhzwmJuigsouPfgT8dbgx-cN5x6J-HnKIyf3WHu7mg/s1600/glassfish+admin.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6V6_QQ6fTCe1cz6GGNSAKkgYPCk6a5JB6Xzx5xTENDz_o9SUXKZElMctCXtJptt1-dZ4n4o6t3gTWgfYJCgLnFu9dQS33hR8hTQhzwmJuigsouPfgT8dbgx-cN5x6J-HnKIyf3WHu7mg/s1600/glassfish+admin.png" /></a>We develop Java enterprise applications and run them on the <a href="http://glassfish.java.net/">GlassFish</a> application server. The developer downloads the WAR file from artifactory and uses the GlassFish Admin Console to deploy it and run it. This takes care of the code side of the application. The database also needs to be updated to work with the new code.<br />
<br /></div>
<div class="MsoNormal">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS3zcbbOZVdSClLNJkku5QtXKPVL_r2h0Mn0MllvtxB4qE4fJex0r9gMafUkAgf8adrWtHTogbGlyUIHw3QiT4QiU9gyosZgJAaUtEZoNz9ksccZB0nfeHfBdgJsI1QOgHK5LPVuYTf4I/s1600/GlassFish+-+external+examiners.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="256" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS3zcbbOZVdSClLNJkku5QtXKPVL_r2h0Mn0MllvtxB4qE4fJex0r9gMafUkAgf8adrWtHTogbGlyUIHw3QiT4QiU9gyosZgJAaUtEZoNz9ksccZB0nfeHfBdgJsI1QOgHK5LPVuYTf4I/s320/GlassFish+-+external+examiners.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">GlassFish administration console</td></tr>
</tbody></table>
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<h4>
MyBatis Migrations</h4>
<div class="MsoNormal">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivkEf3M1uJTNu-0ZIjZCA_E5_AViY6uFkNp5JOD5Z33lYa6wbsGv_vIP6Ffpd0tKdyagDhJfgzEnj02V_QDvMJhYLpHb-HhdMjw2_1tYcB5iN672Ogp6xZMt3xKBWuk4C738hnDbDuTgo/s1600/migrations.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivkEf3M1uJTNu-0ZIjZCA_E5_AViY6uFkNp5JOD5Z33lYa6wbsGv_vIP6Ffpd0tKdyagDhJfgzEnj02V_QDvMJhYLpHb-HhdMjw2_1tYcB5iN672Ogp6xZMt3xKBWuk4C738hnDbDuTgo/s1600/migrations.png" /></a>We use MyBatis Migrations to manage changes to the database schema. <span style="background-color: white;">The </span><a href="http://www.mybatis.org/migrations/index.html" style="background-color: white;">MyBatis Schema Migration System</a><span style="background-color: white;"> (MyBatis Migrations) provides a simple mechanism for versioning and migrating the schema of a database. When a new version of the application is created, if the database schema has changed, we create an SQL script to update the schema to the new schema and another to roll back from the new schema to the old. These scripts are rolled into a versioned migration script which is used by Mybatis Migrations to apply changes to the database. The developer checks the current version of the database using the Migrations tool from the command line on the staging server and updates the schema to the latest version. Once the database has been updated, the application is ready for testing.</span></div>
<div class="MsoNormal">
<span style="background-color: white;"><br /></span></div>
<h3>
<span style="background-color: white;">Test (Acceptance)</span></h3>
<div class="MsoNormal">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiVmiG3WwkfL4F4xPIVpaGt3Onw5Seibrnez-88zHI6vi2NMciH1wVMmNG0C_Hx-yA419X4wPs_XPyjBIS9qsZ0Tco6I88OikzbxyWq-X4OKHftPhJnGkH1e6ss0Y7Sf42GcEWfXvkamY/s1600/test+acceptance.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiVmiG3WwkfL4F4xPIVpaGt3Onw5Seibrnez-88zHI6vi2NMciH1wVMmNG0C_Hx-yA419X4wPs_XPyjBIS9qsZ0Tco6I88OikzbxyWq-X4OKHftPhJnGkH1e6ss0Y7Sf42GcEWfXvkamY/s1600/test+acceptance.png" /></a>The acceptance testing stage is manually invoked one but the acceptance tests are automated using Selenium Web Driver to perform browser actions of the tests. Selenium Web Driver is a tool that allows browser operation to be automated. Using it, we can create automated tests which interact with our applications in the same way that a user would.<br />
<br />
The tests are created using the Selenium IDE which records browser actions as the user interacts with the application.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirkLh2YYHElv2ziafPUIWDZLxQEMTCL5Cha2Uq1PNIexXUmA8t4l_Hiiw4qreSNeTbc4ydrq4lFsOJ4KhvErg5wDE66hHnyNsJXS3bGb-7bKfUu1xMx_ffF4xy3ckoGAE3erpyqdTSvj8/s1600/Selenium-Screenshot.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="235" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirkLh2YYHElv2ziafPUIWDZLxQEMTCL5Cha2Uq1PNIexXUmA8t4l_Hiiw4qreSNeTbc4ydrq4lFsOJ4KhvErg5wDE66hHnyNsJXS3bGb-7bKfUu1xMx_ffF4xy3ckoGAE3erpyqdTSvj8/s320/Selenium-Screenshot.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Selenium IDE showing recorded interactions</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
Using the Selenium IDE, <a href="http://en.wikipedia.org/wiki/Use_case">use cases</a> or <a href="http://en.wikipedia.org/wiki/User_story">user stories</a> can be enacted and recorded. These can be saved as code to be run as automated acceptance tests.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsb-fmjBQuuopXO6yxFmDWBFTVOvM8H7wACXh2v2LIvQvU8AsQ7FBOce4kgM4TqR_CSwCPPTJWkBFMMIL7CtYU9YCPd480qhMSHWBoYruWgo3HwYBVih7Q2by8nvaPgZ2VRQA3VC7EwyU/s1600/Selenium-Screenshot-JUnit.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="235" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsb-fmjBQuuopXO6yxFmDWBFTVOvM8H7wACXh2v2LIvQvU8AsQ7FBOce4kgM4TqR_CSwCPPTJWkBFMMIL7CtYU9YCPd480qhMSHWBoYruWgo3HwYBVih7Q2by8nvaPgZ2VRQA3VC7EwyU/s320/Selenium-Screenshot-JUnit.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Saving interactions as a JUnit test</td></tr>
</tbody></table>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmwW0bTgKSyBXOFwBUTW_TCvuH9ocr23DqkxaebmW4J4eLMc-VSEfn4Mme00-Rp-Oosk_vqcQ20Dmo94Z8JsE1K1d9DqZJDv3reXtOMD2nGmowtXklF0HG-FN_czu25ot3L2NFQP4djzM/s1600/selenium.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmwW0bTgKSyBXOFwBUTW_TCvuH9ocr23DqkxaebmW4J4eLMc-VSEfn4Mme00-Rp-Oosk_vqcQ20Dmo94Z8JsE1K1d9DqZJDv3reXtOMD2nGmowtXklF0HG-FN_czu25ot3L2NFQP4djzM/s1600/selenium.png" /></a><br />
<span style="background-color: white;">With our current setup, the developer runs the automated acceptance tests from their PC. Because we are testing Web applications via the browser we can test from anywhere. </span><span style="background-color: white;">If the acceptance tests pass, the application is ready for deployment to the production server.</span></div>
<div class="MsoNormal">
<span style="background-color: white;"><br /></span><br />
<span style="background-color: white;"><br /></span><br />
<span style="background-color: white;"><br /></span></div>
<h3>
<span style="background-color: white;">Deploy Application To Production</span></h3>
<div class="MsoNormal">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2VRmF32l01DLi7qriFJSrHoS8Zot4aIXBzo9rpdqm6pmq6eypCtMbRDw1ybeIKZsOij1nDx6NyfxvkMc3IdwEElhn78riC3Rdq6tntLsQeBi7kccV8_5cztK1zfSKvyv0OX3X4q5Ktzc/s1600/deploy+to+production.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2VRmF32l01DLi7qriFJSrHoS8Zot4aIXBzo9rpdqm6pmq6eypCtMbRDw1ybeIKZsOij1nDx6NyfxvkMc3IdwEElhn78riC3Rdq6tntLsQeBi7kccV8_5cztK1zfSKvyv0OX3X4q5Ktzc/s1600/deploy+to+production.png" /></a>To update the application on the production server to the latest version, the developer downloads the WAR file from Artifactory and uses the GlassFish admin console to deploy it and uses MyBatis Migrations to migrate the database to the latest schema. <span style="background-color: white;">With the application upgraded the cycle begins again.</span></div>
<div class="MsoNormal">
<span style="background-color: white;"><br /></span></div>
<h3>
<span style="background-color: white;">Next Steps</span></h3>
<div class="MsoNormal">
<span style="background-color: white;">We are working towards implementing </span><a href="http://continuousdelivery.com/" style="background-color: white;">continuous delivery</a><span style="background-color: white;"> and the steps outlined above have been put in place incrementally to move us towards this goal. Continuous delivery is a software development strategy that seeks to reduce the risk involved in releasing software by increasing the frequency of release and automating the release process. We have a number of improvements to make to our build process to automate the remaining manual steps, to add a Web-based interface to allow management of builds in the pipeline and to add smoke tests to check that all is well with the environment and that the deployed application has everything it needs to run in production. </span></div>
<div class="MsoNormal">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggdbSoDQEVeR5f6WvGxKSaT9GPaN06rvl0j-NrbKqlII6jzwoq6ikP1NL_Hh08upc_2BCo6noshDN4rWUwWta4QYaI_C4_0_MTGt2OfdaXxfYrz31RmwDc5VvWyF96TWCSWI4jY9EaH8g/s1600/Feature+Development+-+'Gap'.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="130" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggdbSoDQEVeR5f6WvGxKSaT9GPaN06rvl0j-NrbKqlII6jzwoq6ikP1NL_Hh08upc_2BCo6noshDN4rWUwWta4QYaI_C4_0_MTGt2OfdaXxfYrz31RmwDc5VvWyF96TWCSWI4jY9EaH8g/s320/Feature+Development+-+'Gap'.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">We plan to remove manual steps through automation with Gradle builds</td></tr>
</tbody></table>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
We plan to use <a href="http://www.gradle.org/">Gradle</a> builds to automate the deployment and testing operations in the later stages of our build pipeline and to manage builds pipelines using the <a href="https://wiki.jenkins-ci.org/display/JENKINS/Build+Pipeline+Plugin">Jenkins build pipeline plugin</a>. If you can afford it, there are many commercial tools which will provide this functionality out of the box.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<br />Unknownnoreply@blogger.com4tag:blogger.com,1999:blog-8601701500148328382.post-74333581437011454192012-07-04T14:07:00.000+01:002013-03-18T14:08:09.749+00:00Archi Training<br />
<div class="MsoPlainText">
<span lang="EN-US">Ian Watts and Fleur Corfield attended the </span>ArchiMate 2.0 Certification Training in London on the 3rd and 4th July 2012 </div>
<div class="MsoPlainText">
<o:p></o:p></div>
<div class="MsoPlainText">
<br /></div>
<div class="MsoPlainText">
This was an intensive course run by BiZZdesign intended as a
run-up to sitting the Archimate Certification exam (which neither Ian or Fleur actually sat). Consisted of an introduction to Enterprise Architecture and the
Archimate language followed by a look into the extensions to the Archimate
language.<o:p></o:p></div>
Anonymoushttp://www.blogger.com/profile/17685007740696821777noreply@blogger.com0tag:blogger.com,1999:blog-8601701500148328382.post-61256696801194942042012-06-22T13:56:00.000+01:002013-03-18T10:46:26.555+00:00Creative Thinking Events<span style="background-color: white;">The first workshops as part of our JISC Enterprise Benefits project have now been booked. These workshops will introduce participants to Enterprise Architecture and overview the Archimate software. The first is an internal overview during Staff Fest on the 2 July and the second is in conjunction with the RSC West Midlands in Wolverhampton on the 6 November 2011. This event will be a national session and we hope to include a range of participants. Full booking details will be available soon.</span>Anonymoushttp://www.blogger.com/profile/17685007740696821777noreply@blogger.com0tag:blogger.com,1999:blog-8601701500148328382.post-80809188136977510942012-06-08T10:21:00.001+01:002012-06-08T10:21:27.181+01:00Birth, Death and Resurrection of Senior Management Engagement<p>At the start of the project a new Executive Pro Vice Chancellor (PVC) for Learning and Teaching had been appointed, who was the initial sponsor of the Enable project. The main role of the Executive PVC, was to chair the Senior Management Working Group (consisting of a number of senior faculty staff (Deans and/or Faculty Directors for Learning and Teaching) and a number of Directors/Heads of Services and senior colleagues.  </p> <p>In addition to the start of a new PVC, the then Vice Chancellor had indicated that she would soon be retiring but had yet fixed a date.  This was subsequently confirmed as January 2011.  As a consequence, the academic years 2008/9 and 9/10 were characterised by certain amount of “planning blight” and senior managers being (understandably) cautious in the face of impending change. </p> <p>Not only did the executive start the project in some state of organisational churn, so did the department the Enable team were working from. The Learning Development & Innovation (LDI) team had recently been moved (following an external review) from the University’s Information Service to the Academic Development Institute (led by the Director of Academic Development).</p> <p>After the first four months of the project the Academic Development Institute was abolished and the LDI team (including all Enable project staff) became a standalone team reporting to the Executive PVC.   During this period, senior management engagement with the project was good .  There was also considerable engagement from staff involved in the various change initiatives across the University, and from award leaders, programme managers and Faculty business staff and quality administrators.</p> <p>About 18 months into the project, the Executive PVC left the University (and was not replaced for about a year). Following a fairly lengthy hiatus during which it was unclear (even to the Head of LDI) who the LDI team reported to, it was agreed that the team and the Enable project should report to the Deputy Vice Chancellor through the Director of Academic Policy and Development.   Senior management engagement had waned somewhat during the “hiatus” (but “spoke” engagement had remained good), however the Deputy Vice Chancellor became very receptive to the ideas on managing change and sustaining innovation being promoted by Enable, and a good period of senior management engagement ensued.  However, this period also coincided with the “last days” of the previous Vice Chancellor and the selection and arrival of the new Vice Chancellor, who took up leadership of the University in January 2011. As a result, although engagement with Enable’s ideals was good, translation of this engagement into action was very difficult.  However, this period also saw the opportunity – seized by the Enable team – to initiate the “FLAG” work of Enable on the back of a number of Senior Leadership Team initiatives instigated by the new Vice Chancellor.</p> <p>In June 2011, a new Executive PVC arrived at the University.  At this point, oversight of the LDI team moved into the new PVC’s purview although the Head of LDI continued to report to the Director of Academic Policy and Development who had similarly moved reporting lines.  This move created another “disjoint” in senior management engagement as the new PVC obviously had a great many things to take on board and to plan.   </p> <p>By the end of the project, 7 of the 17 people who attended the first SMWG meeting had left the University, including the Executive PVC. Nevertheless engagement was subsequently renewed and the Executive team has now picked up messages  sent by Enable including the concept of ‘joined up thinking’, and the development of a Change Management role.  This renewed interest was due to the project team able to present a clear message of Enable to the executive thanks to previous experience with communicating with the executive team, along side this the project team were able to use senior management champions to pass the message of Enable on to the executive.</p> <p>Despite the considerable “organizational churn” evidenced above, a constant and stable factor throughout has been a recognised institutional need to ensure curriculum development is responsive to demand.   This included ensuring that policies, processes, and supporting technologies for curriculum/product development were designed in a way that was responsive to the needs of both faculties and learners.   This required flexible management of the existing portfolio including the process for creating new product, along with guidelines and workflows to encourage a culture of innovation.  </p> FlorenceinSummerhttp://www.blogger.com/profile/08756287853375074161noreply@blogger.com0tag:blogger.com,1999:blog-8601701500148328382.post-9836268239451232992012-06-08T09:45:00.001+01:002012-06-11T13:31:44.644+01:00A History of FLAG<h2>
Background</h2>
FLAG was first raised <a href="http://jiscenable.blogspot.com/2011/05/flying-forward.html" target="_blank">Flying forward</a> (May 2011), this blog highlighted the reasons why a tool for supporting course developments focusing Flexible Learning, and in consequence all course developments. FLAG (Flexible Learning Advice and Guidance) has been designed as a support tool, designed to address a number of issues highlighted by Enable. To reiterate the issues here:<br />
<ul>
<li>Difficulty in finding the right advice on course design at the right point </li>
<li>Knowing which source of information would be the best/ most up to date </li>
<li>Identification of champions to support stakeholders engaged in course design </li>
<li>Reduction in faculties having to produce own advice and guidance </li>
<li>Takes burden off staff to hold expert knowledge in the whole process </li>
</ul>
The project blog from May 2011discusses the concerns around doing the project, including adding to an already perceived arduous process and ensuring the right level of stakeholder engagement. <br />
<h2>
Approach</h2>
As previously mentioned in the May 2011 post the project team treated FLAG development as an internal project, which included a full project plan with clear roles and responsibilities and a list of relevant stakeholders. In September a new bog, <a href="http://jiscenable.blogspot.com/2011/09/new-product-design.html" target="_blank">New Product Design</a>, was posted around the approach of FLAG. This blog discusses the issues highlighted from engaging stakeholders across the University with a clear focus on the process of course development, using the baseline information from Enable. This focus with stakeholders helped the project team unpick issues not previously noted by Enable, or reinforced issues noted during the base lining process. <br />
The project team spoke to course developers with examples of the ArchiMate models from the baseline that focused on the different stages of course development. For initial interviews with faculty staff the model was printed out that was then drawn on to update the model to what was taking place internally. It is worth noting that the initial models focused on University level processes, by discussing these with the faculties we were able to capture the unique processes from faculties. <br />
Each updated model was then used to create a best practice workflow broken down into three stages of course development Strategic Approval, Planning, Validation (similar to the stages in the <a href="http://www.celt.mmu.ac.uk/src/?p=343" target="_blank">Manchester Metropolitan University Accreditation! game</a>, also for a screenshot of the game check out the <a href="http://blogs.cetis.ac.uk/sheilamacneill/2011/10/28/accreditation-a-games-based-approach-to-supporting-curriculum-development/" target="_blank">CETIS Blog</a>) These stages were used to help break down the workflow, even with those stages each workflow was one side of A3 paper! These workflows were then taken around for a second round of interviews, and updates, changes and other aspects of course design were then added to the workflows. For example how the faculties engaged with both Partnerships and Quality needed further modification. This round of interviews helped capture the supporting documents used by staff at different points in the flow and where they needed links to useful documents. <br />
After the second round of interviews with the workflows the project team input the master workflow into the Pineapple system. This then helped the team sharpen the workflow, and the links to supporting documentation. Once the workflow had been completed a draft handbook was written to support the use of the software, and both were given to staff within the Learning Development and Innovation team for testing purposes. Successful completion of the tests resulted in the project team promoting FLAG as ‘in pilot’ with faculties & partners and volunteers from each were collected.<br />
At the start of the pilot the volunteers were asked to complete a short online questionnaire asking about how they managed course developments and whether they felt that they focused on traditional course design. At this point the pilot was blogged again. However since the launch of the pilot a number of changes have occurred in the University causing engagement to decrease. The first was the restructure of faculties and schools from 6 to 4, the second was the change in credit structures for modules, and finally the process itself started to go through some change. The changes to the process had a limited impact on the pilot as they have yet to be approved by the committees and in the long term these changes will be of benefit to the project as by putting them straight in to FLAG we can ensure that course design follows the latest process, with the most up to date support documentation.<br />
Due to these changes, and the length of time it takes to go through course development, the project team have left the piloting teams to work on FLAG at their own pace, with a number of emails every 3 weeks ensuring staff are still happy using the tool. Unfortunately recently the project team have been informed that one course design team have stopped using the tool, and we are in the process of organising a meeting to find out the issues that stopped their engagement. The project team are also organising interviews with other staff engaged in the pilot and developing an exit questionnaire for these staff to find out if their approach has been improved by the use of the tool or whether it helped them think outside of the traditional course development box.<br />
Information about FLAG, its models and work flows have been handed over to two new initiatives in the University, the first is the Student Records System which would store information on courses post validation and the other is the JISC funded XCRI-CAP project. The project team also intend to work with the Document Management initiative to discuss opportunities to further develop the tool within that environment.<br />
<h2>
Lessons Learnt</h2>
By using FLAG as a way of starting conversations about course design within faculties it was clear that the ‘uniqueness’ of each faculty was more of a perception within that faculty rather than the reality. This is important to capture to ensure continuing stakeholder engagement – and can help them realise similarities in behaviour.<br />
Start with interviewing senior staff engaged in curriculum design, before interviewing those ‘on the coal face’. This then can highlight the difference between perceived processes and what actually occurs.<br />
It is useful to interview stakeholders in small groups, for example tutors from the same faculty, business and quality administrators from the same faculty, and service teams (partnerships and quality teams are important), before getting a mix of groups together to discuss the models and workflows. <br />
As highlighted in the <a href="http://jiscenable.blogspot.com/2012/01/flag-flying.html" target="_blank">Flying the Flag</a> blog post be prepared for the pilot to take some time, initial engagement with the pilot was high, however as the course development continued some pilots became disengaged with using the software. This could be expected depending on when course teams feel they need the most support. Continued engagement with the course development teams is required at this stage.<br />
Process ownership can be difficult, especially over a large process such as course design and is often easy to ignore in a project. It is important to get buy in from those involved in managing the process so that they can take ownership of updating the tool when the processes change. It is often easy to think around one process owner, but consider a process ownership team for those larger processes.<br />
Make sure you are clear about the purpose of the project is and what its scope is. Although this was a project within Enable using a project plan really helped communicate the scope and purpose of the project, and how if the project was a success the tool would be handed over for further development/ embedding to the process owners, not left with the Enable team.<br />
<br />FlorenceinSummerhttp://www.blogger.com/profile/08756287853375074161noreply@blogger.com0tag:blogger.com,1999:blog-8601701500148328382.post-50943272865953350192012-05-18T12:16:00.000+01:002012-05-18T12:22:10.293+01:00Java Development in the JISC Enable Project<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
In a <a href="http://jiscenable.blogspot.co.uk/2012/03/using-archimate-in-enable-project.html">previous post</a> I outlined the genesis of our external examiner
application and how using the <a href="http://www.archimate.nl/">Archimate</a>
modelling language and <a href="http://archi.cetis.ac.uk/">Archi</a> modelling
tool helped us to secure approval for development. In this post, I describe
the technical architecture of the application and try to highlight what was
important to us and illustrate our line of thinking in choosing and using these
technologies.<br />
<br />
Readers who aren't interested in technical details may want to duck out at
this point. It's also quite a long post!<br />
<h4>
The Business Problem</h4>
To recap the business problem, the University had identified significant
duplication in quality-related business processes. We had gained approval to
develop an application to address duplication in external examiner approval and
reporting processes. The application would provide: <br />
<ul>
<li>an interface for creating and updating information to track the approval and reporting processes</li>
<li>document management capability for sharing the documents and forms used in the processes</li>
<li>reporting capability to provide on-demand reports for sharing with stakeholders.</li>
</ul>
The application would reduce duplication by sharing data,
documents and reports, removing the need to manage local data stores,
manage local document libraries and produce local reports.<br />
<h4>
The Java EE 6 Platform</h4>
We chose to build the external examiner application on the
<a href="http://www.oracle.com/technetwork/java/javaee/tech/index.html">
Java Platform Enterprise Edition Version 6 (Java EE 6).</a>
Java EE 6 comprises a set of Application Programming Interfaces (APIs) to make
development of multi-tiered and distributed enterprise applications easier,
simpler and faster. We chose this platform for the following reasons:<br />
<h5>
We needed to do more with less</h5>
In recent years, we had been unable to replace staff who had left the team.
Demands on the technical team had remained high with new opportunities for
innovation needing to be grasped as they appeared. Consequently, it had been a
case of needing to do more with less. We are always on the look-out for principles, practices
and technologies to maximise efficiency and effectiveness of the team. Java EE 6 had the promise of achieving more with less (and cleaner) code. <br />
<h5>
We wanted the benefits of the Java EE 6 APIs</h5>
Prior to Enable, we had used Apache Tomcat. Tomcat implements the Java
Servlet and JavaServer Pages (JSP) technologies. Applications we created to run
on Tomcat were based on JSPs, servlets and portlets interacting with a database
via the Java Database Connectivity (JDBC) API. This involved writing a
significant amount of code to manage cross-cutting aspects of our applications like security, transactions and
persistence. <br />
<br />
Using an application server instead of Tomcat, we could use the Java EE 6 APIs and services provide by the application server to avoid a lot of the boilerplate code we would previously have written to manage the cross-cutting aspects. An application server implements
the full Java EE Platform so it provides JSP and Servlet implementations and a
host of other APIs including:<br />
<ul>
<li>Enterprise JavaBeans (EJB)
</li>
<li>Java Persistence API (JPA)
</li>
<li>JavaServer Faces (JSF)
</li>
<li>Java Message Service (JMS)
</li>
<li>Contexts & Dependency Injection (CDI)
</li>
<li>Java Transaction API (JTA)
</li>
<li>JavaMail
</li>
</ul>
An application server also allows configuration, tuning and monitoring to be
managed centrally.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjesBC4a2e6UQTWTb4rVVYY5maEmEdpO2lDsPdDi-4I_TtB9YMS6NoktswzueIKA7Y9BkSplTG4qtil1P4HelbbMfxFQzt4E3Zz-IaNdgZKssG9bekSlqIAiRaNvwOlZXadm_uFd0G4_0s/s1600/GlassFish+Admin+Console.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="314" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjesBC4a2e6UQTWTb4rVVYY5maEmEdpO2lDsPdDi-4I_TtB9YMS6NoktswzueIKA7Y9BkSplTG4qtil1P4HelbbMfxFQzt4E3Zz-IaNdgZKssG9bekSlqIAiRaNvwOlZXadm_uFd0G4_0s/s320/GlassFish+Admin+Console.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">GlassFish Administration Console</td></tr>
</tbody></table>
<br />
We chose to use the GlassFish open source application server because it was
the reference implementation for Java EE 6 and the only application server that
supported Java EE 6 at the time.<br />
<h5>
Java EE 6 promised to be simpler than Spring</h5>
An alternative to Java EE would have been to use the Spring framework but we
decided not to use Spring.<br />
Spring was created as a simpler alternative to the overly-complex and
invasive programming model of Java 2 Platform Enterprise Edition (J2EE), Java
EE's predecessor. It emphasized simplicity of application design through use of
dependency injection and aspect-oriented programming. Spring gained widespread
adoption and became for many the obvious choice for enterprise Java development.
We had some experience of Spring and liked the dependency injection and AOP
elements but not use of XML for declarative configuration. Also, the Spring
Framework had grown so much over the years that reacquainting ourselves with its
large feature set was going to be a non-trivial exercise.<br />
<br />
Java EE 6 uses a simplified programming model through use of a convention
over configuration approach. With dependency injection, separation of concerns
and persistence baked into the platform, Java EE 6-based applications promised
to be as lean and mean as equivalent Spring applications, if not more so. Aiming
for reduction in complexity, we opted for Java EE 6 instead of Spring. <br />
<h4>
Architecture of the external examiner system</h4>
An Archimate view of the applications used in the external examiners
application is shown below.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4-5-BZmHQuepjzff50JVE-Ny2gGQw4loQLbPmQZi7QGl56sz5pdlovF7MtavbTEYudz_vTobkH62FQ8ScRb52Ji-HetSm0dMoXUNWkUmG20nclKTXDTFnNxGV5WsGdMb8j_44CMJccoY/s1600/Architecture.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="246" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4-5-BZmHQuepjzff50JVE-Ny2gGQw4loQLbPmQZi7QGl56sz5pdlovF7MtavbTEYudz_vTobkH62FQ8ScRb52Ji-HetSm0dMoXUNWkUmG20nclKTXDTFnNxGV5WsGdMb8j_44CMJccoY/s320/Architecture.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Layered Archimate view of the external examiner application</td></tr>
</tbody></table>
<h5>
GlassFish</h5>
Our application server was the <a href="http://glassfish.java.net/">GlassFish Server Open Source
Edition</a> which is free but follows the usual 'community' model of support,
i.e. you solve your own problems with information gleaned from forums, blogs,
bug tracking systems, etc.<br />
<br />
Initially, we tried initially to run all three applications (External Examiners Web Application, Alfresco, JasperServer) on a single
GlassFish instance. The memory requirements of the combined applications in
production made it impossible to run all three together. Also, Alfresco is
designed to run on Tomcat and, although our attempts to get it running on
Glassfish were initially successful, each Alfresco release brought new
configuration problems so we decided to run a 'vanilla' (default configuration,
bundled) Alfresco instance on Tomcat on a
separate server to avoid unnecessary configuration work.<br />
<h5>
MySQL</h5>
We chose <a href="http://www.mysql.com/">MySQL</a> as our database software because:<br />
<ul>
<li>we had experience of it from previous developments
</li>
<li>it is mature, robust and fast
</li>
<li>it has a large community of users and comprehensive documentation
</li>
<li>it has good free tooling available.</li>
</ul>
We use <a href="http://www.phpmyadmin.net/home_page/">phpMyAdmin</a> for
database management and <a href="http://www.quest.com/toad-for-mysql/">TOAD for
MySQL</a> for efficiently creating queries, generating database migration
scripts and performing the more advanced database manipulation.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfayQOQw5duXTNjNwLRjuEuHYAMdOUPLHzbEYayrANrL-eA9xIozhlUQUwIl_u0xM3RHaYCC_DN4gVPm2PhLV9nKi-hax7qN-KWueE7Qp-25YkX-9hOT5d7XB6Is21Amzvla6Y92M4uVU/s1600/PhpMyAdmin.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="234" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfayQOQw5duXTNjNwLRjuEuHYAMdOUPLHzbEYayrANrL-eA9xIozhlUQUwIl_u0xM3RHaYCC_DN4gVPm2PhLV9nKi-hax7qN-KWueE7Qp-25YkX-9hOT5d7XB6Is21Amzvla6Y92M4uVU/s320/PhpMyAdmin.png" width="320" /></a></div>
<br />
<h5>
Alfresco</h5>
We used Alfresco to provide document management services for the external
examiners application. We used Alfresco as an interim solution to fill the document
management capability gap until a University-wide document management solution is
implemented. The University has a Document Management steering group which has
identified the need for an institutional enterprise document/content/records
management system and gathered requirements for it. Work is progressing to
prepare the business case and procure and implement a system. <br />
<br />
In the absence of a University system, we used <a href="http://www.alfresco.com/products/networks/community/">Alfresco Community</a> - a free
version of the Alfresco open source Enterprise Content Management system. This
is another community-supported offering intended for non-critical environments.
Alfresco was chosen to:<br />
<ul>
<li>provide shared document management functionality for the application
</li>
<li>be similar enough to a University-selected solution to make re-implemention
using the University solution easy
</li>
<li>illustrate the value of document management to gain further grass roots
support for the document management proposal
</li>
<li>get some experience interacting with a document management solution to
inform the University implementation.</li>
</ul>
<ul>
</ul>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6XKJm02bB_2RwUgCIjLYxcYj0IV-0UzuqygWcx-lALHeB9w-XTEZu3V2WnD2AoDW12rjw8CjrhZVkxSANDjlu7suVIxB2dxJSqiMQttd4pLD7MyojBuE8ZoSM7Y2yZ1Ztj1owXK9fHTE/s1600/Alfresco-Share-Upload-Reports-2010-2011.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="256" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6XKJm02bB_2RwUgCIjLYxcYj0IV-0UzuqygWcx-lALHeB9w-XTEZu3V2WnD2AoDW12rjw8CjrhZVkxSANDjlu7suVIxB2dxJSqiMQttd4pLD7MyojBuE8ZoSM7Y2yZ1Ztj1owXK9fHTE/s320/Alfresco-Share-Upload-Reports-2010-2011.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Uploading a report to the external examiners document library</td></tr>
</tbody></table>
<h5>
JasperReports Server</h5>
<a href="http://jasperforge.org/projects/jasperserver">JasperReports
Server</a> was chosen to provide shared reporting functionality to replace
generation of reports directly from the Microsoft Access database and
circulation of them by email. JasperReports Server hosts reports created using
the iReport designer tool. The server allows stakeholders to run and download
reports on demand. We used the JasperReports Server Community Edition which is
free and has the usual community supported approach.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiGUvWJBAJysdd84UiMk5xXEAWsD5J0LVrFA4FZSMmLEyxuzlZ4L6xrpHT2fKvJ-hXmf4Xen4t3-lfjpUC42L4sd0IEHxfy3YwWkNyWZ-Zu8o9IYjWMtWQkfl9Op7z-Fw-lY-zxbl50OI/s1600/JasperServer-CurrenExternalByPartner-Report.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="256" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiGUvWJBAJysdd84UiMk5xXEAWsD5J0LVrFA4FZSMmLEyxuzlZ4L6xrpHT2fKvJ-hXmf4Xen4t3-lfjpUC42L4sd0IEHxfy3YwWkNyWZ-Zu8o9IYjWMtWQkfl9Op7z-Fw-lY-zxbl50OI/s320/JasperServer-CurrenExternalByPartner-Report.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">A report run on the server</td></tr>
</tbody></table>
<h5>
iReport</h5>
<a href="http://jasperforge.org/projects/ireport">iReport</a>
is a free, open source report designer for JasperReports. We used
it to create reports to replace locally generated reports from the Microsoft Access database. We used
TOAD for MySQL to visually design SQL queries to return data from the external
examiner database for each report and used JDBC datasources in the reports so that the reports hosted on JasperReports Server dynamically query the database each
time the report is run.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoxomhdBTvIa_6FDIZfOKePUbvE_WIH7YV_8I5-56hHT4zNOo-T6W_gUGllCSb4FTxaF3u0Ske3kRIihmZ7Gw4sIQZKiprgjXDajUNktAWBbRtElO8e8ISN2qykjZURT5KcdF1ogvMN8c/s1600/TOAD.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="256" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoxomhdBTvIa_6FDIZfOKePUbvE_WIH7YV_8I5-56hHT4zNOo-T6W_gUGllCSb4FTxaF3u0Ske3kRIihmZ7Gw4sIQZKiprgjXDajUNktAWBbRtElO8e8ISN2qykjZURT5KcdF1ogvMN8c/s320/TOAD.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Visual design of a SQL query using TOAD for MySQL</td></tr>
</tbody></table>
<br />
The report is designed using fields from the database.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMbjyCPtcevZmH3tOxtl6DzmYKInH1nSV9Rm-0YCzTE_fXBHBb4cq9BSSMxeY4OyccgDCgzjNodUaX-hucQ6ftOdFMjcRYwn9s07bV2fRQmoAhoTJ9APrUvUS0HNPRw1HYeIUHrc8r8Y4/s1600/iReportDesign.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="256" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMbjyCPtcevZmH3tOxtl6DzmYKInH1nSV9Rm-0YCzTE_fXBHBb4cq9BSSMxeY4OyccgDCgzjNodUaX-hucQ6ftOdFMjcRYwn9s07bV2fRQmoAhoTJ9APrUvUS0HNPRw1HYeIUHrc8r8Y4/s320/iReportDesign.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Designing a report using iReport</td></tr>
</tbody></table>
The report can be previewed and the report source file (XML) can be directly
edited or inspected.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKMFzSN-J9iNRr6-IiBlZCfWYyVaxR0wGjrmtawCyczBKfPYDaV6Dz9JqXgBybiGsKHwTz6lm6wgmzwbgCj1sOdPa5nuSSzVSwZGjO6ZOvt-Tfr6nmULXNX6wuGusFPo8ChNW0XXEmybo/s1600/iReportXML.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="256" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKMFzSN-J9iNRr6-IiBlZCfWYyVaxR0wGjrmtawCyczBKfPYDaV6Dz9JqXgBybiGsKHwTz6lm6wgmzwbgCj1sOdPa5nuSSzVSwZGjO6ZOvt-Tfr6nmULXNX6wuGusFPo8ChNW0XXEmybo/s320/iReportXML.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Editing the XML source of the report</td></tr>
</tbody></table>
Once finished, the compiled report files are deployed to the JasperReports
Server to make them available for use.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlV7vbIxEkXq3tE07v2PPotaWRoNlfLFQVXgUeZ2K3xpH0KAo4nwhaoeARPPP8vzpJngh8MgPaLMmKjn3uCfvnop28YU3piiDkt7ma1WSTZvr_is6UU4SeN764GU7-subwfSEhuMyiO9o/s1600/JasperServer-ReportsList.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="256" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlV7vbIxEkXq3tE07v2PPotaWRoNlfLFQVXgUeZ2K3xpH0KAo4nwhaoeARPPP8vzpJngh8MgPaLMmKjn3uCfvnop28YU3piiDkt7ma1WSTZvr_is6UU4SeN764GU7-subwfSEhuMyiO9o/s320/JasperServer-ReportsList.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">List of reports hosted on the server</td></tr>
</tbody></table>
<h4>
External Examiner Application</h4>
The external examiner application has been developed by the Learning Development and Innovation (LDI) department technical
team. It provides an interface for creating and managing information associated
with the external examiner appointment and reporting processes and a data import
tool to transfer legacy data to the new database.<br />
<br />
The application is managed as three separate projects to simplify
development:<br />
<ul>
<li>domain model
</li>
<li>legacy data import application
</li>
<li>web application </li>
</ul>
<h4>
Domain Model project</h4>
The domain model is a separate project to allow it to be used by the data import
application and the web application.<br />
<h5>
'Persistence Plumbing'</h5>
The domain model project models the 'things' in the real world that we are
interested in and that we want to store and share information about. These are
objects like external examiners, tenures, courses, reports, etc. It also includes
the object relational mapping (ORM) metadata - the 'persistence plumbing' which
allow these entities to be loaded from and saved to the database. We use the
Java Persistence API (JPA) to do this with the
<a href="http://www.hibernate.org/">Hibernate Java persistence framework</a>
providing the API implementation.<br />
<h5>
XCRI influence</h5>
Information about courses features heavily in the information recorded about
external examiners and their tenures. We based the course information in our
domain model on the
<a href="http://www.xcri.org/wiki/index.php/XCRI_CAP_1.1">XCRI CAP 1.1 information model</a>
. A class diagram of the domain model is shown below (open it in a new tab or window and click it to zoom into the detail).<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip17LxFUw3ush1EwCdfLJoFXmd07oCdjTRgwpQ3DYuoMF5gTOrTAIai6_3Btg6Whq1n9Y-FohRTlRj0fIdFNdsYzVUKLqWNg62JIgCGcY4-PmzBNPh8IOTJ_mF9K98YZCpcGXfAs3C4ic/s1600/Domain+Model.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip17LxFUw3ush1EwCdfLJoFXmd07oCdjTRgwpQ3DYuoMF5gTOrTAIai6_3Btg6Whq1n9Y-FohRTlRj0fIdFNdsYzVUKLqWNg62JIgCGcY4-PmzBNPh8IOTJ_mF9K98YZCpcGXfAs3C4ic/s320/Domain+Model.png" width="255" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">External examiner application domain model classes</td></tr>
</tbody></table>
<br />
Because we were learning lots of new technologies concurrently, we wanted to
keep each aspect as simple as possible. Inexperience with Hibernate made us
conservative about how to implement the domain model mappings. We chose to avoid
inheritance to keep the hibernate mappings simple which meant that the domain
model was a bit more complicated. We replaced inheritance in the XCRI model with
composition.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_gqdjhyphenhyphenx1Uzq84L5D2tXsrbeXUajnyXkOq_vj6j2jqL0KC-vMVs7rkn-h8mEUnws_uRoXE0dkvCZj_WTNqMOgSraZvPJMiB62w5p4_SLrLYm4k19LKNdx-WOgofY0mPXhlAb7q4Jg31s/s1600/XCRI+inheritance+vs+XX+composition+-+smaller.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="229" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_gqdjhyphenhyphenx1Uzq84L5D2tXsrbeXUajnyXkOq_vj6j2jqL0KC-vMVs7rkn-h8mEUnws_uRoXE0dkvCZj_WTNqMOgSraZvPJMiB62w5p4_SLrLYm4k19LKNdx-WOgofY0mPXhlAb7q4Jg31s/s320/XCRI+inheritance+vs+XX+composition+-+smaller.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">XCRI Course inherits GenericDType, our Course composes GenericDType</td></tr>
</tbody></table>
<br />
The downside of this was that any changes to the methods of objects being
composed required corresponding changes to the methods in the objects doing the
composing. Happily, changes to the XCRI objects in the domain model were
relatively rare. If we started again today, with our Hibernate experience, we would just
include the XCRI information model 'as is', with inheritance and all.<br />
<h5>
Mapping Metadata</h5>
The domain model contains metadata which maps object fields to tables and
columns in the database. The mapping for the collection of Tenures associated
with an Examiner is illustrated below. In this example, an annotation is added to the
<span style="font-family: 'Courier New';">getTenures()</span> method of the Examiner class to specify
the table and columns that will be used to store the collection of tenures in
the database. The Hibernate Java persistence framework can use this metadata to
create the database structure when the application is first run. The Tenures
collection is represented in the database as the
<span style="font-family: 'Courier New';">examiner_tenures</span> table, the structure of which is
shown in the screenshot.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKypYwilERj53QLd5PlRnl3zxA1xwSoijIK8ozcYzo0PVlBJCC4n-hNdFHIyPWkedxnrEU3VkGvLf_NW_n83Vw9iIofsUYrZh0t6_wamhyphenhyphen0yONiY7Xa5-dM6_eHhLX1Ho8x5fbF3RK2_c/s1600/Mapping-ExaminerTenures.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="274" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKypYwilERj53QLd5PlRnl3zxA1xwSoijIK8ozcYzo0PVlBJCC4n-hNdFHIyPWkedxnrEU3VkGvLf_NW_n83Vw9iIofsUYrZh0t6_wamhyphenhyphen0yONiY7Xa5-dM6_eHhLX1Ho8x5fbF3RK2_c/s320/Mapping-ExaminerTenures.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Persistence mapping of examiner tenures to a table in the database</td></tr>
</tbody></table>
<h5>
Integration tests</h5>
We have created integration tests to check the persistence mappings. These
tests use <a href="http://www.dbunit.org/">DbUnit</a> which is an extension to
the <a href="http://www.junit.org/">JUnit</a> unit-testing framework. DbUnit is
used to set the database to a known state before each test is run. The tests
check that the database is in the expected state when a known object is saved
and that the expected object is returned when loaded from a known database
state. We use an in-memory <a href="http://hsqldb.org/">HyperSQL</a> database
for these integration tests because the tests run faster and no clean up is
required - after the tests have run, the in-memory database ceases to exist. The
tests are run automatically on each build of the domain model project.<br />
<h4>
Data Import project</h4>
The data import application loads data from the legacy Microsoft Access
database used by the central quality team and persists it to the shared MySQL
database. This application is run once only to import the legacy data before the
external examiner application is first used.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8cbGZ6v3cc27ft71O_jNQgykj-T7_fxYwLXUtwIU6llG2oK5D8cxrFIBoO76tMRJdpGPJLahepBNYKWVBqiszzsQpQYgTHyA3IiZa8SIGrJYfywGlbZhRxEukrkl6Xg2ivfEkvdtBv38/s1600/XX+Data+Import.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8cbGZ6v3cc27ft71O_jNQgykj-T7_fxYwLXUtwIU6llG2oK5D8cxrFIBoO76tMRJdpGPJLahepBNYKWVBqiszzsQpQYgTHyA3IiZa8SIGrJYfywGlbZhRxEukrkl6Xg2ivfEkvdtBv38/s320/XX+Data+Import.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The main import method of the data import project</td></tr>
</tbody></table>
The data import application connects to the legacy Access database via JDBC
and fires SQL queries at it to return information which is used to create domain
model objects representing courses, presentations, examiners, etc. These objects
are then persisted to the MySQL shared database via the JPA using the mappings
previously mentioned. Some parsing of data and manipulation of objects in memory
is required during data import because the external examiners domain model is
more fine-grained than the Access database structure. Some columns represent
more than one type of object in the domain model depending on the content of the
record. For example, the award table in the access database has a continuing
column which can contain <br />
<ul>
<li>the name of the examiner who is taking over reporting duties for this award
</li>
<li>an ending date for the award
</li>
<li>the reason that the award is ending. </li>
</ul>
The text of such columns is parsed and the appropriate domain model object is
created and populated.<br />
<h4>
Web Application project</h4>
The External Examiners Web Application provides a user interface for managing
information to support the external examiner appointment and reporting
processes. A new examiner record can be created or an existed examiner record
can be located via the Search screen.<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd_5F6NPIE_4YQ3E9XDN0h_ywor8oZ8_CzeBpC2G-cJUlMC4bY7iHnXByccuRlK39qK8hHdoocGEFh8oXrU7tshbV_YPMc5cDWmbCH0M9DF5lBPkBfIUOwVCU-L9QunmVQ6sk_VpNa-OM/s1600/XX-Smith-Search.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="167" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd_5F6NPIE_4YQ3E9XDN0h_ywor8oZ8_CzeBpC2G-cJUlMC4bY7iHnXByccuRlK39qK8hHdoocGEFh8oXrU7tshbV_YPMc5cDWmbCH0M9DF5lBPkBfIUOwVCU-L9QunmVQ6sk_VpNa-OM/s320/XX-Smith-Search.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Search results</td></tr>
</tbody></table>
<br />
Clicking on one of the search results takes the user to the Edit screen where
information can be entered and updated. On this screen, examiner contact details
and tenure information can be recorded. Appointment records can be uploaded to
Alfresco via the upload button. Uploaded documents are automatically placed into
the correct faculty area. When reports arrive, they can be uploaded to Alfresco
in the same manner on the reports tab. <br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ7FTDc8aL6A_JAww2YM_BNKdo1TikpxKBnJ1mx0tbXXPfIbLrAXvq2uhkw6zTKIFkPdsQB-HZ6NvRPx9_EenFEwoajaVsHbGIdPKm4jJw2C-bB2A_6hYQnvxW76zejG3T9BryhCX_Q5Y/s1600/EditExaminer-Tenure.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="256" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ7FTDc8aL6A_JAww2YM_BNKdo1TikpxKBnJ1mx0tbXXPfIbLrAXvq2uhkw6zTKIFkPdsQB-HZ6NvRPx9_EenFEwoajaVsHbGIdPKm4jJw2C-bB2A_6hYQnvxW76zejG3T9BryhCX_Q5Y/s320/EditExaminer-Tenure.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Edit examiner screen showing an examiner's tenures</td></tr>
</tbody></table>
<h4>
Technologies Used in the Web Application</h4>
<h5>
PrimeFaces</h5>
We used the <a href="http://primefaces.org/">PrimeFaces JSF component
suite</a> for on-screen components because it is easy to use and it complements
JSF by providing more sophisticated components than the default JSF suite. This
makes development faster by allowing us to focus on building a user interface
from existing components rather than having to design and build custom components. For
example, PrimeFaces has a file upload component that we use to upload documents
to Alfresco.<br />
<h5>
Seam</h5>
As we created the external examiners web application and gained experience in
Java EE 6 development, we came to realise that Java EE 6 does not quite live up
to its promise. Some aspects, like declarative error handling via the deployment
descriptor, simply do not work and other aspects, like dependency injection,
always seem to stop short of providing enough flexibility to suit the
circumstances of your application. To overcome these issues, we turned to the
<a href="http://seamframework.org/">JBoss Seam Framework</a> to fill in the missing
pieces.<br />
<br />
Seam complements Java EE 6 well because it is based on the Java EE platform
and many of its innovations have been contributed back into the Java EE
platform. CDI was a Seam idea and the reference implementation of it is included
in the Java EE distribution. Seam can be thought of as anticipating the next
Java EE and it provides a host of features that you wish had been included in
the reference implementation. <br />
<br />
The Seam features most important to us were:<br />
<ul>
<li>injection of objects
into JSF converter classes (via the Faces module).
</li>
<li>easy creation of exception handlers to handle
application errors and session expiry (via the Solder module). The orthodox Java EE way to do this, via
declarations in the web application deployment descriptor, did not work because
the application server wrapped all exceptions in an EJBException making handling
of individual error types impossible. Solder unwraps the exception stack and
handles the root cause by default, allowing easy creation of methods to handle
individual error types and conditions. </li>
</ul>
<h5>
Integration with Alfresco</h5>
The external examiner web application and data import application integrate
with Alfresco via two of
<a href="http://docs.alfresco.com/3.4/index.jsp?topic=%2Fcom.alfresco.Enterprise_3_4_0.doc%2Fconcepts%2FAPI-intro-34.html">
Alfresco's RESTful APIs</a>. For example, upload of an examiner appointment form by the
external examiners Web application is handled as follows:<br />
<ol>
<li>When the user selects a file for upload and clicks the upload button, the
PrimeFaces upload file component uploads the file to a temporary directory on
the external examiner server.
</li>
<li>The Content Management Interoperability Services (CMIS) API 'Get Object'
resource is used to return the node reference of the examiner's document folder.
</li>
<li>A multi-part POST to the Repository API 'upload' service is then
used to upload the appointment form to the examiner's folder.</li>
</ol>
<h4>
Design Patterns</h4>
The External Examiner Web Application implements two
<a href="http://download.java.net/general/podcasts/real_world_java_ee_patterns.pdf">
design patterns</a> that help to simplify the application code. The design patterns
are described in <a href="http://www.adam-bien.com/roller/abien/entry/real_world_java_ee_patterns">'Real World Java EE Patterns - Rethinking Best Practices'</a> by Adam Bien. <br />
<h5>
Persistent Domain Object (PDO) pattern</h5>
The domain model is a collection of Persistent Domain Objects. These are
classes which model the real world objects we want to store information about in the database, e.g. examiner, tenure, award, report. These
form a rich model of the real world objects including the business logic. This
is in contrast to the <a href="http://en.wikipedia.org/wiki/Anemic_domain_model">anemic domain objects</a> typically required for J2EE
development. PDOs allow the developer to take an object-oriented approach to
solving problems instead of having to work around the 'persistence plumbing' to
interact with the domain model. Persistence metadata is added in the form of
annotations to specify the mapping of objects to the database. The state of the
PDOs are persisted to the database by the Entity Manager. As long as the PDOs
remain in the attached state (i.e. managed by the entity manager) they can be
modified through method calls and any changes will be flushed to the database
when the objects are next saved.<br />
<h5>
Gateway pattern</h5>
The Gateway pattern allows PDOs to be exposed to the user interface layer. In
our case this means being able to refer to domain model objects directly from
JSF pages and components. The snippet below, from the examinerView page
illustrates this, with the value of the tenuresTable being a direct reference to
the examiner PDOs collection of tenures.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkTaVb6x2qpurzP95G_eM2XUyqkaF0muO4srXrIAcvyo23Uhqx62M9SLQE7JOU5VBjZs8rAmR49WVxMOF0d5Vc4PdC_Et9cCH8jVT9hHoR5SiFD0LHmDxemkGGKLz1pr4KbquxsdBP8s4/s1600/PDOJSF.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="71" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkTaVb6x2qpurzP95G_eM2XUyqkaF0muO4srXrIAcvyo23Uhqx62M9SLQE7JOU5VBjZs8rAmR49WVxMOF0d5Vc4PdC_Et9cCH8jVT9hHoR5SiFD0LHmDxemkGGKLz1pr4KbquxsdBP8s4/s320/PDOJSF.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Tenures dataTable uses domain model objects directly</td></tr>
</tbody></table>
A Gateway object acts as a source for PDOs loaded from the database. The
Gateway keeps the PDOs in the attached state by using an extended persistence
context which remains alive and does not detach objects at the end of each
transaction. Gateway classes are annotated to avoid transactions by default. A
save method is created with an annotation which causes it to trigger a
transaction. The transaction causes any changes in the PDO graph of objects to
be flushed to the database. The PDOs can be used in object-oriented fashion and
the save method called as needed to flush changes to the database. The Entity
Manager does the heavy lifting of keeping track of all the changes to the
attached PDOs and saving them to the database when a transaction is
triggered.<br />
<br />
The combination of PDOs and Gateway allows the developer to manipulate the
domain model objects cleanly without having to worry about objects persistent state. This results in a cleaner, smaller codebase. High memory
consumption is a potential problem if large object graphs are being loaded from
the database or there are a high number of concurrent users but for our
situation (approx. 20 users) profiling of the application indicated that this
was not a problem.<br />
<h4>
Lessons learned:</h4>
<ul>
<li>Java EE 6 mostly lived up to its promise of simpler, cleaner, faster
development. Significant effort was required to learn the technologies the first
time around but subsequent developments on the same platform have been very
rapid. <a href="http://blog.adam-bien.com/">Adam Bien's blog</a> is well worth
following for insight into 'just enough' Java EE application architecture.</li>
<li>To truly realise the faster, easier development promise of Java EE 6, you
need to augment it with JBoss Seam to fill in some of the missing/broken
pieces.</li>
<li>Basing the domain model on the XCRI CAP 1.1 information model was a wise
choice. Although it was a more complex model than we might have created from
scratch, we have reaped the benefit of that choice many times. Most recently, a QAA review has requested a change to the level of award detail stored with
examiner records. Because of the flexibility of the XCRI-based domain model to
represent most course structures, required changes to the domain model have been
minimal. In addition, University Quality Improvement Service colleagues have
seen the value of representing course (spec) and presentation (instance)
separately and have decided to change their databases to fit the XCRI view of
the world.</li>
</ul>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKwJNd0AzlT_A0EvCSoDMusx1MqGb-bZ1oH8b4rDFkD50j_6aEd8jaz6KXW15g4iLK4HWjsBk53iBaTtO6qUtRxtUioDf6xF3l8S4AFOiqcO0kPZcTjCsZua2PCdyH9Bi49CpRnQyfqy4/s1600/XCRI-domain+model-planval.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="239" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKwJNd0AzlT_A0EvCSoDMusx1MqGb-bZ1oH8b4rDFkD50j_6aEd8jaz6KXW15g4iLK4HWjsBk53iBaTtO6qUtRxtUioDf6xF3l8S4AFOiqcO0kPZcTjCsZua2PCdyH9Bi49CpRnQyfqy4/s320/XCRI-domain+model-planval.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">'XCRI thinking' spreads from the domain model to other University databases</td></tr>
</tbody></table>
<ul>
<li>We used composition instead of inheritance in the XCRI-inspired parts of our
domain model because we thought representing inheritance in the persistence
mappings would result in an overly-complex database structure. If we started
again today, we would just implement it with inheritance.</li>
<li>Free open source ‘community’ editions of software tend to be fully featured
but bugs are more common and get fixed first in the corresponding Enterprise version. You can
expect to get what you pay for. Testing your application against new versions of
such third party software is important. Community forums are generally very supportive but identifying and fixing problems is time consuming and goes against the
desire for efficiency and effectiveness (more with less) that we are aiming
for.</li>
<li>Much benefit is to be gained by participating fully in open source communities.
We have blogged about our
experiences, have answered questions in community forums and have asked our own
questions. In each case, responses have given us a better
understanding of the technologies we have used. Don't be afraid to ask questions
or blog your experiences. Even if you get some information wrong, community
members will correct you and improve your understanding further.
The feedback is valuable.</li>
<li>With technologies like the Java EE stack which have been evolving for several
years, it is important to be able to identify the 'current truth'. In other
words, a lot of correct information on the Web refers to older versions of the
same technology and so is no longer relevant. This becomes a problem
in particular when first learning about a new technology. In trying to solve problems, searches can turn up solutions which work but which are out of date and hence not the most appropriate. We encountered this issue many times during the
development of the External Examiners Web Application. At one point, we followed good
but old guidance in the creation of the user interface, to create a
nicely designed data transfer layer. Subsequently, using an up to date Java EE 6 approach, we made this layer redundant so we were able to remove it entirely and replace it with direct use of PDOs in JSF
pages (as described above). Doing so left us with a smaller, cleaner codebase.
The lesson from this is to try to find out how up to
date any solution or guidance is before applying it.</li>
</ul>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-8601701500148328382.post-59890049818739090092012-05-17T14:52:00.000+01:002012-07-19T10:11:42.394+01:00Supporting Partnerships<b>Why use partners?</b><br />
The Enable project has worked at supporting changes within the institution, not just for the benefit of the University but also for its partners, including other HEI, FEI's and commercial partners. The project team specifically worked with 5 partner colleges, however due to issues with engagement with one college this dropped to 4 colleges. Although the project team had direct contact with these colleges it had indirect access to other colleges and their perceptions through the spoke initiatives and the stakeholder interviews completed as part of the general Enable approach. The project aimed to use the partners to measure how successful changes within the institution would be when designing awards in partnership. It was decided that also engaging employers in the project would be problematical, due to managing their expectations and often their engagement with the institution is a one off to develop a course. They were engaged indirectly via the spoke initiatives and through discussions with internal stakeholders who engaged with commercial partners through the process of course design.<br />
<b>The approach</b><br />
The project used a number of approaches to supporting partners in capturing expectations for the project and perceptions of course development with the University. The Project Manager started the project partners engagement with a face to face meeting of the project co-ordinators for the colleges, (
<a href="http://jiscenable.blogspot.co.uk/2008/10/partners-join-in.html">Enable: Partners Join in</a> ) followed up by the Project Manager attending Higher Education forums at each of the colleges (
<a href="http://jiscenable.blogspot.co.uk/2008/12/partners.html">Enable: Partners</a>). This face to face approach was important in building a relationship up with the different colleges, this was something that needed to continue through the project, but unfortunately failed whilst the Project Manager was on maternity leave. Although the Project Manager did manage some visits on returning to work it was difficult to rebuild an enthusiastic engagement with the project.<br />
On top of the face to face engagement the project team implemented two further communication tools, the first was simply reporting on a scheduled basis to the Project Manager and the other was the development of an online community, initially in Ning. The reporting to the Project Manager included a tracking document that would document new courses being designed, where they were in the process and noting any issues encountered with the process, on receipt of the report the agreed funding would then be released to the relevant partner. The Ning community caused the project some problems, as it changed it's funding model half way through the project, which meant previously private forums would become open to the wider community. It was felt due to the nature of some of the conversations occuring that it was important to keep the forums private, and the team subsequently moved the Ning content to a new site that offered the same functionality. However the technology chosen to replace it subsequently also changed its funding model to that similar to Ning, causing some technical difficulties for partners accessing the site, and a lose of engagement by project partners.<br />
<br />
<b>Lessons Learnt</b><br />
<br />
<ul>
<li>Have a robust partnership agreement signed at the start of the partnership, this helps with any issues around engagement and managing expectations. It helps partners understand the level of commitment needed for the project to succeed.</li>
<li>Understand that your project expectations have to match the level of engagement a partner already has with the University, if they have only got one award at the institution or a small cohort of students don't expect the same level of engagement with an institution with a large cohort or number of awards being delivered at the institution.</li>
<li>Make sure any funding to partners is given after an expected delivery or output.</li>
<li>Partners appreciate the effort of face to face meetings, and they often help with keeping up enthusiastic engagement with the project, using online tools/email is no substitute.</li>
<li>Be prepared for online tools to change their funding models, this happened twice with the project team and caused disengagement with online communication for the project teams. </li>
<li>You need to be sympathetic to changes in structure at a partner college, although this should not change how you handle payments to them it may require further meetings to support new staff. </li>
</ul>FlorenceinSummerhttp://www.blogger.com/profile/08756287853375074161noreply@blogger.com0tag:blogger.com,1999:blog-8601701500148328382.post-7029996000956639822012-05-09T14:17:00.001+01:002012-05-25T07:57:01.872+01:00The Final Story: Change Management<b>The Beginnings of Enable:</b>
Enable began as the University recognised that it had always been quite good at running individual change projects and managing change within curriculum design, however that recognition was tempered with the realisation that its change projects occurred in isolation, so they produced silos or they didn’t join up effectively with other things. It was also acknowledged that, although changes in curriculum design were effective at the point of teaching and learning, the administrative aspect could be made more efficient and flexible to meet the changing requirements of the institution. Each of these issues caused effort to be duplicated. The challenge for Enable was one of joining up the numerous change initiatives and looking at how they impacted on each other, whilst supporting change.<br />
<br />
<b>The Change Management Approach:</b> The project team contacted Heads of Service and Deans asking about initiatives that were running in their areas that would impact on Curriculum Design and Development within the University. The original list included 15 initiatives (for the full list of initiatives raised during the life of the project check the list out here <a href="http://www.projects.staffs.ac.uk/enable/">http://www.projects.staffs.ac.uk/enable/</a>). These initiatives included reviews, projects, and administrative changes. The project team identified the responsible 'initiative manager', who was subsequently interviewed to discuss the origins of their work, issues they were hoping to address and any issues they encountered that were outside the scope of the original project but would nevertheless impact on their ability to deliver a successful output to their initiative. The project also discussed issues around curriculum design with other stakeholders, including tutors, administrators and support staff. The project team collated 'out of scope' issues and raised them with the Senior Management Working Group, a group of individuals from senior management and the executive. Based on the presentations, a number of new initiatives started up. These new initiatives used the recommendations of the Enable project team with regards to stakeholder engagement and understanding the requirements of everyone engaged in a particular area. <br />
<br />
<b>Lessons Learned:</b> The project team felt this Change Management Approach was successful in its aims. It raised awareness of the need for Change Management across the institution and was able to highlight issues that projects were experiencing with the relevant staff to achieve action. The project team note that the benefits of the Change Management Approach would not have occurred without the following:<br />
<ul>
<li>A consistent message which could be given out from project team to all stakeholders engaged in initiatives. This resulted in hearing our own message repeated back to us.</li>
<li>Independence/ neutrality of the project team - the project team were well known in the University, and were seen as discreet and independent of any service or faculty. This allowed stakeholders to speak freely about perceptions and issues encountered. An 'agent provocateur' department is very useful.</li>
<li>The ability to understand and communicate links to systems and processes, this was something that developed during the project but was very useful in explaining how we could move forward as an institution. This was particularly useful in highlighting issues with our quality processes for external examiners and the work taken on by administrators in the faculties. Enterprise Architecture models were a useful tool to communicate the duplication of effort and information to senior management.</li>
<li>A leader with sufficient weight to open doors to the right people at the start of the project, which helped in organising initial meetings with senior staff.</li>
<li>Presentation is important and needs to fit your organisation. For example, for us it was important not to badge things internally as 'Enable' as this had the issue of being seen as an external project, not something internally driven. By stating 'we have found.../evidence/experience has shown us that....' it was seen as part of our day to day work, which means the work we are doing can carry on beyond Enable. </li>
<li>A consistent executive/senior management team, with a clear strategy is helpful when trying to say where you are going. Alongside this, governance needs to be clear and needs to support both the initiation of initiatives and their closure when necessary. It's OK to stop initiatives where there is no longer a benefit to them running, where their benefit is outweighed by a negative impact elsewhere or where they don't have a clear goal.</li>
</ul>
<br />FlorenceinSummerhttp://www.blogger.com/profile/08756287853375074161noreply@blogger.com0tag:blogger.com,1999:blog-8601701500148328382.post-61294981446657721642012-03-06T11:31:00.003+00:002012-03-09T14:39:26.176+00:00Using Archimate in the Enable ProjectThe project team are nearing completion of the development of an application to support external examiner appointment and reporting processes. This has provided an opportunity to assess the value of Archimate modelling in a limited scope.<br />
<h4>
Background</h4>
At the start of the Enable project, projects in the programme captured a snapshot of curriculum design and development practice to act as a baseline against which changes could be evaluated later on. We carried out an extensive series of interviews with a wide range of stakeholders to capture current practice, problems and concerns. From this we identified two major barriers to innovation with curriculum design and development processes. These were:<br />
<ul>
<li>a lack of communication and coordination between change projects leading to conflicting project goals and duplication of effort and a sub-optimal result for the organisation as a whole</li>
<li>a focus on business process re-engineering leading to changes at the business level alone, with the potential benefits of supporting IT often overlooked.</li>
</ul>
These were aspects of change management that could be improved. Project alignment and co-ordination could be realized by introducing programme management and the focus on business architecture changes could be reduced by applying an Enterprise Architecture approach. <br />
<h4>
Quality Review</h4>
An opportunity to pilot the EA approach on a small scale arose from the recommendations of an internal quality process review which had looked at re-engineering course development, approval, monitoring and review processes.<br />
The review identified some duplication of effort and recommended further work be done to streamline quality processes. We consulted with the University business re-engineering manager who had led the review and agreed that improvements to external examiner processes would provide an appropriate scope to try out enterprise architecture modelling.<br />
<h4>
Stakeholder Interviews</h4>
We took process maps created in the review and interviewed stakeholders from faculties and the central quality improvement service to create a snapshot of the current processes.<br />
We used the enterprise architecture practice of looking at the processes in the context of the surrounding ‘system’. In the interviews, this required a shift away from capturing process detail (as you might if you were looking to produce BPMN models) towards capturing overviews of processes and what applications and data are used to support the processes.<br />
This omission of process details in favour of high-level dependencies is a hard task initially as traditionally we do not model the big picture and there is a natural tendency to want the details. What must be understood is that these models are for a very different purpose than business process models. The intent of enterprise architecture models is not to document all the details but to document the coherence of the system. They show where dependencies exist and act as a focus for discussion of issues and trade-offs with stakeholders. The stakeholders know the details.<br />
<h4>
Archimate Modelling</h4>
A key part of the enterprise architecture approach is to model the current situation (the baseline or ‘as is’ model) and the future situation as it would be with your proposed changes in place (the target or ‘to be’ model). Then you analyse the gap between the two models and plan developments to bridge the gap. This could be all in one go for small scale developments or it could involve a series of incremental steps for a more strategic-level engagement.<br />
We created a model representing the current state of the business processes based on the information provided by the stakeholders during our interviews. We then created another model to represent our vision of how the processes would operate after the improvements had been made. We used the free <a href="http://archi.cetis.ac.uk/index.html">Archi modelling tool</a> to create the models in the Archimate modelling language.<br />
<h4>
Using The Models</h4>
From the models, we created a series of slides to illustrate our proposal and presented it to the Enable Senior Management Working Group. In the slides, we built up the ‘as is’ and ‘to be’ models incrementally to explicitly illustrate the duplication of effort in the current situation, and how we were going to solve it. <br />
An updated version of the slides, refactored to use Archimate 2.0, is shown below. They are best viewed full-screen to see the detail.<br />
<br />
<div id="__ss_11883610" style="width: 425px;">
<b style="display: block; margin: 12px 0 4px;"><a href="http://www.slideshare.net/theparsnip/archimate-in-enable" title="Archimate in enable">Archimate in enable</a></b><object height="355" id="__sse11883610" width="425"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=archimateinenable-120306051224-phpapp02&stripped_title=archimate-in-enable&userName=theparsnip">
<param name="allowFullScreen" value="true">
<param name="allowScriptAccess" value="always">
<param name="wmode" value="transparent">
<embed name="__sse11883610" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=archimateinenable-120306051224-phpapp02&stripped_title=archimate-in-enable&userName=theparsnip" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" width="425" height="355"></embed></object><br />
<div style="padding: 5px 0 12px;">
View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/theparsnip">theparsnip</a>.</div>
</div>
<br />
Based on our presentation, we secured approval from the Senior Management Working Group to develop the application. <br />
<h4>
Conclusions</h4>
We found that the Archimate language provides a powerful means of communication with stakeholders at a relatively low cost in terms of extra effort. In particular, we found that:<br />
<ul>
<li>the duplication-induced chaos introduced incrementally in the slides provided a more compelling call to action than a verbal description of the problem</li>
<li>the ‘to be’ model presented a clear overview of our proposed solution in the same context in which the problem had been described</li>
<li>Archimate models show the big picture (coherence and overview) making them particularly well-suited to communication with senior management</li>
<li>the modelling itself was a relatively small task with the bulk of the effort spent interviewing stakeholders which we would have done anyway to investigate the problem, even if we were not using Archimate</li>
<li>the modelling exercise provided extra insight into the problem and the models helped to quickly develop shared understanding of the problem between stakeholders</li>
<li>the Archimate language is easily accessible and stakeholders immediately engage and ask questions about the content of the model rather than what the symbols and shapes mean</li>
<li>the models provided useful business context for the software developers showing explicitly how their application would support the business processes.</li>
</ul>
<script src="http://b.scorecardresearch.com/beacon.js?c1=7&c2=7400849&c3=1&c4=&c5=&c6=">
</script>Unknownnoreply@blogger.com15tag:blogger.com,1999:blog-8601701500148328382.post-5481724292242533022012-01-30T14:02:00.002+00:002012-01-30T14:02:37.625+00:00FLAG FlyingThe FLAG tool has now been launched in its pilot phase. A very exciting moment as months of mapping, tweaking and moving things around has now been put on hold as real staff get to use the tool to support their developments. Feedback has already been positive, with some very useful suggestions on improving the tool.<br />
<br />
Initial demonstrations have highlighted the different needs of course design stakeholders. Each sees the tool as useful in different ways, from e-learning facilitators, business managers, and lecturers. It has been noted by a number of stakeholders that the amount of information collated during course development, and the use of the information for different audiences, would be useful to take on next. This is much more than was originally intended from FLAG and links to the work of
the XCRI project and the embedding of a document management system at the University.<br />
<br />
Demonstrations with partners has also highlighted a new focus for developments. Should we be looking at a separate process when partners are driving the development? Or do we need to look at a tool that allows different people to take ownership of different steps in the process? This aspect of the tool for supporting partnerships will become further unpicked as the work within the Partnership office continues.<br />
<br />
One of the questions we were recently asked from JISC and I fully expect the same question from our senior management: 'So what are the time-scales for this?' The time-scale for this is very flexible by the nature of course design. In an ideal world we would give a two month period for pilot, however we would like those piloting the tool to go through if not all, at least most, of the work-flow. Therefore I envision a more fluid end to the pilot as the different awards are completed. We have got a questionnaire for each end of the pilot to capture how course design is considered, but one aspect I believe will be changed by FLAG is communication between the different stakeholders engaged in a particular award design, and I need to consider how this gets captured.FlorenceinSummerhttp://www.blogger.com/profile/08756287853375074161noreply@blogger.com0tag:blogger.com,1999:blog-8601701500148328382.post-44872233271650322862011-09-28T11:04:00.000+01:002012-07-12T11:12:10.012+01:00New Course Product DesignAs Enable moves towards its final phase we are making some great progress with the work we have been doing for the FLAG project and for supporting the work around developing unified course development theory!<br />
<br />
We have created a number of ArchiMate business layer views from a model of CDD. This has been based on the baseline Sam did for the project, but as we knew the processes had changed since then thanks to the Quality Review work we also needed to read a lot of documentation and have discussions with stakeholders involved within faculties (Directors of Teaching and Learning, Tutors and administrative staff) and services (such as Quality and Partnerships). <br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCuwkK2MoeQrqvNFmBvv3MZVQWpn2_3auVVafGPziO2m_cay-GePh8eLbVzp2_3Cd_32wS9JDagtXOzjShy6QLFlFi1asU4JB3e9TKwArqkB-jnj4nfBsgQeIqykX7lGJ3hqV5dmWYDpzP/s1600/02.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="249" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCuwkK2MoeQrqvNFmBvv3MZVQWpn2_3auVVafGPziO2m_cay-GePh8eLbVzp2_3Cd_32wS9JDagtXOzjShy6QLFlFi1asU4JB3e9TKwArqkB-jnj4nfBsgQeIqykX7lGJ3hqV5dmWYDpzP/s320/02.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">ArchiMate Model of Stage 2 - Award Planning (high level)</td></tr>
</tbody></table>
During the stakeholder discussions with the views we noted a few interesting factors:<br />
<ul>
<li>What is believed to happen by managers often isn't the case for those on the ground</li>
<li>Processes that are believed to be sequential are often running in tandem to ensure speed in development (can cause problems)</li>
<li>Responsibility of the process of new product development can sit with different individuals without any joining up.</li>
</ul>
Although the model and its views have been useful for my own purposes, and for discussions with stakeholders they were not quite at the right level to be used with the Pineapple software, which worked at a lower, business process/ work flow level. With the ArchiMate views it was hard to create links between different stages and the support resources available to the University and highlighting the different preparation points within the processes. At this point it was clear a work flow was needed to pull out all the information from stakeholders around the advice and guidance needed to complete the course development processes.<br />
<br />
The first attempt at creating a work-flow from idea to validation is shown below - all information in black is considered part of the core/ parent process, the text in red is information that sits within child processes (Completing documentation, Understanding Employer Engagement, Assessment etc). <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-b9SUKst6Aw8/ToLrWvQ_6KI/AAAAAAAABEg/jjChYURj9As/s1600/IMAG0857.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="191" src="http://1.bp.blogspot.com/-b9SUKst6Aw8/ToLrWvQ_6KI/AAAAAAAABEg/jjChYURj9As/s320/IMAG0857.jpg" width="320" /></a></div>
<br />
This helped clarify my thoughts before moving on to using Word as a standard tool to create the workflows, with the relevant advice attached to the different preparation points. At first each point in the core work-flow became a new stage in the process, however we soon changed that to match the stages from modelling.<br />
<ul>
<li>Idea </li>
<li>Initial Approval </li>
<li>Award Approval Documentation </li>
<li>Preparing for Validation </li>
<li>Validation </li>
</ul>
An example work-flow at this point, including questions to ask at each preparation point:<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGohHyTWkxGBu89HIdjSTDkWAutQeTlqA5SySmuhXvKXF9-DZCICrNZvpqvrOlnJucf4nej0v3dfPDnuZAsxsf6MQKC598DgGwjp9YA_5jNC23LV2KB1BMx2V5kt9VHljrLLOomvLb9mCb/s320/stagethree.jpg" style="margin-left: auto; margin-right: auto;" width="277" /></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Flow and Advice v1 for Stage 3 - Preparing for Validation</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
These models have since been distributed to the project team to help create the child processes, as they are more familiar with that area. This was one of the reasons I chose to use Word to create the flows, so that they could copy the standardisations easily. Even so it has required a short demo document so that the flow fits the set up of Pineapple, including a two page document where on one side was the actual flow in Pineapple using screen shots and on the other was the actual flow created. As I am very close to this work it has been invaluable to hand it over to the project team for review and also over to faculties already interviewed. It has also been vital that I keep impartial to the work so that I can view all aspects of the suggestions made. I also believe it has helped that I am not a process owner in creating these flows. It has been demonstrated by some of the work already gone on that process owners have a very narrow view of curriculum design and development!</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
These workflows have been designed to be printed out and used for each stakeholder discussion to ensure we captured each faculties nuances around course development before building the process into Pineapple. </div>
<br />FlorenceinSummerhttp://www.blogger.com/profile/08756287853375074161noreply@blogger.com1tag:blogger.com,1999:blog-8601701500148328382.post-43115827263810903582011-08-16T09:05:00.002+01:002012-07-12T11:35:30.189+01:00Models to flows to Information, Advice and GuidanceAs mentioned in <a href="http://jiscenable.blogspot.com/2011/05/flying-forward.html">'Flying Forward'</a> the Enable team, and others in the department, have been working on creating a ToolBox (known internally as the FLAG project) for supporting curriculum design and development for those roles involved in the process.The project team started with the original baseline models and then modified them based on the existing information available on the websites, once a 'trail' process was in place interviews took place with Teaching & Learning Directors, faculty quality staff, and the Director of Quality Improvement.<br />
<br />
<br />
<br />
The first thing we learnt with using the model from the original baseline was that the 'viewpoints' hadn't been fully considered, and were therefore either too detailed or included too many different roles. Therefore the team went back and created models from the viewpoint of the person who had come up with the new course idea.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_EWOzpxDRYr8VNXbMGS7Fig7Bo_tkuljXoMxxBugFUnyRDy1YbB7op7wmOe-XtlmC32WgBZwAk-sIRFIGyO7jJ4xU3HdK6X3yDjFjS3BLLOYrRyAqVcaWB24aSOoxzGqztbTFRt4VwAMZ/s1600/02+Award+Planning.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="144" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_EWOzpxDRYr8VNXbMGS7Fig7Bo_tkuljXoMxxBugFUnyRDy1YbB7op7wmOe-XtlmC32WgBZwAk-sIRFIGyO7jJ4xU3HdK6X3yDjFjS3BLLOYrRyAqVcaWB24aSOoxzGqztbTFRt4VwAMZ/s320/02+Award+Planning.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Example: Stripped down ArchiMate view used for discussions</td></tr>
</tbody></table>
<br />
This then raised a number of issues with complexity of the processes, and how the main process of 'Create a new Course' consisted of different, lower level processes, and what course initiators and designers needed to consider as opposed to a module designer. The main process was broken down to different processes, and as such different views:<br />
<div>
<ul>
<li>Approving the idea in Faculty, </li>
<li>Approving the idea in the institution,</li>
<li>Developing the Idea, </li>
<li>Preparing for Validation</li>
</ul>
<div>
To keep it simple we needed the 'parent' process (Create a New Course) to go into Pineapple and become the backbone of FLAG (creating a work-flow that would be developed around the 4 sub processes above). This backbone would then allow the stakeholder engaged in CDD to move to 'child' work-flows whenever needed (we would consider developing partners a child process of getting the idea approved in Faculty).<br />
<br />
Stakeholders happy with the high level process of CDD could then directly move to specific child process they could be struggling with (How do I set up an international partner? What can I do differently around assessment? etc).</div>
<div>
This was great in theory, however it was noted that there was no clear way to link process within Pineapple. Thankfully the Plymouth team were contacted before we started this project and have been very supportive in developing Pineapple to support processes beyond the original intention of APEL. After putting together a specification document for this change they are now working on making this possible.<br />
<br />
<span style="color: blue;">UPDATE: </span><br />
<span style="color: blue;">2012/07 It is now possible to create parent, child and grandparent relationships between processes within Pineapple. </span><br />
</div>
<div>
Enable had already noted that the course development process was under review, and that faculties have their different ways of doing their side of the development process. The creation of the 'trail' process within Pineapple has helped us identify a baseline for faculties and the Quality Improvement Service to discuss and view issues/ holes already highlighted. It helped those engaged in the process see how the tool would be used, identify differences in their processes & best practice, and inform us of any useful information/advice/ guidance (IAG) that they provide to members of staff for the different steps.<br />
<br />
<span style="color: blue;">UPDATE:</span><br />
<span style="color: blue;">2012/07 The review of course development processes is almost complete, and discussions with business owners means that FLAG will soon be handed over to our Quality team. The new process is already partly in FLAG and once approved the Quality team will make it live to users. </span> </div>
</div>FlorenceinSummerhttp://www.blogger.com/profile/08756287853375074161noreply@blogger.com0