Agile NASA software? Are you Crazy?

From the PMI Global Insights Blog
by , , , , , , , , , , , , , , , ,
The Project Management Institute's annual events attract some of the most renowned and esteemed experts in the industry. In this blog, Global Conference, EMEA Congress and experienced event presenters past, present and future from the entire PMI event family share their knowledge on a wide range of issues important to project managers.

About this Blog

RSS

View Posts By:

Cameron McGaughy
Dan Furlong
Marjorie Anderson
David Maynard
Fabio Rigamonti
Emily Luijbregts
Priya Patra
Karthik Ramamurthy
Stephanie Jaeger
Moritz Sprenger
Kimberly Whitby
Laura Schofield
David Davis
Andrew Craig
Lorelie Kaid
LORI WILSON
Kiron Bondale

Past Contributers:

Deepa Bhide
Nic Jain
Karen Chovan
Jack Duggal
Catalin Dogaru
Kristy Tan Neckowicz
Sandra MacGillivray
Gina Abudi
Sarah Mersereau
Lawrence Cooper
Yves Cavarec
Nadia Vincent
Carlos Javier Pampliega García
Michelle Stronach
Laura Samsó
Marcos Arias
Cheryl Lee
Kristin Jones

Recent Posts

What Does an Invitation to the ‘Ask the Expert’ Panel Mean to Me? #PMIcon19 #Inspiration

What does being part of the Ask the Expert panel at #PMIcon19 mean to me?

How does your behaviour support you in achieving your goals? - PMIEMEA19 Recap

Networking, knowledge and insight: PMIEMEA19

Final Summary of PMI EMEA Congress 2019 – my 3 top Lesson’s Learned




Going to the 2017 PMI Global Conference in Chicago?  

Don’t forget about ASK THE EXPERTS!

Stop by and talk to Dave Maynard or one of the other experts.  There’s more information about it at https://tinyurl.com/y7ff8f3g

Sign Up Now


NASA JSC Engineering

Isn't NASA the epitome of the double-cursed WATERFALL technique?

Wrong NASA was agile before agile was a common term.  As a matter of fact, One of the 17 original authors of the agile manifesto -- Jim Highsmith used to work at NASA.   The question that NASA asked itself was: “How can we, the space ops community, adopt state-of-the-art software development practices, achieve greater productivity and lower cost, and maintain safe and effective flight operations?”

NASA Ames, together with my old “home” JSC (Houston) and JPL are developing “Mission Control Technologies (MCT) software in an integrated agile environment --- with modifications necessary because of human life and safety factors (in a *very* harsh environment).

Traditional requirements processes and documentation was replaced with a team design process which included the customer, design experts and paper prototypes. (Sorry Systems Engineering).  Iterations were delivered to the customers every three weeks with a full release every three month (Sound like NASA-Agile now?) 

Nightly builds were made available to facilitate customer feedback on the team’s progress.  This effort replaces the traditional intensive NASA documentation and reviews with ongoing interactions.  Technical documentation is maintained on a team Wiki which everyone has access to and can contribute to.

Why do this? 

To shorten the delivery cycle, break large software development efforts into smaller more easily manageable pieces. To facilitate direct interaction between the developers and the users.  And to produce a download daily so users always have the means to access the latest version of the code.

Replaced Predictions with Actuals.

Progress is measured by the state of the code, rather than estimations and presentations.  For the MCT this takes three forms.  First, the nightly build, second are the iterations (every three weeks) typically installed in a Mission Control test facility.  And after four iterations the software is released for operational mission control certification.

Manageable Deliveries

With a longer delivery cycle, the more the code, the greater the complexity and the larger number of tests that must be conducted.  A longer cycle means more time from specification of function to delivery.  The greater the time from specification to use, the greater the room for error between user expectation and the software product.  Using a shorter cycle reduces the number of new features and possible regressions.  Agile may not reduce the total number of tests, but it distributes them over time, making it a more manageable effort.

Development Team / Customer Interaction

With a short delivery cycle, the availability of working code for evaluation and feedback, makes it possible to have closely coupled interactions between the development team and the customer.  The developer-customer interaction is very useful to verify new features as they are rolled out.

Fast Response to Change

The shorter development cycle allows the team to better respond to changes.  The software is rolled out in stages, the users respond then the development team can act on this feedback. 

 

Next time: NASA Agile: Delivery Cycles. 

