Behind the Scenes with DNN Engineering
![DNN's Engineering War Room](/Portals/0/Users/157/25/1012125/engineering-war-room-evoq-social.png)
Pictured: Mohit and George are members of our Engineering Team in Langley, British Columbia.
The Engineering team at DNN Langley
(British Columbia, Canada) is busy working on the next major release of our
online community solution, Evoq
Social. To
ensure solid management of the project, our large conference room was
transformed into the Evoq
Social
War Room.
The
two whiteboards were taken over by engineers, who subsequently added
hand-drawn calendars and product details in order to monitor day-to-day
progress, as well major milestones. Our Administrative Assistant (Mel McDougall)
has been instructed to protect these boards from weekly erasure until after we
have shipped, a role which she kindly accepted. Of course, this may seem rather “old school”
to some, but it's often the low-tech tricks that have the greatest
impact.
Note: See Mel's related post,
Why I'm Proud to be Part of Team DNN.
Engineering Cycle
The Engineering Cycle (Development and QA) for
a major release at DNN can run from two to five months. We prefer
short, rather than long projects, but it’s best to get the product right. So
we define our targets based on the time we foresee being required.
The beginning of the project cycle is very
important. This
contrasts with
strict agile scrum process, yet enables us to better forecast our needs and potential
impediments. The last eight to ten weeks become even more critical and
certainly more tense. This is
analogous to an airplane’s takeoff and landing:
it must take off on time, reach a critical altitude, sustain smooth
cruising, and then safely land, hopefully on time and in the right location. The
ultimate goal for the airline -- and our project team -- is happy customers: ones who relish the value of our products, their ease of use, and the
simplicity of their upkeep.
Milestones Matter
![](http://farm3.staticflickr.com/2798/4450623309_5a01157463.jpg)
Photo source: User jayneandd on flickr.
It’s very important for team leaders to
work out the major milestones of a release. Arguably, this is not in keeping
with agile processes; however, as a company, we have goals that span organizations and those
other teams count on Engineering to punctually deliver well-featured, quality
products.
So, we
start with a desired release date, then work backwards to create
key milestones. Eventually, we commence work from the bottom up, looking at what
can be realistically achieved, how goals
can be broken down into agile story points, and how these might all come
together over the course of various sprints. This may sound like a huge effort,
but it’s really not. It all happens rather quickly thanks to good team
communication, honesty, and a commitment to excel.
The team works together to arrive at the key
milestone dates, then posts them on the whiteboard. The dates are also posted
on our intranet so other product teams can relate to what we’re doing, leverage
our output, and capitalize on our progress. In this way, success breeds more
success and self-fuelling encouragement.
Daily Countdown
As the days go by, we cross out the dates
and keep a good sense of days remaining until the next milestone. Often times
we think about building a nice calendar module (we are engineers, after all),
but nothing beats plain old whiteboarding, the smell of fresh ink, and the badge
of erasure dust on one’s clothing. Oh, and letting each team member write on
the board spreads the honor to everyone.
Balancing Features, Resources and Timelines
It’s always a delicate balance to manage
the requested feature set, deadlines and Engineering resources. This is a work
in progress which doesn’t end until the product ships, and for good reason. There
are many factors that can impact the overall goal of a project: long weekends,
planned time off by individuals, team members taking ill, family
emergencies, customer support, office activities, number of bugs, etc.
![Engineering room whiteboard](/Portals/0/Users/157/25/1012125/engineering-war-room-whiteboard.png)
Pictured: A matrix that allows us to plan and execute on a daily basis.
When it
comes down to the wire, especially in the last few weeks of a project, we plan
and execute on a daily basis. We draw a column for each day and try to fill in
resources and features into each cell. It might seem like a lot of work, but
the planning goes quickly and
provides a very clear picture on how the remaining
project time will unfold. The daily project stand-ups also convey useful info;
still, this level of detail goes beyond the scrum meetings and enables us to
have a high degree of confidence in the project’s execution.
Pressure and Fun
All this puts a lot of pressure on the
team, especially during the last two weeks, when the regression cycle starts.
Regression is usually a week-long activity performed mostly by QA Engineers.
Any bug reported in this timeframe has the potential to reset the entire
regression phase.
This puts a lot of pressure on the team. On the other hand,
knowing how the product performs as an integrated system saves a lot of pain and even more stress downstream.
A lot of effort goes into producing quality
products on time. We plan a lot, execute fast, suffer the pain and agony of
stress, yet revel in the results which come from delighted customers. Plus,
during the release effort, we do manage to enjoy some fun company activities
and make a point of blowing off steam at the end. After a brief pat on the back
and a quick recharge, we’re back focused on the next release and how we can
again push the envelope.
Conclusion
Every company has its own culture and
style. At DNN, we like to plan well up front, check progress regularly, and
carefully manage each project cycle. We utilize an agile scrum approach to
projects, yet borrow some old school techniques to competently meet objectives.
One of those involves a war room where team members can readily discuss issues,
create action plans, and incite positivism.
Hope you enjoyed this little overview of
the Evoq Social Team’s project experience. It’s now back to the release grindstone!
Happy Releasing (if that’s a word)!