Reference: American Inst. of Aeronautics and Astronautics; Reston, VA, United States; Agile Development Methods for Space Operations Jay Trimble Nasa Ames Research Center Mountain View CA and Chris Webster University of California Santa Cruz, Nasa Ames Research Center, Mountain View, CA

Posted by David Maynard on: October 18, 2017 02:00 PM | Permalink

Comments (14)

Please login or join to subscribe to this item
Thanks for the perspective. I hadn't look at NASA through an agile lens before - but now I will.

Actually the Apollo 13 Mission demonstrates some agile techniques. I enjoy the scene where the team is trying to build an adapter for the air purification. He puts up the square connection and says you need to make this, fit into this (holding up the round input), using only this - showing a table full of expendable "stuff" that would be in the space module. And the end result highlights the moral of the story "never leave earth without duct tape".

Seriously, some very good material here and thanks for sharing.

Hi David!

Apollo 13 was WAAAY before my time, I did work on Apollo-Soyuz though - the last of the Apollo missions, and then only for the last year or so. But you bring up a great point - Agile hardware design. Someday I'll have to ramble about that. I used to do it all the time, but didn't know what it was called, or even if it's called that now. I think we used to call it "rapid prototyping."

Some good pictures of ASTP here: http://preview.tinyurl.com/y7y7638f

-- Dave


Oh! I meant to add, that last Thursday, I went to hear Captain Mark Kelly (astronaut) speak at our university and he mentioned that the handiest thing he had aboard the Space Station was "DUCT TAPE." http://tinyurl.com/ya8mnsg4 So you're right on about Duct tape!

I would love to see project plans for the manned mission to mars.

Thanks for reminding us about NASA's long-time agile approach, David.


I would also love to see how a project of this magnitude is managed.

Speaking of NASA, I have had a wonderful piece of intelligence in my archives for years. Its called One Hundred Rules for NASA Project Managers

Lessons Learned as Compiled by Jerry Madden , Associate Director of the Flight Projects Directorate at NASA's Goddard Space Flight Center: (Jerry collected these gems of wisdom over a number of years from various unidentifiable sources. They have been edited by Rod Stewart of Mobile Data Services in Huntsville, Alabama.). January 1, 1995. Updated July 9, 1996

List is onine at: http://www.eecs.yorku.ca/course_archive/2002-03/W/ENG2000/Nasa's_100_PM_Rules.html I also copied for this forum:

The Project Manager

Rule #1: A project manager should visit everyone who is building anything for his project at least once, should know all the managers on his project (both government and contractor), and know the integration team members. People like to know that the project manager is interested in their work and the best proof is for the manager to visit them and see first hand what they are doing.

Rule #2: A project manager must know what motivates the project contractors (i.e., their award system, their fiscal system, their policies, and their company culture).

Rule #3: Management principles still are the same. It is just that the tools have changed. You still find the right people to do the work and get out of the way so they can do it.

Rule #4: Whoever you deal with, deal fairly. Space is not a big playing field. You may be surprised how often you have to work with the same people. Better they respect you than carry a grudge.

Rule #5: Vicious, dispicable, or thoroughly disliked persons, gentlemen, and ladies can be project managers. Lost souls, procrastinators, and wishywashies can not.

Rule #6: A comfortable project manager is one waiting for his next assignment or one on the verge of failure. Security is not normal to project management.

Rule #7: One problem new managers face is that everyone wants to solve their problems. Old managers were told by senior management-"solve your own darn problems, that is what we hired you to do."

Rule #8: Running fast does not take the place of thinking for yourself. You must take time to smell the roses. For your work, you must take time to understand the consequences of your actions.

Rule #9: The boss may not know how to do the work but he has to know what he wants. The boss had better find out what he expects and wants if he doesn't know. A blind leader tends to go in circles.

Rule #10: Not all successful managers are competent and not all failed managers are incompetent. Luck still plays a part in success or failure but luck favors the competent hard working manager.

Rule #11: Never try to get even for some slight by anyone on the project. It is not good form and it puts you on the same level as the other person and, besides, probably ends up hurting the project getting done.

Rule #12: Don't get too egotistical so that you can't change your position, especially if your personnel tell you that you are wrong. You should cultivate an attitude on the project where your personnel know they can tell you of wrong decisions.

Rule #13: A manager who is his own systems engineer or financial manager is one who will probably try to do open heart surgery on himself.

Rule #14: Most managers succeed on the strength and skill of their staff.

Return To Table Of Contents

Initial Work

Rule #15: The seeds of problems are laid down early. Initial planning is the most vital part of a project. The review of most failed projects or project problems indicate the disasters were well planned to happen from the start.

Return To Table Of Contents

Communications

Rule #16: Cooperative efforts require good communications and early warning systems. A project manager should try to keep his partners aware of what is going on and should be the one who tells them first of any rumor or actual changes in plan. The partners should be consulted before things are put in final form, even if they only have a small piece of the action. A project manager who blindsides his partners will be treated in kind and will be considered a person of no integrity.

Rule #17: Talk is not cheap; but the best way to understand a personnel or technical problem is to talk to the right people. Lack of talk at the right levels is deadly.

Rule #18: Most international meetings are held in English. This is a foreign language to most participants such as Americans, Germans, Italians, etc. It is important to have adequate discussions so that there are no misinterpretations of what is said.

Rule #19: You cannot be ignorant of the language of the area you manage or with that of areas with which you interface. Education is a must for the modern manager. There are simple courses available to learn computerese, communicationese and all the rest of the modern "ese's" of the world. You can't manage if you don't understand what is being said or written.

Return To Table Of Contents

People

Rule #20: You cannot watch everything. What you can watch is the people. They have to know you will not accept a poor job.

Rule #21: We have developed a set of people whose self interest is more paramount than the work or at least it appears so to older managers. It appears to the older managers that the newer ones are more interested in form than in substance. The question is are old managers right or just old? Consider both viewpoints.

Rule #22: A good technician, quality inspector, and straw boss are more important in obtaining a good product than all the paper and reviews.

Rule #23: The source of most problems is people, but darned if they will admit it. Know the people working on your project to know what the real weak spots are.

Rule #24: One must pay close attention to workaholics-if they get going in the wrong direction, they can do a lot of damage in a short time. It is possible to overload them and cause premature burnout but hard to determine if the load is too much, since much of it is self generated. It is important to make sure such people take enough time off and that the workload does not exceed 1 1/4 to 1 1/2 times what is normal.

Rule #25: Always try to negotiate your internal support at the lowest level. What you want is the support of the person doing the work, and the closer you can get to him in negotiations the better.

Rule #26: If you have someone who doesn't look, ask, and analyze; ask them to transfer.

Rule #27: Personal time is very important. You must be careful as a manager that you realize the value of other people's time (i.e., the work you hand out and meetings should be necessary). You must, where possible, shield your staff from unnecessary work (i.e., some requests should be ignored or a refusal sent to the requestor).

Rule #28: People who monitor work and don't help get it done never seem to know exactly what is going on (being involved is the key to excellence).

Rule #29: There is no greater motivation than giving a good person his piece of the puzzle to control, but a pat on the back or an award helps.

Rule #30: It is mainly the incompetent that don't like to show off their work.

Rule #31: There are rare times when only one man can do the job. These are in technical areas that are more art and skill than normal. Cherish these people, but get their work done as soon as possible. Getting the work done by someone else takes two or three times longer and the product is normally below standard.

Rule #32: People have reasons for doing things the way they do them. Most people want to do a good job and, if they don't, the problem is they probably don't know how or exactly what is expected.

Rule #33: If you have a problem that requires additional people to solve, you should approach putting people on like a cook who has under-salted the food.

Return To Table Of Contents

Reviews and Reports

Rule #34: NASA has established a set of reviewers and a set of reviews. Once firmly established, the system will fight to stay alive, so make the most of it. Try to find a way for the reviews to work for you.

Rule #35: The number of reviews is increasing but the knowledge transfer remains the same; therefore, all your charts and presentation material should be constructed with this fact in mind. This means you should be able to construct a set of slides that only needs to be shuffled from presentation to presentation.

Rule #36: Hide nothing from the reviewers. Their reputation and yours is on the line. Expose all the warts and pimples. Don't offer excuses-just state facts.

Rule #37: External reviews are scheduled at the worst possible time, therefore, keep an up-to-date set of business and technical data so that you can rapidly respond. Not having up-to-date data should be cause for dismissal.

Rule #38: Never undercut your staff in public (i.e., In public meetings, don't reverse decisions on work that you have given them to do). Even if you direct a change, never take the responsibility for implementing away from your staff.

Rule #39: Reviews are for the reviewed an not the reviewer. The review is a failure if the reviewed learn nothing from it.

Rule #40: A working meeting has about six people attending. Meetings larger than this are for information transfer (management science has shown that, in a group greater than twelve, some are wasting their time).

Rule #41: The amount of reviews and reports are proportional to management's understanding (i.e., the less management knows or understands the activities, the more they require reviews and reports). It is necessary in this type of environment to make sure that data is presented so that the average person, slightly familiar with activities, can understand it. Keeping the data simple and clear never insults anyone's intelligence.

Rule #42: Managers who rely only on the paperwork to do the reporting of activities are known failures.

Rule #43: Documentation does not take the place of knowledge. There is a great difference in what is supposed to be, what is thought to have happened, and reality. Documents are normally a static picture in time that get outdated rapidly.

Rule #44: Just because you give monthly reports, don't think that you can abbreviate anything in a yearly report. If management understood the monthlies, they wouldn't need a yearly.

Rule #45: Abbreviations are getting to be a pain. Each project now has a few thousand. This calls on senior management to know hundreds. Use them sparingly in presentations unless your objective is to confuse.

Rule #46: Remember, it is often easier to do foolish paperwork that to fight the need for it. Fight only if it is a global issue which will save much future work.

Return To Table Of Contents

Contractors and Contracting

Rule #47: A project manager is not the monitor of the contractor's work but is to be the driver. In award fee situations, the government personnel should be making every effort possible to make sure the contractor gets a high score (i.e., be on schedule and produce good work). Contractors don't fail, NASA does and that is why one must be proactive in support. This is also why a low score damages the government project manager as much as the contractor's manager because it means that he is not getting the job done.

Rule #48: Award fee is a good tool that puts discipline both on the contractor and the government. The score given represents the status of the project as well as the management skills of both parties. The project management measurement system (pms) should be used to verify the scores. Consistent poor scores require senior management intervention to determine the reason. Consistent good scores which are consistent with pms reflect a well-run project, but if these scores are not consistent with the pms, senior management must take action to find out why.

Rule #49: Morale of the contractor's personnel is important to a government manager. Just as you don't want to buy a car built by disgruntled employees, you don't want to buy flight hardware developed by under- motivated people. You should take an active role in motivating all personnel on the project.

Rule #50: Being friendly with a contractor is fine-being a friend of a contractor is dangerous to your objectivity.

Rule #51: Remember, your contractor has a tendency to have a one-on-one interface with your staff. Every member of your staff costs you at least one person on the contract per year.

Rule #52: Contractors tend to size up the government counterparts and staff their part of the project accordingly. If they think yours are clunkers, they will take their poorer people to put on your project.

Rule #53: Contractors respond well to the customer that pays attention to what they are doing but not too well to the customer that continually second-guesses their activity. The basic rule is a customer is always right but the cost will escalate if a customer always has things done his way instead of how the contractor planned on doing it. The ground rule is: never change a contractor's plans unless they are flawed or too costly (i.e., the old saying that better is the enemy of good).

Rule #54: There'is only one solution to a weak project manager in industry-get rid of him fast. The main job of a project manager in industry is to keep the customer happy. Make sure the one working with you knows that it is not flattery but on-schedule, on-cost, and a good product that makes you happy.

Return To Table Of Contents

Engineers and Scientists

Rule #55: Over-engineering is common. Engineers like puzzles and mazes. Try to make them keep their designs simple.

Rule #56: The first sign of trouble comes from the schedule or the cost curve. Engineers are the last to know they are in trouble. Engineers are born optimists.

Rule #57: The project has many resources within itself. There probably are five or ten system engineers considering all the contractors and instrument developers. This is a powerful resource that can be used to attack problems.

Rule #58: Many managers, just because they have the scientists under contract on their project, forget that the scientists are their customers and many times have easier access to top management than the managers do.

Rule #59: Most scientists are rational unless you endanger their chance to do their experiment. They will work with you if they believe you are telling them the truth. This includes reducing their own plans.

Return To Table Of Contents

Hardware

Rule #60: In the space business, there is no such thing as previously flown hardware. The people who build the next unit probably never saw the previous unit. There are probably minor changes (perhaps even major changes); the operational environment has probably changed; the people who check the unit out in most cases will not understand the unit or the test equipment.

Rule #61: Most equipment works as built, not as the designer planned. This is due to layout of the design, poor understanding on the designer's part, or poor understanding of component specifications.

Return To Table Of Contents

Computers and Software

Rule #62: Not using modern techniques, like computer systems, is a great mistake, but forgetting that the computer simulates thinking is a still greater mistake.

Rule #63: Software has now taken on all the parameters of hardware (i.e., requirement creep, high percentage of flight mission cost, need for quality control, need for validation procedures, etc.). It has the added feature that it is hard as blazes to determine it is not flawed. Get the basic system working first and then add the bells and whistles. Never throw away a version that works even if you have all the confidence in the world that the newer version works. It is necessary to have contingency plans for software.

Rule #64: Knowledge is often revised by simulations or testing, but computer models have hidden flaws not the least of which is poor input data.

Rule #65: In olden times, engineers had hands-on experience, technicians understood how the electronics worked and what it was supposed to do, and layout technicians knew too-but today only the computer knows for sure and it's not talking.

Return To Table Of Contents

Senior Management, Program Offices, and Above

Rule #66: Don't assume you know why senior management has done something. If you feel you need to know, ask. You get some amazing answers that will astonish you.

Rule #67: Know your management-some like a good joke, others only like a joke if they tell it.

Rule #68: Remember the boss has the right to make decisions. Even if you think they are wrong, tell the boss what you think but if he still wants it done his way; do it his way and do your best to make sure the outcome is successful.

Rule #69: Never ask management to make a decision that you can make. Assume you have the authority to make decisions unless you know there is a document that states unequivocally that you can't.

Rule #70: You and the Program Manager should work as a team. The Program Manager is your advocate at NASA HQ and must be tied into the decision makers and should aid your efforts to be tied in also.

Rule #71: Know who the decision makers on the program are. It may be someone outside who has the ear of Congress or the Administrator, or the Associate Administrator, or one of the scientists-someone in the chain of command-whoever they are. Try to get a line of communication to them on a formal or informal basis.

Return To Table Of Contents

Program Planning, Budgeting, and Estimating

Rule #72: Today one must push the state of the art, be within budget, take risks, not fail, and be on time. Strangely, all these are consistent as long as the ground rules such as funding profile and schedule are established up front and maintained.

Rule #73: Most of yesteryear's projects overran because of poor estimates and not because of mistakes. Getting better estimates will not lower costs but will improve NASA's business reputation. Actually, there is a high probability that getting better estimates will increase costs and assure a higher profit to industry unless the fee is reduced to reflect lower risk on the part of industry. A better reputation is necessary in the present environment.

Rule #74: All problems are solvable in time, so make sure you have enough schedule contingency-if you don't, the next project manager that takes your place will.

Rule #75: The old NASA pushed the limits of technology and science; therefore, it did not worry about requirements creep or overruns. The new NASA has to work as if all projects are fixed price; therefore, requirement creep has become a deadly sin.

Rule #76: Know the resources of your center and, if possible, other centers. Other centers, if they have the resources , are normally happy to help. It is always surprising how much good help one can get by just asking.

Rule #77: Other than budget information prior to the President's submittal to Congress, there is probably no secret information on a project-so don't treat anything like it is secret. Everyone does better if they can see the whole picture so don't hide any of it from anyone.

Rule #78: NASA programs compete for budget funds-they do not compete with each other (i.e., you never attack any other program or NASA work with the idea that you should get their funding). Sell what you have on its own merit.

Rule #79: Next year is always the year with adequate funding and schedule. Next year arrives on the 50th year of your career.

Return To Table Of Contents

The Customer

Rule #80: Remember who the customer is and what his objectives are (i.e., check with him when you go to change anything of significance).

Return To Table Of Contents

NASA Management Instructions

Rule #81: NASA Management Instructions were written by another NASA employee like you; therefore, challenge them if they don't make sense. It is possible another NASA employee will rewrite them or waive them for you.

Return To Table Of Contents

Decisionmaking

Rule #82: Wrong decisions made early can be recovered from. Right decisions made late cannot correct them.

Rule #83: Sometimes the best thing to do is nothing. It is also occasionally the best help you can give. Just listening is all that is needed on many occasions. You may be the boss, but if you constantly have to solve someone's problems, you are working for him.

Rule #84: Never make a decision from a cartoon. Look at the actual hardware or what real information is available such as layouts. Too much time is wasted by people trying to cure a cartoon whose function is to explain the principle.

Return To Table Of Contents

Professional Ethics and Integrity

Rule #85: Integrity means your subordinates trust you.

Rule #86: In the rush to get things done, it's always important to remember who you work for. Blindsiding the boss will not be to your benefit in the long run.

Return To Table Of Contents

Project Management and Teamwork

Rule #87: Projects require teamwork to succeed. Remember, most teams have a coach and not a boss, but the coach still has to call some of the plays.

Rule #88: Never assume someone knows something or has done something unless you have asked them; even the obvious is overlooked or ignored on occasion, especially in a high stress activity.

Rule #89: Whoever said beggars can't be choosers doesn't understand project management, although many times it is better to trust to luck than to get poor support.

Rule #90: A puzzle is hard to discern from just one piece; so don't be surprised if team members deprived of information reach the wrong conclusion.

Rule #91: Remember, the President, Congress, OMB, NASA HQ, senior center management, and your customers all have jobs to do. All you have to do is keep them all happy.

Return To Table Of Contents

Treating and Avoiding Failures

Rule #92: In case of a failure:

a) Make a timeline of events and include everything that is known.
b) Put down known facts. Check every theory against them.
c) Don't beat the data until it confesses (i.e., know when to stop trying to force-fit a scenario).
d) Do not arrive at a conclusion too fast. Make sure any deviation from normal is explained. Remember the wrong conclusion is prologue to the next failure.
e) Know when to stop.
Rule #93: Things that fail are lessons learned for the future. Occasionally things go right: these are also lessons learned. Try to duplicate that which works.

Rule #94: Mistakes are all right but failure is not. Failure is just a mistake you can't recover from; therefore, try to create contingency plans and alternate approaches for the items or plans that have high risk.

Rule #95: History is prologue. There has not been a project yet that has not had a parts problem despite all the qualification and testing done on parts. Time and being prepared to react are the only safeguards.

Rule #96: Experience may be fine but testing is better. Knowing something will work never takes the place of proving that it will.

Rule #97: Don't be afraid to fail or you will not succeed, but always work at your skill to recover. Part of that skill is knowing who can help.

Rule #98: One of the advantages of NASA in the early days was the fact that everyone knew that the facts we were absolutely sure of could be wrong.

Rule #99: Redundancy in hardware can be a fiction. We are adept at building things to be identical so that if one fails, the other will also fail. Make sure all hardware is treated in a build as if it were one of a kind and needed for mission success.

Rule #100: Never make excuses; instead, present plans of actions to be taken.



That really is a gem, thanks for posting it David. My favorite was:

Rule #82: Wrong decisions made early can be recovered from. Right decisions made late cannot correct them.

David

I blogged about this very same list here at: https://tinyurl.com/yaxlpcud. I "touched" it up a bit, the list is even older than I am, so I updated it a tad. "Growing up" at NASA was the most wonderful accident in my life. Taught me how to be yelled at, how to fail forward and the meaning of a "significant emotional event."

I remember reading you blog and I liked it then and still like it now. If it weren't for my senility I would have remembered it was yours and credited it. I am somewhat envious that you were able to work with/for/in NASA. It's what Tom Peters would refer to as a WOW project. And the most amazing part is how it was able to put you in a time warp so all these things happened before you were born :)

Looking forward to seeing you next week!

David,

Getting credit has zero importance to me. I just wanted to point out that the list was created in the late 50s or early 60s and some of the list needed to be updated.

I started at NASA right out of college. First thing: physical, the Military doctor did his tests and then said to me; in a deep Texas accent: "Son, you can't work here. You're color blind."

YIKES 1) I didn't know I was color blind and 2) I wanted to work there!

My future branch chief (RIP: Kenny M.) waived normal color perception as a requirement for me. I worked for / with him for years. A real sweetheart of a guy.

It was after this that I got old.

-- Dave

Another good post David

Thanks

Thanks David, love rule number 1....Smell the roses

--Santiago

Very useful information. Thanks for sharing

Please Login/Register to leave a comment.

ADVERTISEMENTS

"Thousands of candles can be lighted from a single candle, and the life of the candle will not be shortened. Happiness never decreases by being shared."

- Buddha

ADVERTISEMENT

Sponsors

Vendor Events

See all Vendor Events